@theia/application-manager 1.67.0-next.56 → 1.67.0-next.59
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 +46 -0
- package/lib/application-package-manager.d.ts.map +1 -0
- package/lib/application-package-manager.js +226 -0
- package/lib/application-package-manager.js.map +1 -0
- package/lib/application-process.d.ts +21 -0
- package/lib/application-process.d.ts.map +1 -0
- package/lib/application-process.js +93 -0
- package/lib/application-process.js.map +1 -0
- package/lib/expose-loader.d.ts +9 -0
- package/lib/expose-loader.d.ts.map +1 -0
- package/lib/expose-loader.js +70 -0
- package/lib/expose-loader.js.map +1 -0
- package/lib/generator/abstract-generator.d.ts +18 -0
- package/lib/generator/abstract-generator.d.ts.map +1 -0
- package/lib/generator/abstract-generator.js +58 -0
- package/lib/generator/abstract-generator.js.map +1 -0
- package/lib/generator/backend-generator.d.ts +8 -0
- package/lib/generator/backend-generator.d.ts.map +1 -0
- package/lib/generator/backend-generator.js +203 -0
- package/lib/generator/backend-generator.js.map +1 -0
- package/lib/generator/frontend-generator.d.ts +14 -0
- package/lib/generator/frontend-generator.d.ts.map +1 -0
- package/lib/generator/frontend-generator.js +211 -0
- package/lib/generator/frontend-generator.js.map +1 -0
- package/lib/generator/index.d.ts +4 -0
- package/lib/generator/index.d.ts.map +1 -0
- package/lib/generator/index.js +22 -0
- package/lib/generator/index.js.map +1 -0
- package/lib/generator/webpack-generator.d.ts +12 -0
- package/lib/generator/webpack-generator.d.ts.map +1 -0
- package/lib/generator/webpack-generator.js +523 -0
- package/lib/generator/webpack-generator.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +22 -0
- package/lib/index.js.map +1 -0
- package/lib/package.spec.d.ts +1 -0
- package/lib/package.spec.d.ts.map +1 -0
- package/lib/package.spec.js +26 -0
- package/lib/package.spec.js.map +1 -0
- package/lib/rebuild.d.ts +25 -0
- package/lib/rebuild.d.ts.map +1 -0
- package/lib/rebuild.js +314 -0
- package/lib/rebuild.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import * as cp from 'child_process';
|
|
3
|
+
import { ApplicationPackage, ApplicationPackageOptions } from '@theia/application-package';
|
|
4
|
+
import { ApplicationProcess } from './application-process';
|
|
5
|
+
import { GeneratorOptions } from './generator/abstract-generator';
|
|
6
|
+
import yargs = require('yargs');
|
|
7
|
+
declare module 'semver' {
|
|
8
|
+
function minVersion(range: string): string;
|
|
9
|
+
}
|
|
10
|
+
export declare class ApplicationPackageManager {
|
|
11
|
+
static defineGeneratorOptions<T>(cli: yargs.Argv<T>): yargs.Argv<T & {
|
|
12
|
+
mode: 'development' | 'production';
|
|
13
|
+
splitFrontend?: boolean;
|
|
14
|
+
}>;
|
|
15
|
+
readonly pck: ApplicationPackage;
|
|
16
|
+
/** application process */
|
|
17
|
+
readonly process: ApplicationProcess;
|
|
18
|
+
/** manager process */
|
|
19
|
+
protected readonly __process: ApplicationProcess;
|
|
20
|
+
constructor(options: ApplicationPackageOptions);
|
|
21
|
+
protected remove(fsPath: string): Promise<void>;
|
|
22
|
+
clean(): Promise<void>;
|
|
23
|
+
prepare(): Promise<void>;
|
|
24
|
+
generate(options?: GeneratorOptions): Promise<void>;
|
|
25
|
+
copy(): Promise<void>;
|
|
26
|
+
build(args?: string[], options?: GeneratorOptions): Promise<void>;
|
|
27
|
+
start(args?: string[]): cp.ChildProcess;
|
|
28
|
+
startBrowserOnly(args: string[]): cp.ChildProcess;
|
|
29
|
+
adjustBrowserOnlyArgs(args: string[]): Readonly<{
|
|
30
|
+
command: string;
|
|
31
|
+
mainArgs: string[];
|
|
32
|
+
options: cp.SpawnOptions;
|
|
33
|
+
}>;
|
|
34
|
+
startElectron(args: string[]): cp.ChildProcess;
|
|
35
|
+
startBrowser(args: string[]): cp.ChildProcess;
|
|
36
|
+
/**
|
|
37
|
+
* Inject Theia's Electron-specific dependencies into the application's package.json.
|
|
38
|
+
*
|
|
39
|
+
* Only overwrite the Electron range if the current minimum supported version is lower than the recommended one.
|
|
40
|
+
*/
|
|
41
|
+
protected prepareElectron(): Promise<void>;
|
|
42
|
+
protected insertAlphabetically<T extends Record<string, string>>(object: T, key: string, value: string): T;
|
|
43
|
+
private adjustArgs;
|
|
44
|
+
private get forkOptions();
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=application-package-manager.d.ts.map
|
|
@@ -0,0 +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;IAUtB,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;IAS3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAKjD,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAA;KAAE,CAAC;IAelH,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"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2017 TypeFox and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ApplicationPackageManager = void 0;
|
|
19
|
+
const path = require("path");
|
|
20
|
+
const fs = require("fs-extra");
|
|
21
|
+
const semver = require("semver");
|
|
22
|
+
const application_package_1 = require("@theia/application-package");
|
|
23
|
+
const generator_1 = require("./generator");
|
|
24
|
+
const application_process_1 = require("./application-process");
|
|
25
|
+
class AbortError extends Error {
|
|
26
|
+
constructor(...args) {
|
|
27
|
+
super(...args);
|
|
28
|
+
Object.setPrototypeOf(this, AbortError.prototype);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
class ApplicationPackageManager {
|
|
32
|
+
static defineGeneratorOptions(cli) {
|
|
33
|
+
return cli
|
|
34
|
+
.option('mode', {
|
|
35
|
+
description: 'Generation mode to use',
|
|
36
|
+
choices: ['development', 'production'],
|
|
37
|
+
default: 'production',
|
|
38
|
+
})
|
|
39
|
+
.option('split-frontend', {
|
|
40
|
+
description: 'Split frontend modules into separate chunks. By default enabled in the `development` mode and disabled in the `production` mode.',
|
|
41
|
+
type: 'boolean'
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
constructor(options) {
|
|
45
|
+
this.pck = new application_package_1.ApplicationPackage(options);
|
|
46
|
+
this.process = new application_process_1.ApplicationProcess(this.pck, options.projectPath);
|
|
47
|
+
this.__process = new application_process_1.ApplicationProcess(this.pck, path.join(__dirname, '..'));
|
|
48
|
+
}
|
|
49
|
+
async remove(fsPath) {
|
|
50
|
+
if (await fs.pathExists(fsPath)) {
|
|
51
|
+
await fs.remove(fsPath);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async clean() {
|
|
55
|
+
const webpackGenerator = new generator_1.WebpackGenerator(this.pck);
|
|
56
|
+
await Promise.all([
|
|
57
|
+
this.remove(this.pck.lib()),
|
|
58
|
+
this.remove(this.pck.srcGen()),
|
|
59
|
+
this.remove(webpackGenerator.genConfigPath),
|
|
60
|
+
this.remove(webpackGenerator.genNodeConfigPath)
|
|
61
|
+
]);
|
|
62
|
+
}
|
|
63
|
+
async prepare() {
|
|
64
|
+
if (this.pck.isElectron()) {
|
|
65
|
+
await this.prepareElectron();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async generate(options = {}) {
|
|
69
|
+
try {
|
|
70
|
+
await this.prepare();
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (error instanceof AbortError) {
|
|
74
|
+
console.warn(error.message);
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
await Promise.all([
|
|
80
|
+
new generator_1.WebpackGenerator(this.pck, options).generate(),
|
|
81
|
+
new generator_1.BackendGenerator(this.pck, options).generate(),
|
|
82
|
+
new generator_1.FrontendGenerator(this.pck, options).generate(),
|
|
83
|
+
]);
|
|
84
|
+
}
|
|
85
|
+
async copy() {
|
|
86
|
+
await fs.ensureDir(this.pck.lib('frontend'));
|
|
87
|
+
await fs.copy(this.pck.frontend('index.html'), this.pck.lib('frontend', 'index.html'));
|
|
88
|
+
}
|
|
89
|
+
async build(args = [], options = {}) {
|
|
90
|
+
await this.generate(options);
|
|
91
|
+
await this.copy();
|
|
92
|
+
return this.__process.run('webpack', args);
|
|
93
|
+
}
|
|
94
|
+
start(args = []) {
|
|
95
|
+
if (this.pck.isElectron()) {
|
|
96
|
+
return this.startElectron(args);
|
|
97
|
+
}
|
|
98
|
+
else if (this.pck.isBrowserOnly()) {
|
|
99
|
+
return this.startBrowserOnly(args);
|
|
100
|
+
}
|
|
101
|
+
return this.startBrowser(args);
|
|
102
|
+
}
|
|
103
|
+
startBrowserOnly(args) {
|
|
104
|
+
const { command, mainArgs, options } = this.adjustBrowserOnlyArgs(args);
|
|
105
|
+
return this.__process.spawnBin(command, mainArgs, options);
|
|
106
|
+
}
|
|
107
|
+
adjustBrowserOnlyArgs(args) {
|
|
108
|
+
let { mainArgs, options } = this.adjustArgs(args);
|
|
109
|
+
// first parameter: path to generated frontend
|
|
110
|
+
// second parameter: disable cache to support watching
|
|
111
|
+
mainArgs = ['lib/frontend', '-c-1', ...mainArgs];
|
|
112
|
+
const portIndex = mainArgs.findIndex(v => v.startsWith('--port'));
|
|
113
|
+
if (portIndex === -1) {
|
|
114
|
+
mainArgs.push('--port=3000');
|
|
115
|
+
}
|
|
116
|
+
return { command: 'http-server', mainArgs, options };
|
|
117
|
+
}
|
|
118
|
+
startElectron(args) {
|
|
119
|
+
// If possible, pass the project root directory to electron rather than the script file so that Electron
|
|
120
|
+
// can determine the app name. This requires that the package.json has a main field.
|
|
121
|
+
let appPath = this.pck.projectPath;
|
|
122
|
+
if (!this.pck.pck.main) {
|
|
123
|
+
// Try the bundled electron app first
|
|
124
|
+
appPath = this.pck.lib('backend', 'electron-main.js');
|
|
125
|
+
if (!fs.existsSync(appPath)) {
|
|
126
|
+
// Fallback to the generated electron app in src-gen
|
|
127
|
+
appPath = this.pck.backend('electron-main.js');
|
|
128
|
+
}
|
|
129
|
+
console.warn(`WARNING: ${this.pck.packagePath} does not have a "main" entry.\n` +
|
|
130
|
+
'Please add the following line:\n' +
|
|
131
|
+
' "main": "lib/backend/electron-main.js"');
|
|
132
|
+
}
|
|
133
|
+
const { mainArgs, options } = this.adjustArgs([appPath, ...args]);
|
|
134
|
+
const electronCli = require.resolve('electron/cli.js', { paths: [this.pck.projectPath] });
|
|
135
|
+
return this.__process.fork(electronCli, mainArgs, options);
|
|
136
|
+
}
|
|
137
|
+
startBrowser(args) {
|
|
138
|
+
const { mainArgs, options } = this.adjustArgs(args);
|
|
139
|
+
// The backend must be a process group leader on UNIX in order to kill the tree later.
|
|
140
|
+
// See https://nodejs.org/api/child_process.html#child_process_options_detached
|
|
141
|
+
options.detached = process.platform !== 'win32';
|
|
142
|
+
// Try the bundled backend app first
|
|
143
|
+
let mainPath = this.pck.lib('backend', 'main.js');
|
|
144
|
+
if (!fs.existsSync(mainPath)) {
|
|
145
|
+
// Fallback to the generated backend file in src-gen
|
|
146
|
+
mainPath = this.pck.backend('main.js');
|
|
147
|
+
}
|
|
148
|
+
return this.__process.fork(mainPath, mainArgs, options);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Inject Theia's Electron-specific dependencies into the application's package.json.
|
|
152
|
+
*
|
|
153
|
+
* Only overwrite the Electron range if the current minimum supported version is lower than the recommended one.
|
|
154
|
+
*/
|
|
155
|
+
async prepareElectron() {
|
|
156
|
+
let theiaElectron;
|
|
157
|
+
try {
|
|
158
|
+
theiaElectron = await Promise.resolve().then(() => require('@theia/electron'));
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
if (error.code === 'ERR_MODULE_NOT_FOUND') {
|
|
162
|
+
throw new AbortError('Please install @theia/electron as part of your Theia Electron application');
|
|
163
|
+
}
|
|
164
|
+
throw error;
|
|
165
|
+
}
|
|
166
|
+
const expectedRange = theiaElectron.electronRange;
|
|
167
|
+
const appPackageJsonPath = this.pck.path('package.json');
|
|
168
|
+
const appPackageJson = await fs.readJSON(appPackageJsonPath);
|
|
169
|
+
if (!appPackageJson.devDependencies) {
|
|
170
|
+
appPackageJson.devDependencies = {};
|
|
171
|
+
}
|
|
172
|
+
const currentRange = appPackageJson.devDependencies.electron;
|
|
173
|
+
if (!currentRange || semver.compare(semver.minVersion(currentRange), semver.minVersion(expectedRange)) < 0) {
|
|
174
|
+
// Update the range with the recommended one and write it on disk.
|
|
175
|
+
appPackageJson.devDependencies = this.insertAlphabetically(appPackageJson.devDependencies, 'electron', expectedRange);
|
|
176
|
+
await fs.writeJSON(appPackageJsonPath, appPackageJson, { spaces: 2 });
|
|
177
|
+
throw new AbortError('Updated dependencies, please run "install" again');
|
|
178
|
+
}
|
|
179
|
+
if (!theiaElectron.electronVersion || !semver.satisfies(theiaElectron.electronVersion, currentRange)) {
|
|
180
|
+
throw new AbortError('Dependencies are out of sync, please run "install" again');
|
|
181
|
+
}
|
|
182
|
+
const ffmpeg = await Promise.resolve().then(() => require('@theia/ffmpeg'));
|
|
183
|
+
await ffmpeg.replaceFfmpeg();
|
|
184
|
+
await ffmpeg.checkFfmpeg();
|
|
185
|
+
}
|
|
186
|
+
insertAlphabetically(object, key, value) {
|
|
187
|
+
const updated = {};
|
|
188
|
+
for (const property of Object.keys(object)) {
|
|
189
|
+
if (property.localeCompare(key) > 0) {
|
|
190
|
+
updated[key] = value;
|
|
191
|
+
}
|
|
192
|
+
updated[property] = object[property];
|
|
193
|
+
}
|
|
194
|
+
if (!(key in updated)) {
|
|
195
|
+
updated[key] = value;
|
|
196
|
+
}
|
|
197
|
+
return updated;
|
|
198
|
+
}
|
|
199
|
+
adjustArgs(args, forkOptions = {}) {
|
|
200
|
+
const options = {
|
|
201
|
+
...this.forkOptions,
|
|
202
|
+
forkOptions
|
|
203
|
+
};
|
|
204
|
+
const mainArgs = [...args];
|
|
205
|
+
const inspectIndex = mainArgs.findIndex(v => v.startsWith('--inspect'));
|
|
206
|
+
if (inspectIndex !== -1) {
|
|
207
|
+
const inspectArg = mainArgs.splice(inspectIndex, 1)[0];
|
|
208
|
+
options.execArgv = ['--nolazy', inspectArg];
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
mainArgs,
|
|
212
|
+
options
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
get forkOptions() {
|
|
216
|
+
return {
|
|
217
|
+
stdio: [0, 1, 2, 'ipc'],
|
|
218
|
+
env: {
|
|
219
|
+
...process.env,
|
|
220
|
+
THEIA_PARENT_PID: String(process.pid)
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
exports.ApplicationPackageManager = ApplicationPackageManager;
|
|
226
|
+
//# sourceMappingURL=application-package-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-package-manager.js","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import * as cp from 'child_process';
|
|
4
|
+
import { ApplicationPackage } from '@theia/application-package';
|
|
5
|
+
export declare class ApplicationProcess {
|
|
6
|
+
protected readonly pck: ApplicationPackage;
|
|
7
|
+
protected readonly binProjectPath: string;
|
|
8
|
+
protected readonly defaultOptions: {
|
|
9
|
+
cwd: string;
|
|
10
|
+
env: NodeJS.ProcessEnv;
|
|
11
|
+
};
|
|
12
|
+
constructor(pck: ApplicationPackage, binProjectPath: string);
|
|
13
|
+
spawn(command: string, args?: string[], options?: cp.SpawnOptions): cp.ChildProcess;
|
|
14
|
+
fork(modulePath: string, args?: string[], options?: cp.ForkOptions): cp.ChildProcess;
|
|
15
|
+
canRun(command: string): boolean;
|
|
16
|
+
run(command: string, args: string[], options?: cp.SpawnOptions): Promise<void>;
|
|
17
|
+
spawnBin(command: string, args: string[], options?: cp.SpawnOptions): cp.ChildProcess;
|
|
18
|
+
protected resolveBin(rootPath: string, command: string): string | undefined;
|
|
19
|
+
protected promisify(command: string, p: cp.ChildProcess): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=application-process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-process.d.ts","sourceRoot":"","sources":["../src/application-process.ts"],"names":[],"mappings":";;AAkBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,qBAAa,kBAAkB;IAQvB,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB;IAC1C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAP7C,SAAS,CAAC,QAAQ,CAAC,cAAc;;;MAG/B;gBAGqB,GAAG,EAAE,kBAAkB,EACvB,cAAc,EAAE,MAAM;IAG7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY;IAOnF,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY;IAIpF,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKhC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY;IAWrF,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAe3E,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB1E"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2017 TypeFox and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ApplicationProcess = void 0;
|
|
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
|
+
this.pck = pck;
|
|
25
|
+
this.binProjectPath = binProjectPath;
|
|
26
|
+
this.defaultOptions = {
|
|
27
|
+
cwd: this.pck.projectPath,
|
|
28
|
+
env: process.env
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
spawn(command, args, options) {
|
|
32
|
+
return cp.spawn(command, args || [], Object.assign({}, this.defaultOptions, {
|
|
33
|
+
...options,
|
|
34
|
+
shell: true
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
fork(modulePath, args, options) {
|
|
38
|
+
return cp.fork(modulePath, args, Object.assign({}, this.defaultOptions, options));
|
|
39
|
+
}
|
|
40
|
+
canRun(command) {
|
|
41
|
+
const binPath = this.resolveBin(this.binProjectPath, command);
|
|
42
|
+
return !!binPath && fs.existsSync(binPath);
|
|
43
|
+
}
|
|
44
|
+
run(command, args, options) {
|
|
45
|
+
const commandProcess = this.spawnBin(command, args, options);
|
|
46
|
+
return this.promisify(command, commandProcess);
|
|
47
|
+
}
|
|
48
|
+
spawnBin(command, args, options) {
|
|
49
|
+
const binPath = this.resolveBin(this.binProjectPath, command);
|
|
50
|
+
if (!binPath) {
|
|
51
|
+
throw new Error(`Could not resolve ${command} relative to ${this.binProjectPath}`);
|
|
52
|
+
}
|
|
53
|
+
return this.spawn(binPath, args, {
|
|
54
|
+
...options,
|
|
55
|
+
shell: true
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
resolveBin(rootPath, command) {
|
|
59
|
+
let commandPath = path.resolve(rootPath, 'node_modules', '.bin', command);
|
|
60
|
+
if (process.platform === 'win32') {
|
|
61
|
+
commandPath = commandPath + '.cmd';
|
|
62
|
+
}
|
|
63
|
+
if (fs.existsSync(commandPath)) {
|
|
64
|
+
return commandPath;
|
|
65
|
+
}
|
|
66
|
+
const parentDir = path.dirname(rootPath);
|
|
67
|
+
if (parentDir === rootPath) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
return this.resolveBin(parentDir, command);
|
|
71
|
+
}
|
|
72
|
+
promisify(command, p) {
|
|
73
|
+
return new Promise((resolve, reject) => {
|
|
74
|
+
p.stdout.on('data', data => this.pck.log(data.toString()));
|
|
75
|
+
p.stderr.on('data', data => this.pck.error(data.toString()));
|
|
76
|
+
p.on('error', reject);
|
|
77
|
+
p.on('close', (code, signal) => {
|
|
78
|
+
if (signal) {
|
|
79
|
+
reject(new Error(`${command} exited with an unexpected signal: ${signal}.`));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (code === 0) {
|
|
83
|
+
resolve();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
reject(new Error(`${command} exited with an unexpected code: ${code}.`));
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.ApplicationProcess = ApplicationProcess;
|
|
93
|
+
//# sourceMappingURL=application-process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-process.js","sourceRoot":"","sources":["../src/application-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { RawSourceMap } from 'source-map';
|
|
2
|
+
/**
|
|
3
|
+
* Expose bundled modules on window.theia.moduleName namespace, e.g.
|
|
4
|
+
* window['theia']['@theia/core/lib/common/uri'].
|
|
5
|
+
* Such syntax can be used by external code, for instance, for testing.
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: (this: any, source: string, sourceMap?: RawSourceMap) => string | undefined;
|
|
8
|
+
export = _default;
|
|
9
|
+
//# sourceMappingURL=expose-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expose-loader.d.ts","sourceRoot":"","sources":["../src/expose-loader.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA0B/C;;;;GAIG;+BAGsB,GAAG,UAAU,MAAM,cAAc,YAAY,KAAG,MAAM,GAAG,SAAS;AAA3F,kBA2BE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2020 TypeFox and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
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
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function exposeModule(modulePackage, resourcePath, source) {
|
|
28
|
+
if (!modulePackage.name) {
|
|
29
|
+
return source;
|
|
30
|
+
}
|
|
31
|
+
const { dir, name } = path.parse(resourcePath);
|
|
32
|
+
let moduleName = path.join(modulePackage.name, dir.substring(modulePackage.dir.length));
|
|
33
|
+
if (name !== 'index') {
|
|
34
|
+
moduleName = path.join(moduleName, name);
|
|
35
|
+
}
|
|
36
|
+
if (path.sep !== '/') {
|
|
37
|
+
moduleName = moduleName.split(path.sep).join('/');
|
|
38
|
+
}
|
|
39
|
+
return source + `\n;(globalThis['theia'] = globalThis['theia'] || {})['${moduleName}'] = this;\n`;
|
|
40
|
+
}
|
|
41
|
+
module.exports = function (source, sourceMap) {
|
|
42
|
+
if (this.cacheable) {
|
|
43
|
+
this.cacheable();
|
|
44
|
+
}
|
|
45
|
+
let modulePackage = modulePackages.find(({ dir }) => this.resourcePath.startsWith(dir + path.sep));
|
|
46
|
+
if (modulePackage) {
|
|
47
|
+
this.callback(undefined, exposeModule(modulePackage, this.resourcePath, source), sourceMap);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const searchString = path.sep + 'node_modules';
|
|
51
|
+
const index = this.resourcePath.lastIndexOf(searchString);
|
|
52
|
+
if (index !== -1) {
|
|
53
|
+
const nodeModulesPath = this.resourcePath.substring(0, index + searchString.length);
|
|
54
|
+
let dir = this.resourcePath;
|
|
55
|
+
while ((dir = path.dirname(dir)) !== nodeModulesPath) {
|
|
56
|
+
try {
|
|
57
|
+
const { name } = fs.readJSONSync(path.join(dir, 'package.json'));
|
|
58
|
+
modulePackage = { name, dir };
|
|
59
|
+
modulePackages.push(modulePackage);
|
|
60
|
+
this.callback(undefined, exposeModule(modulePackage, this.resourcePath, source), sourceMap);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
/** no-op */
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
this.callback(undefined, source, sourceMap);
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=expose-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expose-loader.js","sourceRoot":"","sources":["../src/expose-loader.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,+BAA+B;AAC/B,6BAA6B;AAG7B,4FAAwF;AAExF,MAAM,cAAc,GAAqC,EAAE,CAAC;AAC5D,KAAK,MAAM,gBAAgB,IAAI,IAAI,wCAAkB,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACtG,cAAc,CAAC,IAAI,CAAC;QAChB,IAAI,EAAE,gBAAgB,CAAC,IAAI;QAC3B,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAU,CAAC,WAAW,CAAC;KACjE,CAAC,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CAAC,aAA6C,EAAE,YAAoB,EAAE,MAAc;IACrG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACnB,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QACnB,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,GAAG,yDAAyD,UAAU,cAAc,CAAC;AACtG,CAAC;AASD,iBAAS,UAAqB,MAAc,EAAE,SAAwB;IAClE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnG,IAAI,aAAa,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5F,OAAO;IACX,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACpF,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;YACnD,IAAI,CAAC;gBACD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;gBACjE,aAAa,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;gBAC9B,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC5F,OAAO;YACX,CAAC;YAAC,MAAM,CAAC;gBACL,YAAY;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAChD,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ApplicationPackage } from '@theia/application-package';
|
|
2
|
+
export interface GeneratorOptions {
|
|
3
|
+
mode?: 'development' | 'production';
|
|
4
|
+
splitFrontend?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare abstract class AbstractGenerator {
|
|
7
|
+
protected readonly pck: ApplicationPackage;
|
|
8
|
+
protected options: GeneratorOptions;
|
|
9
|
+
constructor(pck: ApplicationPackage, options?: GeneratorOptions);
|
|
10
|
+
protected ifBrowser(value: string, defaultValue?: string): string;
|
|
11
|
+
protected ifElectron(value: string, defaultValue?: string): string;
|
|
12
|
+
protected ifBrowserOnly(value: string, defaultValue?: string): string;
|
|
13
|
+
protected write(path: string, content: string): Promise<void>;
|
|
14
|
+
protected ifMonaco(value: () => string, defaultValue?: () => string): string;
|
|
15
|
+
protected ifPackage(packageName: string | string[], value: string | (() => string), defaultValue?: string | (() => string)): string;
|
|
16
|
+
protected prettyStringify(object: object): string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=abstract-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-generator.d.ts","sourceRoot":"","sources":["../../src/generator/abstract-generator.ts"],"names":[],"mappings":"AAiBA,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,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;IAItE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM;cAIzD,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;CAIpD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2017 TypeFox and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AbstractGenerator = void 0;
|
|
19
|
+
const fs = require("fs-extra");
|
|
20
|
+
class AbstractGenerator {
|
|
21
|
+
constructor(pck, options = {}) {
|
|
22
|
+
this.pck = pck;
|
|
23
|
+
this.options = options;
|
|
24
|
+
}
|
|
25
|
+
ifBrowser(value, defaultValue = '') {
|
|
26
|
+
return this.pck.ifBrowser(value, defaultValue);
|
|
27
|
+
}
|
|
28
|
+
ifElectron(value, defaultValue = '') {
|
|
29
|
+
return this.pck.ifElectron(value, defaultValue);
|
|
30
|
+
}
|
|
31
|
+
ifBrowserOnly(value, defaultValue = '') {
|
|
32
|
+
return this.pck.ifBrowserOnly(value, defaultValue);
|
|
33
|
+
}
|
|
34
|
+
async write(path, content) {
|
|
35
|
+
await fs.ensureFile(path);
|
|
36
|
+
await fs.writeFile(path, content);
|
|
37
|
+
}
|
|
38
|
+
ifMonaco(value, defaultValue = () => '') {
|
|
39
|
+
return this.ifPackage([
|
|
40
|
+
'@theia/monaco',
|
|
41
|
+
'@theia/monaco-editor-core'
|
|
42
|
+
], value, defaultValue);
|
|
43
|
+
}
|
|
44
|
+
ifPackage(packageName, value, defaultValue = '') {
|
|
45
|
+
const packages = Array.isArray(packageName) ? packageName : [packageName];
|
|
46
|
+
if (this.pck.extensionPackages.some(e => packages.includes(e.name))) {
|
|
47
|
+
return typeof value === 'string' ? value : value();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
return typeof defaultValue === 'string' ? defaultValue : defaultValue();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
prettyStringify(object) {
|
|
54
|
+
return JSON.stringify(object, undefined, 4);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.AbstractGenerator = AbstractGenerator;
|
|
58
|
+
//# sourceMappingURL=abstract-generator.js.map
|
|
@@ -0,0 +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,+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,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,aAAa,CAAC,KAAa,EAAE,eAAuB,EAAE;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACvD,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,IAAI,CAAC,SAAS,CAAC;YAClB,eAAe;YACf,2BAA2B;SAC9B,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5B,CAAC;IAES,SAAS,CAAC,WAA8B,EAAE,KAA8B,EAAE,eAAwC,EAAE;QAC1H,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;QAC5E,CAAC;IACL,CAAC;IAES,eAAe,CAAC,MAAc;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;CAEJ;AA5CD,8CA4CC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AbstractGenerator } from './abstract-generator';
|
|
2
|
+
export declare class BackendGenerator extends AbstractGenerator {
|
|
3
|
+
generate(): Promise<void>;
|
|
4
|
+
protected compileElectronMain(electronMainModules?: Map<string, string>): string;
|
|
5
|
+
protected compileServer(backendModules: Map<string, string>): string;
|
|
6
|
+
protected compileMain(backendModules: Map<string, string>): string;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=backend-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/backend-generator.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B,SAAS,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IA2EhF,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAwEpE,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAsBrE"}
|