UNPKG

4.59 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.ProtonFramework = void 0;
7
8function _builderUtil() {
9 const data = require("builder-util");
10
11 _builderUtil = function () {
12 return data;
13 };
14
15 return data;
16}
17
18function _builderUtilRuntime() {
19 const data = require("builder-util-runtime");
20
21 _builderUtilRuntime = function () {
22 return data;
23 };
24
25 return data;
26}
27
28function _core() {
29 const data = require("./core");
30
31 _core = function () {
32 return data;
33 };
34
35 return data;
36}
37
38function _fileTransformer() {
39 const data = require("./fileTransformer");
40
41 _fileTransformer = function () {
42 return data;
43 };
44
45 return data;
46}
47
48function _LibUiFramework() {
49 const data = require("./frameworks/LibUiFramework");
50
51 _LibUiFramework = function () {
52 return data;
53 };
54
55 return data;
56}
57
58function _pathManager() {
59 const data = require("./util/pathManager");
60
61 _pathManager = function () {
62 return data;
63 };
64
65 return data;
66}
67
68class ProtonFramework extends _LibUiFramework().LibUiFramework {
69 constructor(version, distMacOsAppName, isUseLaunchUi) {
70 super(version, distMacOsAppName, isUseLaunchUi);
71 this.name = "proton"; // noinspection JSUnusedGlobalSymbols
72
73 this.defaultAppIdPrefix = "com.proton-native.";
74 }
75
76 getDefaultIcon(platform) {
77 if (platform === _core().Platform.WINDOWS) {
78 return (0, _pathManager().getTemplatePath)("icons/proton-native/proton-native.ico");
79 } else if (platform === _core().Platform.LINUX) {
80 return (0, _pathManager().getTemplatePath)("icons/proton-native/linux");
81 } else {
82 return (0, _pathManager().getTemplatePath)("icons/proton-native/proton-native.icns");
83 }
84 }
85
86 createTransformer() {
87 let babel;
88 const babelOptions = {
89 ast: false,
90 sourceMaps: "inline"
91 };
92
93 if (process.env.TEST_SET_BABEL_PRESET === "true") {
94 babel = require("@babel/core"); // eslint-disable-next-line @typescript-eslint/no-use-before-define
95
96 babel = testOnlyBabel(babel, babelOptions, this.version);
97 } else {
98 try {
99 babel = require("babel-core");
100 } catch (e) {
101 // babel isn't installed
102 _builderUtil().log.debug(null, "don't transpile source code using Babel");
103
104 return null;
105 }
106 }
107
108 _builderUtil().log.info({
109 options: (0, _builderUtilRuntime().safeStringifyJson)(babelOptions, new Set(["presets"]))
110 }, "transpile source code using Babel");
111
112 return file => {
113 if (!(file.endsWith(".js") || file.endsWith(".jsx")) || file.includes(_fileTransformer().NODE_MODULES_PATTERN)) {
114 return null;
115 }
116
117 return new Promise((resolve, reject) => {
118 return babel.transformFile(file, babelOptions, (error, result) => {
119 if (error == null) {
120 resolve(result.code);
121 } else {
122 reject(error);
123 }
124 });
125 });
126 };
127 }
128
129}
130
131exports.ProtonFramework = ProtonFramework;
132
133function testOnlyBabel(babel, babelOptions, nodeVersion) {
134 // out test dir can be located outside of electron-builder node_modules and babel cannot resolve string names of preset
135 babelOptions.presets = [[require("@babel/preset-env").default, {
136 targets: {
137 node: nodeVersion
138 }
139 }], require("@babel/preset-react")];
140 babelOptions.plugins = [// stage 0
141 require("@babel/plugin-proposal-function-bind").default, // stage 1
142 require("@babel/plugin-proposal-export-default-from").default, require("@babel/plugin-proposal-logical-assignment-operators").default, [require("@babel/plugin-proposal-optional-chaining").default, {
143 loose: false
144 }], [require("@babel/plugin-proposal-pipeline-operator").default, {
145 proposal: "minimal"
146 }], [require("@babel/plugin-proposal-nullish-coalescing-operator").default, {
147 loose: false
148 }], require("@babel/plugin-proposal-do-expressions").default, // stage 2
149 [require("@babel/plugin-proposal-decorators").default, {
150 legacy: true
151 }], require("@babel/plugin-proposal-function-sent").default, require("@babel/plugin-proposal-export-namespace-from").default, require("@babel/plugin-proposal-numeric-separator").default, require("@babel/plugin-proposal-throw-expressions").default, // stage 3
152 require("@babel/plugin-syntax-dynamic-import").default, require("@babel/plugin-syntax-import-meta").default, [require("@babel/plugin-proposal-class-properties").default, {
153 loose: false
154 }], require("@babel/plugin-proposal-json-strings").default];
155 babelOptions.babelrc = false;
156 return babel;
157}
158// __ts-babel@6.0.4
159//# sourceMappingURL=ProtonFramework.js.map
\No newline at end of file