@theia/application-manager 1.39.0-next.18 → 1.39.0-next.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/application-package-manager.d.ts.map +1 -1
- package/lib/application-package-manager.js +15 -4
- package/lib/application-package-manager.js.map +1 -1
- package/lib/generator/abstract-generator.d.ts +1 -0
- package/lib/generator/abstract-generator.d.ts.map +1 -1
- package/lib/generator/abstract-generator.js +13 -1
- package/lib/generator/abstract-generator.js.map +1 -1
- package/lib/generator/backend-generator.d.ts +1 -0
- package/lib/generator/backend-generator.d.ts.map +1 -1
- package/lib/generator/backend-generator.js +71 -2
- package/lib/generator/backend-generator.js.map +1 -1
- package/lib/generator/frontend-generator.d.ts +0 -1
- package/lib/generator/frontend-generator.d.ts.map +1 -1
- package/lib/generator/frontend-generator.js +0 -67
- package/lib/generator/frontend-generator.js.map +1 -1
- package/lib/generator/webpack-generator.d.ts +2 -0
- package/lib/generator/webpack-generator.d.ts.map +1 -1
- package/lib/generator/webpack-generator.js +159 -8
- package/lib/generator/webpack-generator.js.map +1 -1
- package/lib/rebuild.d.ts.map +1 -1
- package/lib/rebuild.js +3 -0
- package/lib/rebuild.js.map +1 -1
- package/package.json +6 -4
- package/src/application-package-manager.ts +15 -4
- package/src/generator/abstract-generator.ts +13 -1
- package/src/generator/backend-generator.ts +72 -2
- package/src/generator/frontend-generator.ts +0 -68
- package/src/generator/webpack-generator.ts +161 -8
- package/src/rebuild.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-package-manager.d.ts","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":";AAkBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,GAAG,QAAQ,OAAO,CAAC,CAAC;AAGhC,OAAO,QAAQ,QAAQ,CAAC;IACpB,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AASD,qBAAa,yBAAyB;IAElC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG;QACjE,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;QAClC,aAAa,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAC;IAaF,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,sBAAsB;IACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;gBAErC,OAAO,EAAE,yBAAyB;cAM9B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,QAAQ,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/E,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,EAAE,CAAC,YAAY;IAO3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"application-package-manager.d.ts","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":";AAkBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,GAAG,QAAQ,OAAO,CAAC,CAAC;AAGhC,OAAO,QAAQ,QAAQ,CAAC;IACpB,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AASD,qBAAa,yBAAyB;IAElC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG;QACjE,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;QAClC,aAAa,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAC;IAaF,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,sBAAsB;IACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;gBAErC,OAAO,EAAE,yBAAyB;cAM9B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,QAAQ,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/E,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,EAAE,CAAC,YAAY;IAO3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAyB9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAc7C;;;;OAIG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BhD,SAAS,CAAC,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAc1G,OAAO,CAAC,UAAU;IAiBlB,OAAO,KAAK,WAAW,GAQtB;CACJ"}
|
|
@@ -81,8 +81,8 @@ class ApplicationPackageManager {
|
|
|
81
81
|
]);
|
|
82
82
|
}
|
|
83
83
|
async copy() {
|
|
84
|
-
await fs.ensureDir(this.pck.lib());
|
|
85
|
-
await fs.copy(this.pck.frontend('index.html'), this.pck.lib('index.html'));
|
|
84
|
+
await fs.ensureDir(this.pck.lib('frontend'));
|
|
85
|
+
await fs.copy(this.pck.frontend('index.html'), this.pck.lib('frontend', 'index.html'));
|
|
86
86
|
}
|
|
87
87
|
async build(args = [], options = {}) {
|
|
88
88
|
await this.generate(options);
|
|
@@ -100,7 +100,12 @@ class ApplicationPackageManager {
|
|
|
100
100
|
// can determine the app name. This requires that the package.json has a main field.
|
|
101
101
|
let appPath = this.pck.projectPath;
|
|
102
102
|
if (!this.pck.pck.main) {
|
|
103
|
-
|
|
103
|
+
// Try the bundled electron app first
|
|
104
|
+
appPath = this.pck.lib('backend', 'electron-main.js');
|
|
105
|
+
if (!fs.existsSync(appPath)) {
|
|
106
|
+
// Fallback to the generated electron app in src-gen
|
|
107
|
+
appPath = this.pck.backend('electron-main.js');
|
|
108
|
+
}
|
|
104
109
|
console.warn(`WARNING: ${this.pck.packagePath} does not have a "main" entry.\n` +
|
|
105
110
|
'Please add the following line:\n' +
|
|
106
111
|
' "main": "src-gen/frontend/electron-main.js"');
|
|
@@ -114,7 +119,13 @@ class ApplicationPackageManager {
|
|
|
114
119
|
// The backend must be a process group leader on UNIX in order to kill the tree later.
|
|
115
120
|
// See https://nodejs.org/api/child_process.html#child_process_options_detached
|
|
116
121
|
options.detached = process.platform !== 'win32';
|
|
117
|
-
|
|
122
|
+
// Try the bundled backend app first
|
|
123
|
+
let mainPath = this.pck.lib('backend', 'main.js');
|
|
124
|
+
if (!fs.existsSync(mainPath)) {
|
|
125
|
+
// Fallback to the generated backend file in src-gen
|
|
126
|
+
mainPath = this.pck.backend('main.js');
|
|
127
|
+
}
|
|
128
|
+
return this.__process.fork(mainPath, mainArgs, options);
|
|
118
129
|
}
|
|
119
130
|
/**
|
|
120
131
|
* Inject Theia's Electron-specific dependencies into the application's package.json.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-package-manager.js","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"application-package-manager.js","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ export declare abstract class AbstractGenerator {
|
|
|
15
15
|
protected ifElectron(value: string, defaultValue?: string): string;
|
|
16
16
|
protected write(path: string, content: string): Promise<void>;
|
|
17
17
|
protected ifMonaco(value: () => string, defaultValue?: () => string): string;
|
|
18
|
+
protected ifPackage(packageName: string | string[], value: string | (() => string), defaultValue?: string | (() => string)): string;
|
|
18
19
|
protected prettyStringify(object: object): string;
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=abstract-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-generator.d.ts","sourceRoot":"","sources":["../../src/generator/abstract-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAA;IACnC,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,8BAAsB,iBAAiB;IAG/B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB;IAC1C,SAAS,CAAC,OAAO,EAAE,gBAAgB;gBADhB,GAAG,EAAE,kBAAkB,EAChC,OAAO,GAAE,gBAAqB;IAG5C,SAAS,CAAC,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAK5E,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAI3E,SAAS,CAAC,gCAAgC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAIjF,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM;IAc9F,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;IAIrE,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;cAItD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,EAAE,YAAY,GAAE,MAAM,MAAiB,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"abstract-generator.d.ts","sourceRoot":"","sources":["../../src/generator/abstract-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAA;IACnC,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,8BAAsB,iBAAiB;IAG/B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB;IAC1C,SAAS,CAAC,OAAO,EAAE,gBAAgB;gBADhB,GAAG,EAAE,kBAAkB,EAChC,OAAO,GAAE,gBAAqB;IAG5C,SAAS,CAAC,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAK5E,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAI3E,SAAS,CAAC,gCAAgC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAIjF,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM;IAc9F,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;IAIrE,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;cAItD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,EAAE,YAAY,GAAE,MAAM,MAAiB,GAAG,MAAM;IAOtF,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAAE,YAAY,GAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAM,GAAG,MAAM;IASvI,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAKpD"}
|
|
@@ -58,7 +58,19 @@ class AbstractGenerator {
|
|
|
58
58
|
await fs.writeFile(path, content);
|
|
59
59
|
}
|
|
60
60
|
ifMonaco(value, defaultValue = () => '') {
|
|
61
|
-
return
|
|
61
|
+
return this.ifPackage([
|
|
62
|
+
'@theia/monaco',
|
|
63
|
+
'@theia/monaco-editor-core'
|
|
64
|
+
], value, defaultValue);
|
|
65
|
+
}
|
|
66
|
+
ifPackage(packageName, value, defaultValue = '') {
|
|
67
|
+
const packages = Array.isArray(packageName) ? packageName : [packageName];
|
|
68
|
+
if (this.pck.extensionPackages.some(e => packages.includes(e.name))) {
|
|
69
|
+
return typeof value === 'string' ? value : value();
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
return typeof defaultValue === 'string' ? defaultValue : defaultValue();
|
|
73
|
+
}
|
|
62
74
|
}
|
|
63
75
|
prettyStringify(object) {
|
|
64
76
|
// eslint-disable-next-line no-null/no-null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-generator.js","sourceRoot":"","sources":["../../src/generator/abstract-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,yBAAyB;AACzB,+BAA+B;AAQ/B,MAAsB,iBAAiB;IAEnC,YACuB,GAAuB,EAChC,UAA4B,EAAE;QADrB,QAAG,GAAH,GAAG,CAAoB;QAChC,YAAO,GAAP,OAAO,CAAuB;IACxC,CAAC;IAEK,4BAA4B,CAAC,OAA4B;;QAC/D,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,aAAa,mCAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC;QACvF,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpF,CAAC;IAES,2BAA2B,CAAC,OAA4B;QAC9D,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAES,gCAAgC,CAAC,OAA6B;QACpE,OAAO,OAAO,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAES,oBAAoB,CAAC,OAA4B,EAAE,EAAwB;QACjF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,OAAO,EAAE,CAAC;SACb;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACtD,MAAM,UAAU,GAAG,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YACzD,IAAI,EAAE,KAAK,SAAS,EAAE;gBAClB,OAAO,mBAAmB,UAAU,GAAG,CAAC;aAC3C;YACD,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,kCAAkC,SAAS,gBAAgB,CAAC,CAAC;QACjF,OAAO,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAES,SAAS,CAAC,KAAa,EAAE,eAAuB,EAAE;QACxD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACnD,CAAC;IAES,UAAU,CAAC,KAAa,EAAE,eAAuB,EAAE;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAe;QAC/C,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAES,QAAQ,CAAC,KAAmB,EAAE,eAA6B,GAAG,EAAE,CAAC,EAAE;QACzE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"abstract-generator.js","sourceRoot":"","sources":["../../src/generator/abstract-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AbstractGenerator } from './abstract-generator';
|
|
2
2
|
export declare class BackendGenerator extends AbstractGenerator {
|
|
3
3
|
generate(): Promise<void>;
|
|
4
|
+
protected compileElectronMain(electronMainModules?: Map<string, string>): string;
|
|
4
5
|
protected compileServer(backendModules: Map<string, string>): string;
|
|
5
6
|
protected compileMain(backendModules: Map<string, string>): string;
|
|
6
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/backend-generator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"backend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/backend-generator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B,SAAS,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAmEhF,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAwDpE,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAoBrE"}
|
|
@@ -22,6 +22,75 @@ class BackendGenerator extends abstract_generator_1.AbstractGenerator {
|
|
|
22
22
|
const backendModules = this.pck.targetBackendModules;
|
|
23
23
|
await this.write(this.pck.backend('server.js'), this.compileServer(backendModules));
|
|
24
24
|
await this.write(this.pck.backend('main.js'), this.compileMain(backendModules));
|
|
25
|
+
if (this.pck.isElectron()) {
|
|
26
|
+
await this.write(this.pck.backend('electron-main.js'), this.compileElectronMain(this.pck.targetElectronMainModules));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
compileElectronMain(electronMainModules) {
|
|
30
|
+
return `// @ts-check
|
|
31
|
+
|
|
32
|
+
require('reflect-metadata');
|
|
33
|
+
|
|
34
|
+
// Useful for Electron/NW.js apps as GUI apps on macOS doesn't inherit the \`$PATH\` define
|
|
35
|
+
// in your dotfiles (.bashrc/.bash_profile/.zshrc/etc).
|
|
36
|
+
// https://github.com/electron/electron/issues/550#issuecomment-162037357
|
|
37
|
+
// https://github.com/eclipse-theia/theia/pull/3534#issuecomment-439689082
|
|
38
|
+
require('fix-path')();
|
|
39
|
+
|
|
40
|
+
// Workaround for https://github.com/electron/electron/issues/9225. Chrome has an issue where
|
|
41
|
+
// in certain locales (e.g. PL), image metrics are wrongly computed. We explicitly set the
|
|
42
|
+
// LC_NUMERIC to prevent this from happening (selects the numeric formatting category of the
|
|
43
|
+
// C locale, http://en.cppreference.com/w/cpp/locale/LC_categories).
|
|
44
|
+
if (process.env.LC_ALL) {
|
|
45
|
+
process.env.LC_ALL = 'C';
|
|
46
|
+
}
|
|
47
|
+
process.env.LC_NUMERIC = 'C';
|
|
48
|
+
|
|
49
|
+
const { default: electronMainApplicationModule } = require('@theia/core/lib/electron-main/electron-main-application-module');
|
|
50
|
+
const { ElectronMainApplication, ElectronMainApplicationGlobals } = require('@theia/core/lib/electron-main/electron-main-application');
|
|
51
|
+
const { Container } = require('inversify');
|
|
52
|
+
const { resolve } = require('path');
|
|
53
|
+
const { app } = require('electron');
|
|
54
|
+
|
|
55
|
+
// Fix the window reloading issue, see: https://github.com/electron/electron/issues/22119
|
|
56
|
+
app.allowRendererProcessReuse = false;
|
|
57
|
+
|
|
58
|
+
const config = ${this.prettyStringify(this.pck.props.frontend.config)};
|
|
59
|
+
const isSingleInstance = ${this.pck.props.backend.config.singleInstance === true ? 'true' : 'false'};
|
|
60
|
+
|
|
61
|
+
if (isSingleInstance && !app.requestSingleInstanceLock()) {
|
|
62
|
+
// There is another instance running, exit now. The other instance will request focus.
|
|
63
|
+
app.quit();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const container = new Container();
|
|
68
|
+
container.load(electronMainApplicationModule);
|
|
69
|
+
container.bind(ElectronMainApplicationGlobals).toConstantValue({
|
|
70
|
+
THEIA_APP_PROJECT_PATH: resolve(__dirname, '..', '..'),
|
|
71
|
+
THEIA_BACKEND_MAIN_PATH: resolve(__dirname, 'main.js'),
|
|
72
|
+
THEIA_FRONTEND_HTML_PATH: resolve(__dirname, '..', '..', 'lib', 'frontend', 'index.html'),
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
function load(raw) {
|
|
76
|
+
return Promise.resolve(raw.default).then(module =>
|
|
77
|
+
container.load(module)
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
async function start() {
|
|
82
|
+
const application = container.get(ElectronMainApplication);
|
|
83
|
+
await application.start(config);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electronMainModules)}
|
|
87
|
+
.then(start).catch(reason => {
|
|
88
|
+
console.error('Failed to start the electron application.');
|
|
89
|
+
if (reason) {
|
|
90
|
+
console.error(reason);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
`;
|
|
25
94
|
}
|
|
26
95
|
compileServer(backendModules) {
|
|
27
96
|
return `// @ts-check
|
|
@@ -51,7 +120,7 @@ container.load(messagingBackendModule);
|
|
|
51
120
|
container.load(loggerBackendModule);
|
|
52
121
|
|
|
53
122
|
function defaultServeStatic(app) {
|
|
54
|
-
app.use(express.static(path.resolve(__dirname, '../../lib')))
|
|
123
|
+
app.use(express.static(path.resolve(__dirname, '../../lib/frontend')))
|
|
55
124
|
}
|
|
56
125
|
|
|
57
126
|
function load(raw) {
|
|
@@ -94,7 +163,7 @@ serverAddress.then(({ port, address }) => {
|
|
|
94
163
|
}
|
|
95
164
|
});
|
|
96
165
|
|
|
97
|
-
|
|
166
|
+
globalThis.serverAddress = serverAddress;
|
|
98
167
|
`;
|
|
99
168
|
}
|
|
100
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-generator.js","sourceRoot":"","sources":["../../src/generator/backend-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sCAAiB;IAEnD,KAAK,CAAC,QAAQ;QACV,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACrD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"backend-generator.js","sourceRoot":"","sources":["../../src/generator/backend-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sCAAiB;IAEnD,KAAK,CAAC,QAAQ;QACV,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACrD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;QAChF,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;YACvB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;SACxH;IACL,CAAC;IAES,mBAAmB,CAAC,mBAAyC;QACnE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;2BAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA2B/D,IAAI,CAAC,gCAAgC,CAAC,mBAAmB,CAAC;;;;;;;CAO7F,CAAC;IACE,CAAC;IAES,aAAa,CAAC,cAAmC;QACvD,OAAO;8BACe,IAAI,CAAC,UAAU,CAAC;;;;;EAK5C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0DAuCuD,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC;;;;;;;CAOzG,CAAC;IACE,CAAC;IAES,WAAW,CAAC,cAAmC;QACrD,OAAO;;;;uCAIwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;CAYzF,CAAC;IACE,CAAC;CAEJ;AA1JD,4CA0JC"}
|
|
@@ -5,7 +5,6 @@ export declare class FrontendGenerator extends AbstractGenerator {
|
|
|
5
5
|
protected compileIndexHtml(frontendModules: Map<string, string>): string;
|
|
6
6
|
protected compileIndexHead(frontendModules: Map<string, string>): string;
|
|
7
7
|
protected compileIndexJs(frontendModules: Map<string, string>): string;
|
|
8
|
-
protected compileElectronMain(electronMainModules?: Map<string, string>): string;
|
|
9
8
|
/** HTML for secondary windows that contain an extracted widget. */
|
|
10
9
|
protected compileSecondaryWindowHtml(): string;
|
|
11
10
|
protected compileSecondaryModuleImports(secondaryWindowModules: Map<string, string>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,iBAAkB,SAAQ,iBAAiB;IAE9C,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,iBAAkB,SAAQ,iBAAiB;IAE9C,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAc3E,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAexE,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAQxE,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IA0DtE,mEAAmE;IACnE,SAAS,CAAC,0BAA0B,IAAI,MAAM;IA6C9C,SAAS,CAAC,6BAA6B,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAM5F,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAoBtF,gBAAgB,IAAI,MAAM;CAU7B"}
|
|
@@ -26,7 +26,6 @@ class FrontendGenerator extends abstract_generator_1.AbstractGenerator {
|
|
|
26
26
|
await this.write(this.pck.frontend('secondary-window.html'), this.compileSecondaryWindowHtml());
|
|
27
27
|
await this.write(this.pck.frontend('secondary-index.js'), this.compileSecondaryIndexJs(this.pck.secondaryWindowModules));
|
|
28
28
|
if (this.pck.isElectron()) {
|
|
29
|
-
await this.write(this.pck.frontend('electron-main.js'), this.compileElectronMain(this.pck.targetElectronMainModules));
|
|
30
29
|
await this.write(this.pck.frontend('preload.js'), this.compilePreloadJs());
|
|
31
30
|
}
|
|
32
31
|
}
|
|
@@ -117,72 +116,6 @@ module.exports = preloader.preload().then(() => {
|
|
|
117
116
|
return container.get(FrontendApplication).start();
|
|
118
117
|
}
|
|
119
118
|
});
|
|
120
|
-
`;
|
|
121
|
-
}
|
|
122
|
-
compileElectronMain(electronMainModules) {
|
|
123
|
-
return `// @ts-check
|
|
124
|
-
|
|
125
|
-
require('reflect-metadata');
|
|
126
|
-
|
|
127
|
-
// Useful for Electron/NW.js apps as GUI apps on macOS doesn't inherit the \`$PATH\` define
|
|
128
|
-
// in your dotfiles (.bashrc/.bash_profile/.zshrc/etc).
|
|
129
|
-
// https://github.com/electron/electron/issues/550#issuecomment-162037357
|
|
130
|
-
// https://github.com/eclipse-theia/theia/pull/3534#issuecomment-439689082
|
|
131
|
-
require('fix-path')();
|
|
132
|
-
|
|
133
|
-
// Workaround for https://github.com/electron/electron/issues/9225. Chrome has an issue where
|
|
134
|
-
// in certain locales (e.g. PL), image metrics are wrongly computed. We explicitly set the
|
|
135
|
-
// LC_NUMERIC to prevent this from happening (selects the numeric formatting category of the
|
|
136
|
-
// C locale, http://en.cppreference.com/w/cpp/locale/LC_categories).
|
|
137
|
-
if (process.env.LC_ALL) {
|
|
138
|
-
process.env.LC_ALL = 'C';
|
|
139
|
-
}
|
|
140
|
-
process.env.LC_NUMERIC = 'C';
|
|
141
|
-
|
|
142
|
-
const { default: electronMainApplicationModule } = require('@theia/core/lib/electron-main/electron-main-application-module');
|
|
143
|
-
const { ElectronMainApplication, ElectronMainApplicationGlobals } = require('@theia/core/lib/electron-main/electron-main-application');
|
|
144
|
-
const { Container } = require('inversify');
|
|
145
|
-
const { resolve } = require('path');
|
|
146
|
-
const { app } = require('electron');
|
|
147
|
-
|
|
148
|
-
// Fix the window reloading issue, see: https://github.com/electron/electron/issues/22119
|
|
149
|
-
app.allowRendererProcessReuse = false;
|
|
150
|
-
|
|
151
|
-
const config = ${this.prettyStringify(this.pck.props.frontend.config)};
|
|
152
|
-
const isSingleInstance = ${this.pck.props.backend.config.singleInstance === true ? 'true' : 'false'};
|
|
153
|
-
|
|
154
|
-
if (isSingleInstance && !app.requestSingleInstanceLock()) {
|
|
155
|
-
// There is another instance running, exit now. The other instance will request focus.
|
|
156
|
-
app.quit();
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
const container = new Container();
|
|
161
|
-
container.load(electronMainApplicationModule);
|
|
162
|
-
container.bind(ElectronMainApplicationGlobals).toConstantValue({
|
|
163
|
-
THEIA_APP_PROJECT_PATH: resolve(__dirname, '..', '..'),
|
|
164
|
-
THEIA_BACKEND_MAIN_PATH: resolve(__dirname, '..', 'backend', 'main.js'),
|
|
165
|
-
THEIA_FRONTEND_HTML_PATH: resolve(__dirname, '..', '..', 'lib', 'index.html'),
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
function load(raw) {
|
|
169
|
-
return Promise.resolve(raw.default).then(module =>
|
|
170
|
-
container.load(module)
|
|
171
|
-
);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
async function start() {
|
|
175
|
-
const application = container.get(ElectronMainApplication);
|
|
176
|
-
await application.start(config);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electronMainModules)}
|
|
180
|
-
.then(start).catch(reason => {
|
|
181
|
-
console.error('Failed to start the electron application.');
|
|
182
|
-
if (reason) {
|
|
183
|
-
console.error(reason);
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
119
|
`;
|
|
187
120
|
}
|
|
188
121
|
/** HTML for secondary windows that contain an extracted widget. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,8CAA8C;AAE9C,6DAA2E;AAC3E,2BAA8C;AAE9C,MAAa,iBAAkB,SAAQ,sCAAiB;IAEpD,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACrC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACzG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACrG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;QAChG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACzH,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;YACvB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,10 @@ export declare class WebpackGenerator extends AbstractGenerator {
|
|
|
4
4
|
protected shouldGenerateUserWebpackConfig(): Promise<boolean>;
|
|
5
5
|
get configPath(): string;
|
|
6
6
|
get genConfigPath(): string;
|
|
7
|
+
get genNodeConfigPath(): string;
|
|
7
8
|
protected resolve(moduleName: string, path: string): string;
|
|
8
9
|
protected compileWebpackConfig(): string;
|
|
9
10
|
protected compileUserWebpackConfig(): string;
|
|
11
|
+
protected compileNodeWebpackConfig(): string;
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=webpack-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-generator.d.ts","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"webpack-generator.d.ts","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAQf,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQnE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3D,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAoQxC,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAwB5C,SAAS,CAAC,wBAAwB,IAAI,MAAM;CAwI/C"}
|
|
@@ -22,6 +22,7 @@ const abstract_generator_1 = require("./abstract-generator");
|
|
|
22
22
|
class WebpackGenerator extends abstract_generator_1.AbstractGenerator {
|
|
23
23
|
async generate() {
|
|
24
24
|
await this.write(this.genConfigPath, this.compileWebpackConfig());
|
|
25
|
+
await this.write(this.genNodeConfigPath, this.compileNodeWebpackConfig());
|
|
25
26
|
if (await this.shouldGenerateUserWebpackConfig()) {
|
|
26
27
|
await this.write(this.configPath, this.compileUserWebpackConfig());
|
|
27
28
|
}
|
|
@@ -39,6 +40,9 @@ class WebpackGenerator extends abstract_generator_1.AbstractGenerator {
|
|
|
39
40
|
get genConfigPath() {
|
|
40
41
|
return this.pck.path('gen-webpack.config.js');
|
|
41
42
|
}
|
|
43
|
+
get genNodeConfigPath() {
|
|
44
|
+
return this.pck.path('gen-webpack.node.config.js');
|
|
45
|
+
}
|
|
42
46
|
resolve(moduleName, path) {
|
|
43
47
|
return this.pck.resolveModulePath(moduleName, path).split(paths.sep).join('/');
|
|
44
48
|
}
|
|
@@ -51,11 +55,12 @@ class WebpackGenerator extends abstract_generator_1.AbstractGenerator {
|
|
|
51
55
|
const path = require('path');
|
|
52
56
|
const webpack = require('webpack');
|
|
53
57
|
const yargs = require('yargs');
|
|
58
|
+
const resolvePackagePath = require('resolve-package-path');
|
|
54
59
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
55
60
|
const CompressionPlugin = require('compression-webpack-plugin')
|
|
56
61
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
|
|
57
62
|
|
|
58
|
-
const outputPath = path.resolve(__dirname, 'lib');
|
|
63
|
+
const outputPath = path.resolve(__dirname, 'lib', 'frontend');
|
|
59
64
|
const { mode, staticCompression } = yargs.option('mode', {
|
|
60
65
|
description: "Mode to use",
|
|
61
66
|
choices: ["development", "production"],
|
|
@@ -69,10 +74,17 @@ const development = mode === 'development';
|
|
|
69
74
|
|
|
70
75
|
const plugins = [
|
|
71
76
|
new CopyWebpackPlugin({
|
|
72
|
-
patterns: [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
patterns: [
|
|
78
|
+
{
|
|
79
|
+
// copy secondary window html file to lib folder
|
|
80
|
+
from: path.resolve(__dirname, 'src-gen/frontend/secondary-window.html')
|
|
81
|
+
}${this.ifPackage('@theia/plugin-ext', `,
|
|
82
|
+
{
|
|
83
|
+
// copy webview files to lib folder
|
|
84
|
+
from: path.join(resolvePackagePath('@theia/plugin-ext', __dirname), '..', 'src', 'main', 'browser', 'webview', 'pre'),
|
|
85
|
+
to: path.resolve(__dirname, 'lib', 'webview', 'pre')
|
|
86
|
+
}`)}
|
|
87
|
+
]
|
|
76
88
|
}),
|
|
77
89
|
new webpack.ProvidePlugin({
|
|
78
90
|
// the Buffer class doesn't exist in the browser but some dependencies rely on it
|
|
@@ -299,18 +311,157 @@ module.exports = [{
|
|
|
299
311
|
* To reset delete this file and rerun theia build again.
|
|
300
312
|
*/
|
|
301
313
|
// @ts-check
|
|
302
|
-
const
|
|
314
|
+
const configs = require('./${paths.basename(this.genConfigPath)}');
|
|
315
|
+
const nodeConfig = require('./${paths.basename(this.genNodeConfigPath)}');
|
|
303
316
|
|
|
304
317
|
/**
|
|
305
318
|
* Expose bundled modules on window.theia.moduleName namespace, e.g.
|
|
306
319
|
* window['theia']['@theia/core/lib/common/uri'].
|
|
307
320
|
* Such syntax can be used by external code, for instance, for testing.
|
|
308
|
-
|
|
321
|
+
configs[0].module.rules.push({
|
|
309
322
|
test: /\\.js$/,
|
|
310
323
|
loader: require.resolve('@theia/application-manager/lib/expose-loader')
|
|
311
324
|
}); */
|
|
312
325
|
|
|
313
|
-
module.exports =
|
|
326
|
+
module.exports = [
|
|
327
|
+
...configs,
|
|
328
|
+
nodeConfig.config
|
|
329
|
+
];`;
|
|
330
|
+
}
|
|
331
|
+
compileNodeWebpackConfig() {
|
|
332
|
+
return `/**
|
|
333
|
+
* Don't touch this file. It will be regenerated by theia build.
|
|
334
|
+
* To customize webpack configuration change ${this.configPath}
|
|
335
|
+
*/
|
|
336
|
+
// @ts-check
|
|
337
|
+
const path = require('path');
|
|
338
|
+
const yargs = require('yargs');
|
|
339
|
+
const webpack = require('webpack');
|
|
340
|
+
const TerserPlugin = require('terser-webpack-plugin');
|
|
341
|
+
const NativeWebpackPlugin = require('@theia/native-webpack-plugin');
|
|
342
|
+
|
|
343
|
+
const { mode } = yargs.option('mode', {
|
|
344
|
+
description: "Mode to use",
|
|
345
|
+
choices: ["development", "production"],
|
|
346
|
+
default: "production"
|
|
347
|
+
}).argv;
|
|
348
|
+
|
|
349
|
+
const production = mode === 'production';
|
|
350
|
+
|
|
351
|
+
/** @type {import('webpack').EntryObject} */
|
|
352
|
+
const commonJsLibraries = {};
|
|
353
|
+
for (const [entryPointName, entryPointPath] of Object.entries({
|
|
354
|
+
${this.ifPackage('@theia/plugin-ext', "'backend-init-theia': '@theia/plugin-ext/lib/hosted/node/scanners/backend-init-theia',")}
|
|
355
|
+
${this.ifPackage('@theia/filesystem', "'nsfw-watcher': '@theia/filesystem/lib/node/nsfw-watcher',")}
|
|
356
|
+
${this.ifPackage('@theia/plugin-ext-vscode', "'plugin-vscode-init': '@theia/plugin-ext-vscode/lib/node/plugin-vscode-init',")}
|
|
357
|
+
})) {
|
|
358
|
+
commonJsLibraries[entryPointName] = {
|
|
359
|
+
import: require.resolve(entryPointPath),
|
|
360
|
+
library: {
|
|
361
|
+
type: 'commonjs2',
|
|
362
|
+
},
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
const ignoredResources = new Set();
|
|
367
|
+
|
|
368
|
+
if (process.platform !== 'win32') {
|
|
369
|
+
ignoredResources.add('@vscode/windows-ca-certs');
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
const nativePlugin = new NativeWebpackPlugin({
|
|
373
|
+
out: 'native',
|
|
374
|
+
ripgrep: ${this.ifPackage(['@theia/search-in-workspace', '@theia/file-search'], 'true', 'false')},
|
|
375
|
+
pty: ${this.ifPackage('@theia/process', 'true', 'false')},
|
|
376
|
+
nativeBindings: {
|
|
377
|
+
drivelist: 'drivelist/build/Release/drivelist.node'
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
/** @type {import('webpack').Configuration} */
|
|
382
|
+
const config = {
|
|
383
|
+
mode,
|
|
384
|
+
devtool: mode === 'development' ? 'source-map' : false,
|
|
385
|
+
target: 'node',
|
|
386
|
+
node: {
|
|
387
|
+
global: false,
|
|
388
|
+
__filename: false,
|
|
389
|
+
__dirname: false
|
|
390
|
+
},
|
|
391
|
+
output: {
|
|
392
|
+
filename: '[name].js',
|
|
393
|
+
path: path.resolve(__dirname, 'lib', 'backend'),
|
|
394
|
+
devtoolModuleFilenameTemplate: 'webpack:///[absolute-resource-path]?[loaders]',
|
|
395
|
+
},${this.ifElectron(`
|
|
396
|
+
externals: {
|
|
397
|
+
electron: 'require("electron")'
|
|
398
|
+
},`)}
|
|
399
|
+
entry: {
|
|
400
|
+
// Main entry point of the Theia application backend:
|
|
401
|
+
'main': require.resolve('./src-gen/backend/main'),
|
|
402
|
+
// Theia's IPC mechanism:
|
|
403
|
+
'ipc-bootstrap': require.resolve('@theia/core/lib/node/messaging/ipc-bootstrap'),
|
|
404
|
+
${this.ifPackage('@theia/plugin-ext', () => `// VS Code extension support:
|
|
405
|
+
'plugin-host': require.resolve('@theia/plugin-ext/lib/hosted/node/plugin-host'),`)}
|
|
406
|
+
${this.ifPackage('@theia/process', () => `// Make sure the node-pty thread worker can be executed:
|
|
407
|
+
'worker/conoutSocketWorker': require.resolve('node-pty/lib/worker/conoutSocketWorker'),`)}
|
|
408
|
+
${this.ifPackage('@theia/git', () => `// Ensure the git locator process can the started
|
|
409
|
+
'git-locator-host': require.resolve('@theia/git/lib/node/git-locator/git-locator-host'),`)}
|
|
410
|
+
${this.ifElectron("'electron-main': require.resolve('./src-gen/backend/electron-main'),")}
|
|
411
|
+
...commonJsLibraries
|
|
412
|
+
},
|
|
413
|
+
module: {
|
|
414
|
+
rules: [
|
|
415
|
+
// Make sure we can still find and load our native addons.
|
|
416
|
+
{
|
|
417
|
+
test: /\\.node$/,
|
|
418
|
+
loader: 'node-loader',
|
|
419
|
+
options: {
|
|
420
|
+
name: 'native/[name].[ext]'
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
test: /\\.js$/,
|
|
425
|
+
enforce: 'pre',
|
|
426
|
+
loader: 'source-map-loader'
|
|
427
|
+
},
|
|
428
|
+
// jsonc-parser exposes its UMD implementation by default, which
|
|
429
|
+
// confuses Webpack leading to missing js in the bundles.
|
|
430
|
+
{
|
|
431
|
+
test: /node_modules[\\/](jsonc-parser)/,
|
|
432
|
+
loader: 'umd-compat-loader'
|
|
433
|
+
}
|
|
434
|
+
]
|
|
435
|
+
},
|
|
436
|
+
plugins: [
|
|
437
|
+
// Some native dependencies (bindings, @vscode/ripgrep) need special code replacements
|
|
438
|
+
nativePlugin,
|
|
439
|
+
// Optional node dependencies can be safely ignored
|
|
440
|
+
new webpack.IgnorePlugin({
|
|
441
|
+
checkResource: resource => ignoredResources.has(resource)
|
|
442
|
+
})
|
|
443
|
+
],
|
|
444
|
+
optimization: {
|
|
445
|
+
// Split and reuse code across the various entry points
|
|
446
|
+
splitChunks: {
|
|
447
|
+
chunks: 'all'
|
|
448
|
+
},
|
|
449
|
+
// Only minimize if we run webpack in production mode
|
|
450
|
+
minimize: production,
|
|
451
|
+
minimizer: [
|
|
452
|
+
new TerserPlugin({
|
|
453
|
+
exclude: /^(lib|builtins)\\//
|
|
454
|
+
})
|
|
455
|
+
]
|
|
456
|
+
},
|
|
457
|
+
};
|
|
458
|
+
|
|
459
|
+
module.exports = {
|
|
460
|
+
config,
|
|
461
|
+
nativePlugin,
|
|
462
|
+
ignoredResources
|
|
463
|
+
};
|
|
464
|
+
`;
|
|
314
465
|
}
|
|
315
466
|
}
|
|
316
467
|
exports.WebpackGenerator = WebpackGenerator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-generator.js","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,8BAA8B;AAC9B,+BAA+B;AAC/B,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sCAAiB;IAEnD,KAAK,CAAC,QAAQ;QACV,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,IAAI,CAAC,+BAA+B,EAAE,EAAE;YAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;SACtE;IACL,CAAC;IAES,KAAK,CAAC,+BAA+B;QAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;YACzC,OAAO,IAAI,CAAC;SACf;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClD,CAAC;IAES,OAAO,CAAC,UAAkB,EAAE,IAAY;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;IAES,oBAAoB;QAC1B,OAAO;;+CAEgC,IAAI,CAAC,UAAU
|
|
1
|
+
{"version":3,"file":"webpack-generator.js","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"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"}
|
package/lib/rebuild.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../src/rebuild.ts"],"names":[],"mappings":"AAqBA,oBAAY,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AASnD,aAAK,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/B,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../src/rebuild.ts"],"names":[],"mappings":"AAqBA,oBAAY,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AASnD,aAAK,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/B,eAAO,MAAM,eAAe,UAS3B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,cAAmB,GAAG,IAAI,CAuBjF"}
|
package/lib/rebuild.js
CHANGED
package/lib/rebuild.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../src/rebuild.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,oCAAqC;AACrC,+BAAgC;AAChC,6BAA8B;AAC9B,yBAA0B;AAI1B,MAAM,YAAY,GAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAShD,QAAA,eAAe,GAAG;IAC3B,UAAU;IACV,MAAM;IACN,eAAe;IACf,uBAAuB;IACvB,WAAW;
|
|
1
|
+
{"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../src/rebuild.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/application-manager",
|
|
3
|
-
"version": "1.39.0-next.
|
|
3
|
+
"version": "1.39.0-next.19+72e48cc2d",
|
|
4
4
|
"description": "Theia application manager API.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -33,8 +33,9 @@
|
|
|
33
33
|
"@babel/plugin-transform-classes": "^7.10.0",
|
|
34
34
|
"@babel/plugin-transform-runtime": "^7.10.0",
|
|
35
35
|
"@babel/preset-env": "^7.10.0",
|
|
36
|
-
"@theia/application-package": "1.39.0-next.
|
|
37
|
-
"@theia/ffmpeg": "1.39.0-next.
|
|
36
|
+
"@theia/application-package": "1.39.0-next.19+72e48cc2d",
|
|
37
|
+
"@theia/ffmpeg": "1.39.0-next.19+72e48cc2d",
|
|
38
|
+
"@theia/native-webpack-plugin": "1.39.0-next.19+72e48cc2d",
|
|
38
39
|
"@types/fs-extra": "^4.0.2",
|
|
39
40
|
"@types/semver": "^7.3.8",
|
|
40
41
|
"babel-loader": "^8.2.2",
|
|
@@ -48,6 +49,7 @@
|
|
|
48
49
|
"less": "^3.0.3",
|
|
49
50
|
"mini-css-extract-plugin": "^2.6.1",
|
|
50
51
|
"node-abi": "*",
|
|
52
|
+
"node-loader": "^2.0.0",
|
|
51
53
|
"path-browserify": "^1.0.1",
|
|
52
54
|
"semver": "^7.3.5",
|
|
53
55
|
"setimmediate": "^1.0.5",
|
|
@@ -77,5 +79,5 @@
|
|
|
77
79
|
"nyc": {
|
|
78
80
|
"extends": "../../configs/nyc.json"
|
|
79
81
|
},
|
|
80
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "72e48cc2d4d5cad62b9ae7ef76775da9711da560"
|
|
81
83
|
}
|
|
@@ -104,8 +104,8 @@ export class ApplicationPackageManager {
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
async copy(): Promise<void> {
|
|
107
|
-
await fs.ensureDir(this.pck.lib());
|
|
108
|
-
await fs.copy(this.pck.frontend('index.html'), this.pck.lib('index.html'));
|
|
107
|
+
await fs.ensureDir(this.pck.lib('frontend'));
|
|
108
|
+
await fs.copy(this.pck.frontend('index.html'), this.pck.lib('frontend', 'index.html'));
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
async build(args: string[] = [], options: GeneratorOptions = {}): Promise<void> {
|
|
@@ -127,7 +127,12 @@ export class ApplicationPackageManager {
|
|
|
127
127
|
let appPath = this.pck.projectPath;
|
|
128
128
|
|
|
129
129
|
if (!this.pck.pck.main) {
|
|
130
|
-
|
|
130
|
+
// Try the bundled electron app first
|
|
131
|
+
appPath = this.pck.lib('backend', 'electron-main.js');
|
|
132
|
+
if (!fs.existsSync(appPath)) {
|
|
133
|
+
// Fallback to the generated electron app in src-gen
|
|
134
|
+
appPath = this.pck.backend('electron-main.js');
|
|
135
|
+
}
|
|
131
136
|
|
|
132
137
|
console.warn(
|
|
133
138
|
`WARNING: ${this.pck.packagePath} does not have a "main" entry.\n` +
|
|
@@ -146,7 +151,13 @@ export class ApplicationPackageManager {
|
|
|
146
151
|
// The backend must be a process group leader on UNIX in order to kill the tree later.
|
|
147
152
|
// See https://nodejs.org/api/child_process.html#child_process_options_detached
|
|
148
153
|
options.detached = process.platform !== 'win32';
|
|
149
|
-
|
|
154
|
+
// Try the bundled backend app first
|
|
155
|
+
let mainPath = this.pck.lib('backend', 'main.js');
|
|
156
|
+
if (!fs.existsSync(mainPath)) {
|
|
157
|
+
// Fallback to the generated backend file in src-gen
|
|
158
|
+
mainPath = this.pck.backend('main.js');
|
|
159
|
+
}
|
|
160
|
+
return this.__process.fork(mainPath, mainArgs, options);
|
|
150
161
|
}
|
|
151
162
|
|
|
152
163
|
/**
|
|
@@ -71,7 +71,19 @@ export abstract class AbstractGenerator {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
protected ifMonaco(value: () => string, defaultValue: () => string = () => ''): string {
|
|
74
|
-
return
|
|
74
|
+
return this.ifPackage([
|
|
75
|
+
'@theia/monaco',
|
|
76
|
+
'@theia/monaco-editor-core'
|
|
77
|
+
], value, defaultValue);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
protected ifPackage(packageName: string | string[], value: string | (() => string), defaultValue: string | (() => string) = ''): string {
|
|
81
|
+
const packages = Array.isArray(packageName) ? packageName : [packageName];
|
|
82
|
+
if (this.pck.extensionPackages.some(e => packages.includes(e.name))) {
|
|
83
|
+
return typeof value === 'string' ? value : value();
|
|
84
|
+
} else {
|
|
85
|
+
return typeof defaultValue === 'string' ? defaultValue : defaultValue();
|
|
86
|
+
}
|
|
75
87
|
}
|
|
76
88
|
|
|
77
89
|
protected prettyStringify(object: object): string {
|
|
@@ -22,6 +22,76 @@ export class BackendGenerator extends AbstractGenerator {
|
|
|
22
22
|
const backendModules = this.pck.targetBackendModules;
|
|
23
23
|
await this.write(this.pck.backend('server.js'), this.compileServer(backendModules));
|
|
24
24
|
await this.write(this.pck.backend('main.js'), this.compileMain(backendModules));
|
|
25
|
+
if (this.pck.isElectron()) {
|
|
26
|
+
await this.write(this.pck.backend('electron-main.js'), this.compileElectronMain(this.pck.targetElectronMainModules));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
protected compileElectronMain(electronMainModules?: Map<string, string>): string {
|
|
31
|
+
return `// @ts-check
|
|
32
|
+
|
|
33
|
+
require('reflect-metadata');
|
|
34
|
+
|
|
35
|
+
// Useful for Electron/NW.js apps as GUI apps on macOS doesn't inherit the \`$PATH\` define
|
|
36
|
+
// in your dotfiles (.bashrc/.bash_profile/.zshrc/etc).
|
|
37
|
+
// https://github.com/electron/electron/issues/550#issuecomment-162037357
|
|
38
|
+
// https://github.com/eclipse-theia/theia/pull/3534#issuecomment-439689082
|
|
39
|
+
require('fix-path')();
|
|
40
|
+
|
|
41
|
+
// Workaround for https://github.com/electron/electron/issues/9225. Chrome has an issue where
|
|
42
|
+
// in certain locales (e.g. PL), image metrics are wrongly computed. We explicitly set the
|
|
43
|
+
// LC_NUMERIC to prevent this from happening (selects the numeric formatting category of the
|
|
44
|
+
// C locale, http://en.cppreference.com/w/cpp/locale/LC_categories).
|
|
45
|
+
if (process.env.LC_ALL) {
|
|
46
|
+
process.env.LC_ALL = 'C';
|
|
47
|
+
}
|
|
48
|
+
process.env.LC_NUMERIC = 'C';
|
|
49
|
+
|
|
50
|
+
const { default: electronMainApplicationModule } = require('@theia/core/lib/electron-main/electron-main-application-module');
|
|
51
|
+
const { ElectronMainApplication, ElectronMainApplicationGlobals } = require('@theia/core/lib/electron-main/electron-main-application');
|
|
52
|
+
const { Container } = require('inversify');
|
|
53
|
+
const { resolve } = require('path');
|
|
54
|
+
const { app } = require('electron');
|
|
55
|
+
|
|
56
|
+
// Fix the window reloading issue, see: https://github.com/electron/electron/issues/22119
|
|
57
|
+
app.allowRendererProcessReuse = false;
|
|
58
|
+
|
|
59
|
+
const config = ${this.prettyStringify(this.pck.props.frontend.config)};
|
|
60
|
+
const isSingleInstance = ${this.pck.props.backend.config.singleInstance === true ? 'true' : 'false'};
|
|
61
|
+
|
|
62
|
+
if (isSingleInstance && !app.requestSingleInstanceLock()) {
|
|
63
|
+
// There is another instance running, exit now. The other instance will request focus.
|
|
64
|
+
app.quit();
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const container = new Container();
|
|
69
|
+
container.load(electronMainApplicationModule);
|
|
70
|
+
container.bind(ElectronMainApplicationGlobals).toConstantValue({
|
|
71
|
+
THEIA_APP_PROJECT_PATH: resolve(__dirname, '..', '..'),
|
|
72
|
+
THEIA_BACKEND_MAIN_PATH: resolve(__dirname, 'main.js'),
|
|
73
|
+
THEIA_FRONTEND_HTML_PATH: resolve(__dirname, '..', '..', 'lib', 'frontend', 'index.html'),
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
function load(raw) {
|
|
77
|
+
return Promise.resolve(raw.default).then(module =>
|
|
78
|
+
container.load(module)
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async function start() {
|
|
83
|
+
const application = container.get(ElectronMainApplication);
|
|
84
|
+
await application.start(config);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electronMainModules)}
|
|
88
|
+
.then(start).catch(reason => {
|
|
89
|
+
console.error('Failed to start the electron application.');
|
|
90
|
+
if (reason) {
|
|
91
|
+
console.error(reason);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
`;
|
|
25
95
|
}
|
|
26
96
|
|
|
27
97
|
protected compileServer(backendModules: Map<string, string>): string {
|
|
@@ -52,7 +122,7 @@ container.load(messagingBackendModule);
|
|
|
52
122
|
container.load(loggerBackendModule);
|
|
53
123
|
|
|
54
124
|
function defaultServeStatic(app) {
|
|
55
|
-
app.use(express.static(path.resolve(__dirname, '../../lib')))
|
|
125
|
+
app.use(express.static(path.resolve(__dirname, '../../lib/frontend')))
|
|
56
126
|
}
|
|
57
127
|
|
|
58
128
|
function load(raw) {
|
|
@@ -96,7 +166,7 @@ serverAddress.then(({ port, address }) => {
|
|
|
96
166
|
}
|
|
97
167
|
});
|
|
98
168
|
|
|
99
|
-
|
|
169
|
+
globalThis.serverAddress = serverAddress;
|
|
100
170
|
`;
|
|
101
171
|
}
|
|
102
172
|
|
|
@@ -27,7 +27,6 @@ export class FrontendGenerator extends AbstractGenerator {
|
|
|
27
27
|
await this.write(this.pck.frontend('secondary-window.html'), this.compileSecondaryWindowHtml());
|
|
28
28
|
await this.write(this.pck.frontend('secondary-index.js'), this.compileSecondaryIndexJs(this.pck.secondaryWindowModules));
|
|
29
29
|
if (this.pck.isElectron()) {
|
|
30
|
-
await this.write(this.pck.frontend('electron-main.js'), this.compileElectronMain(this.pck.targetElectronMainModules));
|
|
31
30
|
await this.write(this.pck.frontend('preload.js'), this.compilePreloadJs());
|
|
32
31
|
}
|
|
33
32
|
}
|
|
@@ -127,73 +126,6 @@ module.exports = preloader.preload().then(() => {
|
|
|
127
126
|
`;
|
|
128
127
|
}
|
|
129
128
|
|
|
130
|
-
protected compileElectronMain(electronMainModules?: Map<string, string>): string {
|
|
131
|
-
return `// @ts-check
|
|
132
|
-
|
|
133
|
-
require('reflect-metadata');
|
|
134
|
-
|
|
135
|
-
// Useful for Electron/NW.js apps as GUI apps on macOS doesn't inherit the \`$PATH\` define
|
|
136
|
-
// in your dotfiles (.bashrc/.bash_profile/.zshrc/etc).
|
|
137
|
-
// https://github.com/electron/electron/issues/550#issuecomment-162037357
|
|
138
|
-
// https://github.com/eclipse-theia/theia/pull/3534#issuecomment-439689082
|
|
139
|
-
require('fix-path')();
|
|
140
|
-
|
|
141
|
-
// Workaround for https://github.com/electron/electron/issues/9225. Chrome has an issue where
|
|
142
|
-
// in certain locales (e.g. PL), image metrics are wrongly computed. We explicitly set the
|
|
143
|
-
// LC_NUMERIC to prevent this from happening (selects the numeric formatting category of the
|
|
144
|
-
// C locale, http://en.cppreference.com/w/cpp/locale/LC_categories).
|
|
145
|
-
if (process.env.LC_ALL) {
|
|
146
|
-
process.env.LC_ALL = 'C';
|
|
147
|
-
}
|
|
148
|
-
process.env.LC_NUMERIC = 'C';
|
|
149
|
-
|
|
150
|
-
const { default: electronMainApplicationModule } = require('@theia/core/lib/electron-main/electron-main-application-module');
|
|
151
|
-
const { ElectronMainApplication, ElectronMainApplicationGlobals } = require('@theia/core/lib/electron-main/electron-main-application');
|
|
152
|
-
const { Container } = require('inversify');
|
|
153
|
-
const { resolve } = require('path');
|
|
154
|
-
const { app } = require('electron');
|
|
155
|
-
|
|
156
|
-
// Fix the window reloading issue, see: https://github.com/electron/electron/issues/22119
|
|
157
|
-
app.allowRendererProcessReuse = false;
|
|
158
|
-
|
|
159
|
-
const config = ${this.prettyStringify(this.pck.props.frontend.config)};
|
|
160
|
-
const isSingleInstance = ${this.pck.props.backend.config.singleInstance === true ? 'true' : 'false'};
|
|
161
|
-
|
|
162
|
-
if (isSingleInstance && !app.requestSingleInstanceLock()) {
|
|
163
|
-
// There is another instance running, exit now. The other instance will request focus.
|
|
164
|
-
app.quit();
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
const container = new Container();
|
|
169
|
-
container.load(electronMainApplicationModule);
|
|
170
|
-
container.bind(ElectronMainApplicationGlobals).toConstantValue({
|
|
171
|
-
THEIA_APP_PROJECT_PATH: resolve(__dirname, '..', '..'),
|
|
172
|
-
THEIA_BACKEND_MAIN_PATH: resolve(__dirname, '..', 'backend', 'main.js'),
|
|
173
|
-
THEIA_FRONTEND_HTML_PATH: resolve(__dirname, '..', '..', 'lib', 'index.html'),
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
function load(raw) {
|
|
177
|
-
return Promise.resolve(raw.default).then(module =>
|
|
178
|
-
container.load(module)
|
|
179
|
-
);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
async function start() {
|
|
183
|
-
const application = container.get(ElectronMainApplication);
|
|
184
|
-
await application.start(config);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
module.exports = Promise.resolve()${this.compileElectronMainModuleImports(electronMainModules)}
|
|
188
|
-
.then(start).catch(reason => {
|
|
189
|
-
console.error('Failed to start the electron application.');
|
|
190
|
-
if (reason) {
|
|
191
|
-
console.error(reason);
|
|
192
|
-
}
|
|
193
|
-
});
|
|
194
|
-
`;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
129
|
/** HTML for secondary windows that contain an extracted widget. */
|
|
198
130
|
protected compileSecondaryWindowHtml(): string {
|
|
199
131
|
return `<!DOCTYPE html>
|
|
@@ -22,6 +22,7 @@ export class WebpackGenerator extends AbstractGenerator {
|
|
|
22
22
|
|
|
23
23
|
async generate(): Promise<void> {
|
|
24
24
|
await this.write(this.genConfigPath, this.compileWebpackConfig());
|
|
25
|
+
await this.write(this.genNodeConfigPath, this.compileNodeWebpackConfig());
|
|
25
26
|
if (await this.shouldGenerateUserWebpackConfig()) {
|
|
26
27
|
await this.write(this.configPath, this.compileUserWebpackConfig());
|
|
27
28
|
}
|
|
@@ -43,6 +44,10 @@ export class WebpackGenerator extends AbstractGenerator {
|
|
|
43
44
|
return this.pck.path('gen-webpack.config.js');
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
get genNodeConfigPath(): string {
|
|
48
|
+
return this.pck.path('gen-webpack.node.config.js');
|
|
49
|
+
}
|
|
50
|
+
|
|
46
51
|
protected resolve(moduleName: string, path: string): string {
|
|
47
52
|
return this.pck.resolveModulePath(moduleName, path).split(paths.sep).join('/');
|
|
48
53
|
}
|
|
@@ -56,11 +61,12 @@ export class WebpackGenerator extends AbstractGenerator {
|
|
|
56
61
|
const path = require('path');
|
|
57
62
|
const webpack = require('webpack');
|
|
58
63
|
const yargs = require('yargs');
|
|
64
|
+
const resolvePackagePath = require('resolve-package-path');
|
|
59
65
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
60
66
|
const CompressionPlugin = require('compression-webpack-plugin')
|
|
61
67
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
|
|
62
68
|
|
|
63
|
-
const outputPath = path.resolve(__dirname, 'lib');
|
|
69
|
+
const outputPath = path.resolve(__dirname, 'lib', 'frontend');
|
|
64
70
|
const { mode, staticCompression } = yargs.option('mode', {
|
|
65
71
|
description: "Mode to use",
|
|
66
72
|
choices: ["development", "production"],
|
|
@@ -74,10 +80,17 @@ const development = mode === 'development';
|
|
|
74
80
|
|
|
75
81
|
const plugins = [
|
|
76
82
|
new CopyWebpackPlugin({
|
|
77
|
-
patterns: [
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
patterns: [
|
|
84
|
+
{
|
|
85
|
+
// copy secondary window html file to lib folder
|
|
86
|
+
from: path.resolve(__dirname, 'src-gen/frontend/secondary-window.html')
|
|
87
|
+
}${this.ifPackage('@theia/plugin-ext', `,
|
|
88
|
+
{
|
|
89
|
+
// copy webview files to lib folder
|
|
90
|
+
from: path.join(resolvePackagePath('@theia/plugin-ext', __dirname), '..', 'src', 'main', 'browser', 'webview', 'pre'),
|
|
91
|
+
to: path.resolve(__dirname, 'lib', 'webview', 'pre')
|
|
92
|
+
}`)}
|
|
93
|
+
]
|
|
81
94
|
}),
|
|
82
95
|
new webpack.ProvidePlugin({
|
|
83
96
|
// the Buffer class doesn't exist in the browser but some dependencies rely on it
|
|
@@ -305,18 +318,158 @@ module.exports = [{
|
|
|
305
318
|
* To reset delete this file and rerun theia build again.
|
|
306
319
|
*/
|
|
307
320
|
// @ts-check
|
|
308
|
-
const
|
|
321
|
+
const configs = require('./${paths.basename(this.genConfigPath)}');
|
|
322
|
+
const nodeConfig = require('./${paths.basename(this.genNodeConfigPath)}');
|
|
309
323
|
|
|
310
324
|
/**
|
|
311
325
|
* Expose bundled modules on window.theia.moduleName namespace, e.g.
|
|
312
326
|
* window['theia']['@theia/core/lib/common/uri'].
|
|
313
327
|
* Such syntax can be used by external code, for instance, for testing.
|
|
314
|
-
|
|
328
|
+
configs[0].module.rules.push({
|
|
315
329
|
test: /\\.js$/,
|
|
316
330
|
loader: require.resolve('@theia/application-manager/lib/expose-loader')
|
|
317
331
|
}); */
|
|
318
332
|
|
|
319
|
-
module.exports =
|
|
333
|
+
module.exports = [
|
|
334
|
+
...configs,
|
|
335
|
+
nodeConfig.config
|
|
336
|
+
];`;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
protected compileNodeWebpackConfig(): string {
|
|
340
|
+
return `/**
|
|
341
|
+
* Don't touch this file. It will be regenerated by theia build.
|
|
342
|
+
* To customize webpack configuration change ${this.configPath}
|
|
343
|
+
*/
|
|
344
|
+
// @ts-check
|
|
345
|
+
const path = require('path');
|
|
346
|
+
const yargs = require('yargs');
|
|
347
|
+
const webpack = require('webpack');
|
|
348
|
+
const TerserPlugin = require('terser-webpack-plugin');
|
|
349
|
+
const NativeWebpackPlugin = require('@theia/native-webpack-plugin');
|
|
350
|
+
|
|
351
|
+
const { mode } = yargs.option('mode', {
|
|
352
|
+
description: "Mode to use",
|
|
353
|
+
choices: ["development", "production"],
|
|
354
|
+
default: "production"
|
|
355
|
+
}).argv;
|
|
356
|
+
|
|
357
|
+
const production = mode === 'production';
|
|
358
|
+
|
|
359
|
+
/** @type {import('webpack').EntryObject} */
|
|
360
|
+
const commonJsLibraries = {};
|
|
361
|
+
for (const [entryPointName, entryPointPath] of Object.entries({
|
|
362
|
+
${this.ifPackage('@theia/plugin-ext', "'backend-init-theia': '@theia/plugin-ext/lib/hosted/node/scanners/backend-init-theia',")}
|
|
363
|
+
${this.ifPackage('@theia/filesystem', "'nsfw-watcher': '@theia/filesystem/lib/node/nsfw-watcher',")}
|
|
364
|
+
${this.ifPackage('@theia/plugin-ext-vscode', "'plugin-vscode-init': '@theia/plugin-ext-vscode/lib/node/plugin-vscode-init',")}
|
|
365
|
+
})) {
|
|
366
|
+
commonJsLibraries[entryPointName] = {
|
|
367
|
+
import: require.resolve(entryPointPath),
|
|
368
|
+
library: {
|
|
369
|
+
type: 'commonjs2',
|
|
370
|
+
},
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
const ignoredResources = new Set();
|
|
375
|
+
|
|
376
|
+
if (process.platform !== 'win32') {
|
|
377
|
+
ignoredResources.add('@vscode/windows-ca-certs');
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
const nativePlugin = new NativeWebpackPlugin({
|
|
381
|
+
out: 'native',
|
|
382
|
+
ripgrep: ${this.ifPackage(['@theia/search-in-workspace', '@theia/file-search'], 'true', 'false')},
|
|
383
|
+
pty: ${this.ifPackage('@theia/process', 'true', 'false')},
|
|
384
|
+
nativeBindings: {
|
|
385
|
+
drivelist: 'drivelist/build/Release/drivelist.node'
|
|
386
|
+
}
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
/** @type {import('webpack').Configuration} */
|
|
390
|
+
const config = {
|
|
391
|
+
mode,
|
|
392
|
+
devtool: mode === 'development' ? 'source-map' : false,
|
|
393
|
+
target: 'node',
|
|
394
|
+
node: {
|
|
395
|
+
global: false,
|
|
396
|
+
__filename: false,
|
|
397
|
+
__dirname: false
|
|
398
|
+
},
|
|
399
|
+
output: {
|
|
400
|
+
filename: '[name].js',
|
|
401
|
+
path: path.resolve(__dirname, 'lib', 'backend'),
|
|
402
|
+
devtoolModuleFilenameTemplate: 'webpack:///[absolute-resource-path]?[loaders]',
|
|
403
|
+
},${this.ifElectron(`
|
|
404
|
+
externals: {
|
|
405
|
+
electron: 'require("electron")'
|
|
406
|
+
},`)}
|
|
407
|
+
entry: {
|
|
408
|
+
// Main entry point of the Theia application backend:
|
|
409
|
+
'main': require.resolve('./src-gen/backend/main'),
|
|
410
|
+
// Theia's IPC mechanism:
|
|
411
|
+
'ipc-bootstrap': require.resolve('@theia/core/lib/node/messaging/ipc-bootstrap'),
|
|
412
|
+
${this.ifPackage('@theia/plugin-ext', () => `// VS Code extension support:
|
|
413
|
+
'plugin-host': require.resolve('@theia/plugin-ext/lib/hosted/node/plugin-host'),`)}
|
|
414
|
+
${this.ifPackage('@theia/process', () => `// Make sure the node-pty thread worker can be executed:
|
|
415
|
+
'worker/conoutSocketWorker': require.resolve('node-pty/lib/worker/conoutSocketWorker'),`)}
|
|
416
|
+
${this.ifPackage('@theia/git', () => `// Ensure the git locator process can the started
|
|
417
|
+
'git-locator-host': require.resolve('@theia/git/lib/node/git-locator/git-locator-host'),`)}
|
|
418
|
+
${this.ifElectron("'electron-main': require.resolve('./src-gen/backend/electron-main'),")}
|
|
419
|
+
...commonJsLibraries
|
|
420
|
+
},
|
|
421
|
+
module: {
|
|
422
|
+
rules: [
|
|
423
|
+
// Make sure we can still find and load our native addons.
|
|
424
|
+
{
|
|
425
|
+
test: /\\.node$/,
|
|
426
|
+
loader: 'node-loader',
|
|
427
|
+
options: {
|
|
428
|
+
name: 'native/[name].[ext]'
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
test: /\\.js$/,
|
|
433
|
+
enforce: 'pre',
|
|
434
|
+
loader: 'source-map-loader'
|
|
435
|
+
},
|
|
436
|
+
// jsonc-parser exposes its UMD implementation by default, which
|
|
437
|
+
// confuses Webpack leading to missing js in the bundles.
|
|
438
|
+
{
|
|
439
|
+
test: /node_modules[\\/](jsonc-parser)/,
|
|
440
|
+
loader: 'umd-compat-loader'
|
|
441
|
+
}
|
|
442
|
+
]
|
|
443
|
+
},
|
|
444
|
+
plugins: [
|
|
445
|
+
// Some native dependencies (bindings, @vscode/ripgrep) need special code replacements
|
|
446
|
+
nativePlugin,
|
|
447
|
+
// Optional node dependencies can be safely ignored
|
|
448
|
+
new webpack.IgnorePlugin({
|
|
449
|
+
checkResource: resource => ignoredResources.has(resource)
|
|
450
|
+
})
|
|
451
|
+
],
|
|
452
|
+
optimization: {
|
|
453
|
+
// Split and reuse code across the various entry points
|
|
454
|
+
splitChunks: {
|
|
455
|
+
chunks: 'all'
|
|
456
|
+
},
|
|
457
|
+
// Only minimize if we run webpack in production mode
|
|
458
|
+
minimize: production,
|
|
459
|
+
minimizer: [
|
|
460
|
+
new TerserPlugin({
|
|
461
|
+
exclude: /^(lib|builtins)\\//
|
|
462
|
+
})
|
|
463
|
+
]
|
|
464
|
+
},
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
module.exports = {
|
|
468
|
+
config,
|
|
469
|
+
nativePlugin,
|
|
470
|
+
ignoredResources
|
|
471
|
+
};
|
|
472
|
+
`;
|
|
320
473
|
}
|
|
321
474
|
|
|
322
475
|
}
|