@theia/application-manager 1.17.0-next.ff9e0507 → 1.18.0-next.05f289b3
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.js +63 -190
- package/lib/application-package-manager.js.map +1 -1
- package/lib/application-process.js +29 -31
- package/lib/application-process.js.map +1 -1
- package/lib/expose-loader.js +19 -45
- package/lib/expose-loader.js.map +1 -1
- package/lib/generator/abstract-generator.js +31 -83
- package/lib/generator/abstract-generator.js.map +1 -1
- package/lib/generator/backend-generator.js +81 -80
- package/lib/generator/backend-generator.js.map +1 -1
- package/lib/generator/frontend-generator.d.ts.map +1 -1
- package/lib/generator/frontend-generator.js +153 -98
- package/lib/generator/frontend-generator.js.map +1 -1
- package/lib/generator/webpack-generator.d.ts.map +1 -1
- package/lib/generator/webpack-generator.js +207 -116
- package/lib/generator/webpack-generator.js.map +1 -1
- package/lib/package.spec.js +2 -2
- package/lib/package.spec.js.map +1 -1
- package/lib/rebuild.js +31 -97
- package/lib/rebuild.js.map +1 -1
- package/package.json +3 -3
- package/src/generator/frontend-generator.ts +41 -33
- package/src/generator/webpack-generator.ts +0 -20
|
@@ -14,87 +14,20 @@
|
|
|
14
14
|
*
|
|
15
15
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
16
|
********************************************************************************/
|
|
17
|
-
var __assign = (this && this.__assign) || function () {
|
|
18
|
-
__assign = Object.assign || function(t) {
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
}
|
|
24
|
-
return t;
|
|
25
|
-
};
|
|
26
|
-
return __assign.apply(this, arguments);
|
|
27
|
-
};
|
|
28
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
30
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
32
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
33
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
34
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
38
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
39
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
40
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
41
|
-
function step(op) {
|
|
42
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
43
|
-
while (_) try {
|
|
44
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
45
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
46
|
-
switch (op[0]) {
|
|
47
|
-
case 0: case 1: t = op; break;
|
|
48
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
49
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
50
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
51
|
-
default:
|
|
52
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
53
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
54
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
55
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
56
|
-
if (t[2]) _.ops.pop();
|
|
57
|
-
_.trys.pop(); continue;
|
|
58
|
-
}
|
|
59
|
-
op = body.call(thisArg, _);
|
|
60
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
61
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
65
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
66
|
-
if (!m) return o;
|
|
67
|
-
var i = m.call(o), r, ar = [], e;
|
|
68
|
-
try {
|
|
69
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
70
|
-
}
|
|
71
|
-
catch (error) { e = { error: error }; }
|
|
72
|
-
finally {
|
|
73
|
-
try {
|
|
74
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
75
|
-
}
|
|
76
|
-
finally { if (e) throw e.error; }
|
|
77
|
-
}
|
|
78
|
-
return ar;
|
|
79
|
-
};
|
|
80
|
-
var __spread = (this && this.__spread) || function () {
|
|
81
|
-
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
82
|
-
return ar;
|
|
83
|
-
};
|
|
84
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
85
18
|
exports.ApplicationPackageManager = void 0;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
19
|
+
const path = require("path");
|
|
20
|
+
const fs = require("fs-extra");
|
|
21
|
+
const application_package_1 = require("@theia/application-package");
|
|
22
|
+
const generator_1 = require("./generator");
|
|
23
|
+
const application_process_1 = require("./application-process");
|
|
24
|
+
class ApplicationPackageManager {
|
|
25
|
+
constructor(options) {
|
|
93
26
|
this.pck = new application_package_1.ApplicationPackage(options);
|
|
94
27
|
this.process = new application_process_1.ApplicationProcess(this.pck, options.projectPath);
|
|
95
28
|
this.__process = new application_process_1.ApplicationProcess(this.pck, path.join(__dirname, '..'));
|
|
96
29
|
}
|
|
97
|
-
|
|
30
|
+
static defineGeneratorOptions(cli) {
|
|
98
31
|
return cli
|
|
99
32
|
.option('mode', {
|
|
100
33
|
description: 'Generation mode to use',
|
|
@@ -105,141 +38,81 @@ var ApplicationPackageManager = /** @class */ (function () {
|
|
|
105
38
|
description: 'Split frontend modules into separate chunks. By default enabled in the `development` mode and disabled in the `production` mode.',
|
|
106
39
|
type: 'boolean'
|
|
107
40
|
});
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
};
|
|
141
|
-
ApplicationPackageManager.prototype.generate = function (options) {
|
|
142
|
-
if (options === void 0) { options = {}; }
|
|
143
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
144
|
-
return __generator(this, function (_a) {
|
|
145
|
-
switch (_a.label) {
|
|
146
|
-
case 0: return [4 /*yield*/, Promise.all([
|
|
147
|
-
new generator_1.WebpackGenerator(this.pck, options).generate(),
|
|
148
|
-
new generator_1.BackendGenerator(this.pck, options).generate(),
|
|
149
|
-
new generator_1.FrontendGenerator(this.pck, options).generate(),
|
|
150
|
-
])];
|
|
151
|
-
case 1:
|
|
152
|
-
_a.sent();
|
|
153
|
-
return [2 /*return*/];
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
};
|
|
158
|
-
ApplicationPackageManager.prototype.copy = function () {
|
|
159
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
160
|
-
return __generator(this, function (_a) {
|
|
161
|
-
switch (_a.label) {
|
|
162
|
-
case 0: return [4 /*yield*/, fs.ensureDir(this.pck.lib())];
|
|
163
|
-
case 1:
|
|
164
|
-
_a.sent();
|
|
165
|
-
return [4 /*yield*/, fs.copy(this.pck.frontend('index.html'), this.pck.lib('index.html'))];
|
|
166
|
-
case 2:
|
|
167
|
-
_a.sent();
|
|
168
|
-
return [2 /*return*/];
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
};
|
|
173
|
-
ApplicationPackageManager.prototype.build = function (args, options) {
|
|
174
|
-
if (args === void 0) { args = []; }
|
|
175
|
-
if (options === void 0) { options = {}; }
|
|
176
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
177
|
-
return __generator(this, function (_a) {
|
|
178
|
-
switch (_a.label) {
|
|
179
|
-
case 0: return [4 /*yield*/, this.generate(options)];
|
|
180
|
-
case 1:
|
|
181
|
-
_a.sent();
|
|
182
|
-
return [4 /*yield*/, this.copy()];
|
|
183
|
-
case 2:
|
|
184
|
-
_a.sent();
|
|
185
|
-
return [2 /*return*/, this.__process.run('webpack', args)];
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
});
|
|
189
|
-
};
|
|
190
|
-
ApplicationPackageManager.prototype.start = function (args) {
|
|
191
|
-
if (args === void 0) { args = []; }
|
|
41
|
+
}
|
|
42
|
+
async remove(fsPath) {
|
|
43
|
+
if (await fs.pathExists(fsPath)) {
|
|
44
|
+
await fs.remove(fsPath);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async clean() {
|
|
48
|
+
await Promise.all([
|
|
49
|
+
this.remove(this.pck.lib()),
|
|
50
|
+
this.remove(this.pck.srcGen()),
|
|
51
|
+
this.remove(new generator_1.WebpackGenerator(this.pck).genConfigPath)
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
async generate(options = {}) {
|
|
55
|
+
await Promise.all([
|
|
56
|
+
new generator_1.WebpackGenerator(this.pck, options).generate(),
|
|
57
|
+
new generator_1.BackendGenerator(this.pck, options).generate(),
|
|
58
|
+
new generator_1.FrontendGenerator(this.pck, options).generate(),
|
|
59
|
+
]);
|
|
60
|
+
}
|
|
61
|
+
async copy() {
|
|
62
|
+
await fs.ensureDir(this.pck.lib());
|
|
63
|
+
await fs.copy(this.pck.frontend('index.html'), this.pck.lib('index.html'));
|
|
64
|
+
}
|
|
65
|
+
async build(args = [], options = {}) {
|
|
66
|
+
await this.generate(options);
|
|
67
|
+
await this.copy();
|
|
68
|
+
return this.__process.run('webpack', args);
|
|
69
|
+
}
|
|
70
|
+
start(args = []) {
|
|
192
71
|
if (this.pck.isElectron()) {
|
|
193
72
|
return this.startElectron(args);
|
|
194
73
|
}
|
|
195
74
|
return this.startBrowser(args);
|
|
196
|
-
}
|
|
197
|
-
|
|
75
|
+
}
|
|
76
|
+
startElectron(args) {
|
|
198
77
|
// If possible, pass the project root directory to electron rather than the script file so that Electron
|
|
199
78
|
// can determine the app name. This requires that the package.json has a main field.
|
|
200
|
-
|
|
79
|
+
let appPath = this.pck.projectPath;
|
|
201
80
|
if (!this.pck.pck.main) {
|
|
202
81
|
appPath = this.pck.frontend('electron-main.js');
|
|
203
|
-
console.warn(
|
|
82
|
+
console.warn(`WARNING: ${this.pck.packagePath} does not have a "main" entry.\n` +
|
|
204
83
|
'Please add the following line:\n' +
|
|
205
84
|
' "main": "src-gen/frontend/electron-main.js"');
|
|
206
85
|
}
|
|
207
|
-
|
|
208
|
-
|
|
86
|
+
const { mainArgs, options } = this.adjustArgs([appPath, ...args]);
|
|
87
|
+
const electronCli = require.resolve('electron/cli.js', { paths: [this.pck.projectPath] });
|
|
209
88
|
return this.__process.fork(electronCli, mainArgs, options);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
|
|
89
|
+
}
|
|
90
|
+
startBrowser(args) {
|
|
91
|
+
const { mainArgs, options } = this.adjustArgs(args);
|
|
213
92
|
// The backend must be a process group leader on UNIX in order to kill the tree later.
|
|
214
93
|
// See https://nodejs.org/api/child_process.html#child_process_options_detached
|
|
215
94
|
options.detached = process.platform !== 'win32';
|
|
216
95
|
return this.__process.fork(this.pck.backend('main.js'), mainArgs, options);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
var inspectIndex = mainArgs.findIndex(function (v) { return v.startsWith('--inspect'); });
|
|
96
|
+
}
|
|
97
|
+
adjustArgs(args, forkOptions = {}) {
|
|
98
|
+
const options = Object.assign(Object.assign({}, this.forkOptions), { forkOptions });
|
|
99
|
+
const mainArgs = [...args];
|
|
100
|
+
const inspectIndex = mainArgs.findIndex(v => v.startsWith('--inspect'));
|
|
223
101
|
if (inspectIndex !== -1) {
|
|
224
|
-
|
|
102
|
+
const inspectArg = mainArgs.splice(inspectIndex, 1)[0];
|
|
225
103
|
options.execArgv = ['--nolazy', inspectArg];
|
|
226
104
|
}
|
|
227
105
|
return {
|
|
228
|
-
mainArgs
|
|
229
|
-
options
|
|
106
|
+
mainArgs,
|
|
107
|
+
options
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
get forkOptions() {
|
|
111
|
+
return {
|
|
112
|
+
stdio: [0, 1, 2, 'ipc'],
|
|
113
|
+
env: Object.assign(Object.assign({}, process.env), { THEIA_PARENT_PID: String(process.pid) })
|
|
230
114
|
};
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
get: function () {
|
|
234
|
-
return {
|
|
235
|
-
stdio: [0, 1, 2, 'ipc'],
|
|
236
|
-
env: __assign(__assign({}, process.env), { THEIA_PARENT_PID: String(process.pid) })
|
|
237
|
-
};
|
|
238
|
-
},
|
|
239
|
-
enumerable: false,
|
|
240
|
-
configurable: true
|
|
241
|
-
});
|
|
242
|
-
return ApplicationPackageManager;
|
|
243
|
-
}());
|
|
115
|
+
}
|
|
116
|
+
}
|
|
244
117
|
exports.ApplicationPackageManager = ApplicationPackageManager;
|
|
245
118
|
//# sourceMappingURL=application-package-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-package-manager.js","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF
|
|
1
|
+
{"version":3,"file":"application-package-manager.js","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
********************************************************************************/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.ApplicationProcess = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
const path = require("path");
|
|
20
|
+
const fs = require("fs-extra");
|
|
21
|
+
const cp = require("child_process");
|
|
22
|
+
class ApplicationProcess {
|
|
23
|
+
constructor(pck, binProjectPath) {
|
|
24
24
|
this.pck = pck;
|
|
25
25
|
this.binProjectPath = binProjectPath;
|
|
26
26
|
this.defaultOptions = {
|
|
@@ -28,48 +28,46 @@ var ApplicationProcess = /** @class */ (function () {
|
|
|
28
28
|
env: process.env
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
spawn(command, args, options) {
|
|
32
32
|
return cp.spawn(command, args || [], Object.assign({}, this.defaultOptions, options));
|
|
33
|
-
}
|
|
34
|
-
|
|
33
|
+
}
|
|
34
|
+
fork(modulePath, args, options) {
|
|
35
35
|
return cp.fork(modulePath, args, Object.assign({}, this.defaultOptions, options));
|
|
36
|
-
}
|
|
37
|
-
|
|
36
|
+
}
|
|
37
|
+
canRun(command) {
|
|
38
38
|
return fs.existsSync(this.resolveBin(command));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
}
|
|
40
|
+
run(command, args, options) {
|
|
41
|
+
const commandProcess = this.spawnBin(command, args, options);
|
|
42
42
|
return this.promisify(command, commandProcess);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
}
|
|
44
|
+
spawnBin(command, args, options) {
|
|
45
|
+
const binPath = this.resolveBin(command);
|
|
46
46
|
return this.spawn(binPath, args, options);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
}
|
|
48
|
+
resolveBin(command) {
|
|
49
|
+
const commandPath = path.resolve(this.binProjectPath, 'node_modules', '.bin', command);
|
|
50
50
|
return process.platform === 'win32' ? commandPath + '.cmd' : commandPath;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
p.
|
|
56
|
-
p.stderr.on('data', function (data) { return _this.pck.error(data.toString()); });
|
|
51
|
+
}
|
|
52
|
+
promisify(command, p) {
|
|
53
|
+
return new Promise((resolve, reject) => {
|
|
54
|
+
p.stdout.on('data', data => this.pck.log(data.toString()));
|
|
55
|
+
p.stderr.on('data', data => this.pck.error(data.toString()));
|
|
57
56
|
p.on('error', reject);
|
|
58
|
-
p.on('close',
|
|
57
|
+
p.on('close', (code, signal) => {
|
|
59
58
|
if (signal) {
|
|
60
|
-
reject(new Error(command
|
|
59
|
+
reject(new Error(`${command} exited with an unexpected signal: ${signal}.`));
|
|
61
60
|
return;
|
|
62
61
|
}
|
|
63
62
|
if (code === 0) {
|
|
64
63
|
resolve();
|
|
65
64
|
}
|
|
66
65
|
else {
|
|
67
|
-
reject(new Error(command
|
|
66
|
+
reject(new Error(`${command} exited with an unexpected code: ${code}.`));
|
|
68
67
|
}
|
|
69
68
|
});
|
|
70
69
|
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
}());
|
|
70
|
+
}
|
|
71
|
+
}
|
|
74
72
|
exports.ApplicationProcess = ApplicationProcess;
|
|
75
73
|
//# sourceMappingURL=application-process.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-process.js","sourceRoot":"","sources":["../src/application-process.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAElF,
|
|
1
|
+
{"version":3,"file":"application-process.js","sourceRoot":"","sources":["../src/application-process.ts"],"names":[],"mappings":"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"}
|
package/lib/expose-loader.js
CHANGED
|
@@ -14,74 +14,48 @@
|
|
|
14
14
|
*
|
|
15
15
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
16
|
********************************************************************************/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
27
|
-
};
|
|
28
|
-
var e_1, _a;
|
|
29
|
-
var fs = require("fs-extra");
|
|
30
|
-
var path = require("path");
|
|
31
|
-
var application_package_1 = require("@theia/application-package/lib/application-package");
|
|
32
|
-
var modulePackages = [];
|
|
33
|
-
try {
|
|
34
|
-
for (var _b = __values(new application_package_1.ApplicationPackage({ projectPath: process.cwd() }).extensionPackages), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
35
|
-
var extensionPackage = _c.value;
|
|
36
|
-
modulePackages.push({
|
|
37
|
-
name: extensionPackage.name,
|
|
38
|
-
dir: path.dirname(extensionPackage.raw.installed.packagePath)
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
43
|
-
finally {
|
|
44
|
-
try {
|
|
45
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
46
|
-
}
|
|
47
|
-
finally { if (e_1) throw e_1.error; }
|
|
17
|
+
const fs = require("fs-extra");
|
|
18
|
+
const path = require("path");
|
|
19
|
+
const application_package_1 = require("@theia/application-package/lib/application-package");
|
|
20
|
+
const modulePackages = [];
|
|
21
|
+
for (const extensionPackage of new application_package_1.ApplicationPackage({ projectPath: process.cwd() }).extensionPackages) {
|
|
22
|
+
modulePackages.push({
|
|
23
|
+
name: extensionPackage.name,
|
|
24
|
+
dir: path.dirname(extensionPackage.raw.installed.packagePath)
|
|
25
|
+
});
|
|
48
26
|
}
|
|
49
27
|
function exposeModule(modulePackage, resourcePath, source) {
|
|
50
28
|
if (!modulePackage.name) {
|
|
51
29
|
return source;
|
|
52
30
|
}
|
|
53
|
-
|
|
54
|
-
|
|
31
|
+
const { dir, name } = path.parse(resourcePath);
|
|
32
|
+
let moduleName = path.join(modulePackage.name, dir.substring(modulePackage.dir.length));
|
|
55
33
|
if (name !== 'index') {
|
|
56
34
|
moduleName = path.join(moduleName, name);
|
|
57
35
|
}
|
|
58
36
|
if (path.sep !== '/') {
|
|
59
37
|
moduleName = moduleName.split(path.sep).join('/');
|
|
60
38
|
}
|
|
61
|
-
return source +
|
|
39
|
+
return source + `\nif (!global) global = {};\n(global['theia'] = global['theia'] || {})['${moduleName}'] = this;\n`;
|
|
62
40
|
}
|
|
63
41
|
module.exports = function (source, sourceMap) {
|
|
64
|
-
var _this = this;
|
|
65
42
|
if (this.cacheable) {
|
|
66
43
|
this.cacheable();
|
|
67
44
|
}
|
|
68
|
-
|
|
69
|
-
var dir = _a.dir;
|
|
70
|
-
return _this.resourcePath.startsWith(dir + path.sep);
|
|
71
|
-
});
|
|
45
|
+
let modulePackage = modulePackages.find(({ dir }) => this.resourcePath.startsWith(dir + path.sep));
|
|
72
46
|
if (modulePackage) {
|
|
73
47
|
this.callback(undefined, exposeModule(modulePackage, this.resourcePath, source), sourceMap);
|
|
74
48
|
return;
|
|
75
49
|
}
|
|
76
|
-
|
|
77
|
-
|
|
50
|
+
const searchString = path.sep + 'node_modules';
|
|
51
|
+
const index = this.resourcePath.lastIndexOf(searchString);
|
|
78
52
|
if (index !== -1) {
|
|
79
|
-
|
|
80
|
-
|
|
53
|
+
const nodeModulesPath = this.resourcePath.substring(0, index + searchString.length);
|
|
54
|
+
let dir = this.resourcePath;
|
|
81
55
|
while ((dir = path.dirname(dir)) !== nodeModulesPath) {
|
|
82
56
|
try {
|
|
83
|
-
|
|
84
|
-
modulePackage = { name
|
|
57
|
+
const { name } = fs.readJSONSync(path.join(dir, 'package.json'));
|
|
58
|
+
modulePackage = { name, dir };
|
|
85
59
|
modulePackages.push(modulePackage);
|
|
86
60
|
this.callback(undefined, exposeModule(modulePackage, this.resourcePath, source), sourceMap);
|
|
87
61
|
return;
|