@electron/rebuild 0.0.0 → 3.2.10
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/README.md +158 -0
- package/lib/src/arch.d.ts +16 -0
- package/lib/src/arch.js +36 -0
- package/lib/src/arch.js.map +1 -0
- package/lib/src/cache.d.ts +13 -0
- package/lib/src/cache.js +153 -0
- package/lib/src/cache.js.map +1 -0
- package/lib/src/clang-fetcher.d.ts +4 -0
- package/lib/src/clang-fetcher.js +145 -0
- package/lib/src/clang-fetcher.js.map +1 -0
- package/lib/src/cli.d.ts +2 -0
- package/lib/src/cli.js +168 -0
- package/lib/src/cli.js.map +1 -0
- package/lib/src/constants.d.ts +1 -0
- package/lib/src/constants.js +30 -0
- package/lib/src/constants.js.map +1 -0
- package/lib/src/electron-locator.d.ts +1 -0
- package/lib/src/electron-locator.js +56 -0
- package/lib/src/electron-locator.js.map +1 -0
- package/lib/src/fetcher.d.ts +2 -0
- package/lib/src/fetcher.js +36 -0
- package/lib/src/fetcher.js.map +1 -0
- package/lib/src/main.d.ts +3 -0
- package/lib/src/main.js +10 -0
- package/lib/src/main.js.map +1 -0
- package/lib/src/module-rebuilder.d.ts +27 -0
- package/lib/src/module-rebuilder.js +132 -0
- package/lib/src/module-rebuilder.js.map +1 -0
- package/lib/src/module-type/index.d.ts +17 -0
- package/lib/src/module-type/index.js +56 -0
- package/lib/src/module-type/index.js.map +1 -0
- package/lib/src/module-type/node-gyp.d.ts +7 -0
- package/lib/src/module-type/node-gyp.js +149 -0
- package/lib/src/module-type/node-gyp.js.map +1 -0
- package/lib/src/module-type/prebuild-install.d.ts +12 -0
- package/lib/src/module-type/prebuild-install.js +81 -0
- package/lib/src/module-type/prebuild-install.js.map +1 -0
- package/lib/src/module-type/prebuildify.d.ts +11 -0
- package/lib/src/module-type/prebuildify.js +68 -0
- package/lib/src/module-type/prebuildify.js.map +1 -0
- package/lib/src/module-walker.d.ts +17 -0
- package/lib/src/module-walker.js +112 -0
- package/lib/src/module-walker.js.map +1 -0
- package/lib/src/node-api.d.ts +8 -0
- package/lib/src/node-api.js +31 -0
- package/lib/src/node-api.js.map +1 -0
- package/lib/src/prebuild-shim.d.ts +0 -0
- package/lib/src/prebuild-shim.js +6 -0
- package/lib/src/prebuild-shim.js.map +1 -0
- package/lib/src/read-package-json.d.ts +1 -0
- package/lib/src/read-package-json.js +44 -0
- package/lib/src/read-package-json.js.map +1 -0
- package/lib/src/rebuild.d.ts +56 -0
- package/lib/src/rebuild.js +166 -0
- package/lib/src/rebuild.js.map +1 -0
- package/lib/src/search-module.d.ts +23 -0
- package/lib/src/search-module.js +97 -0
- package/lib/src/search-module.js.map +1 -0
- package/lib/src/sysroot-fetcher.d.ts +1 -0
- package/lib/src/sysroot-fetcher.js +74 -0
- package/lib/src/sysroot-fetcher.js.map +1 -0
- package/lib/src/types.d.ts +26 -0
- package/lib/src/types.js +9 -0
- package/lib/src/types.js.map +1 -0
- package/lib/test/arch.d.ts +1 -0
- package/lib/test/arch.js +37 -0
- package/lib/test/arch.js.map +1 -0
- package/lib/test/electron-locator.d.ts +1 -0
- package/lib/test/electron-locator.js +70 -0
- package/lib/test/electron-locator.js.map +1 -0
- package/lib/test/helpers/electron-version.d.ts +1 -0
- package/lib/test/helpers/electron-version.js +43 -0
- package/lib/test/helpers/electron-version.js.map +1 -0
- package/lib/test/helpers/module-setup.d.ts +5 -0
- package/lib/test/helpers/module-setup.js +35 -0
- package/lib/test/helpers/module-setup.js.map +1 -0
- package/lib/test/helpers/rebuild.d.ts +7 -0
- package/lib/test/helpers/rebuild.js +42 -0
- package/lib/test/helpers/rebuild.js.map +1 -0
- package/lib/test/module-type-node-gyp.d.ts +1 -0
- package/lib/test/module-type-node-gyp.js +57 -0
- package/lib/test/module-type-node-gyp.js.map +1 -0
- package/lib/test/module-type-prebuild-install.d.ts +1 -0
- package/lib/test/module-type-prebuild-install.js +82 -0
- package/lib/test/module-type-prebuild-install.js.map +1 -0
- package/lib/test/module-type-prebuildify.d.ts +1 -0
- package/lib/test/module-type-prebuildify.js +102 -0
- package/lib/test/module-type-prebuildify.js.map +1 -0
- package/lib/test/read-package-json.d.ts +1 -0
- package/lib/test/read-package-json.js +35 -0
- package/lib/test/read-package-json.js.map +1 -0
- package/lib/test/rebuild-yarnworkspace.d.ts +1 -0
- package/lib/test/rebuild-yarnworkspace.js +69 -0
- package/lib/test/rebuild-yarnworkspace.js.map +1 -0
- package/lib/test/rebuild.d.ts +1 -0
- package/lib/test/rebuild.js +192 -0
- package/lib/test/rebuild.js.map +1 -0
- package/lib/test/search-module.d.ts +1 -0
- package/lib/test/search-module.js +65 -0
- package/lib/test/search-module.js.map +1 -0
- package/package.json +127 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NodeGyp = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
const detect_libc_1 = __importDefault(require("detect-libc"));
|
|
9
|
+
const node_gyp_1 = __importDefault(require("node-gyp"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const util_1 = require("util");
|
|
12
|
+
const semver_1 = __importDefault(require("semver"));
|
|
13
|
+
const constants_1 = require("../constants");
|
|
14
|
+
const clang_fetcher_1 = require("../clang-fetcher");
|
|
15
|
+
const _1 = require(".");
|
|
16
|
+
const d = (0, debug_1.default)('electron-rebuild');
|
|
17
|
+
class NodeGyp extends _1.NativeModule {
|
|
18
|
+
async buildArgs(prefixedArgs) {
|
|
19
|
+
const args = [
|
|
20
|
+
'node',
|
|
21
|
+
'node-gyp',
|
|
22
|
+
'rebuild',
|
|
23
|
+
...prefixedArgs,
|
|
24
|
+
`--runtime=electron`,
|
|
25
|
+
`--target=${this.rebuilder.electronVersion}`,
|
|
26
|
+
`--arch=${this.rebuilder.arch}`,
|
|
27
|
+
`--dist-url=${this.rebuilder.headerURL}`,
|
|
28
|
+
'--build-from-source'
|
|
29
|
+
];
|
|
30
|
+
args.push(d.enabled ? '--verbose' : '--silent');
|
|
31
|
+
if (this.rebuilder.debug) {
|
|
32
|
+
args.push('--debug');
|
|
33
|
+
}
|
|
34
|
+
args.push(...(await this.buildArgsFromBinaryField()));
|
|
35
|
+
if (this.rebuilder.msvsVersion) {
|
|
36
|
+
args.push(`--msvs_version=${this.rebuilder.msvsVersion}`);
|
|
37
|
+
}
|
|
38
|
+
// Headers of old Electron versions do not have a valid config.gypi file
|
|
39
|
+
// and --force-process-config must be passed to node-gyp >= 8.4.0 to
|
|
40
|
+
// correctly build modules for them.
|
|
41
|
+
// See also https://github.com/nodejs/node-gyp/pull/2497
|
|
42
|
+
if (!semver_1.default.satisfies(this.rebuilder.electronVersion, '^14.2.0 || ^15.3.0') && semver_1.default.major(this.rebuilder.electronVersion) < 16) {
|
|
43
|
+
args.push('--force-process-config');
|
|
44
|
+
}
|
|
45
|
+
return args;
|
|
46
|
+
}
|
|
47
|
+
async buildArgsFromBinaryField() {
|
|
48
|
+
const binary = await this.packageJSONFieldWithDefault('binary', {});
|
|
49
|
+
const flags = await Promise.all(Object.entries(binary).map(async ([binaryKey, binaryValue]) => {
|
|
50
|
+
if (binaryKey === 'napi_versions') {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
let value = binaryValue;
|
|
54
|
+
if (binaryKey === 'module_path') {
|
|
55
|
+
value = path_1.default.resolve(this.modulePath, value);
|
|
56
|
+
}
|
|
57
|
+
value = value.replace('{configuration}', this.rebuilder.buildType)
|
|
58
|
+
.replace('{node_abi}', `electron-v${this.rebuilder.electronVersion.split('.').slice(0, 2).join('.')}`)
|
|
59
|
+
.replace('{platform}', this.rebuilder.platform)
|
|
60
|
+
.replace('{arch}', this.rebuilder.arch)
|
|
61
|
+
.replace('{version}', await this.packageJSONField('version'))
|
|
62
|
+
.replace('{libc}', await detect_libc_1.default.family() || 'unknown');
|
|
63
|
+
for (const [replaceKey, replaceValue] of Object.entries(binary)) {
|
|
64
|
+
value = value.replace(`{${replaceKey}}`, replaceValue);
|
|
65
|
+
}
|
|
66
|
+
return `--${binaryKey}=${value}`;
|
|
67
|
+
}));
|
|
68
|
+
return flags.filter(value => value);
|
|
69
|
+
}
|
|
70
|
+
async rebuildModule() {
|
|
71
|
+
if (this.modulePath.includes(' ')) {
|
|
72
|
+
console.error('Attempting to build a module with a space in the path');
|
|
73
|
+
console.error('See https://github.com/nodejs/node-gyp/issues/65#issuecomment-368820565 for reasons why this may not work');
|
|
74
|
+
// FIXME: Re-enable the throw when more research has been done
|
|
75
|
+
// throw new Error(`node-gyp does not support building modules with spaces in their path, tried to build: ${modulePath}`);
|
|
76
|
+
}
|
|
77
|
+
let env;
|
|
78
|
+
const extraNodeGypArgs = [];
|
|
79
|
+
if (semver_1.default.major(this.rebuilder.electronVersion) >= 20) {
|
|
80
|
+
process.env.CXXFLAGS = '-std=c++17';
|
|
81
|
+
}
|
|
82
|
+
if (this.rebuilder.useElectronClang) {
|
|
83
|
+
env = { ...process.env };
|
|
84
|
+
const { env: clangEnv, args: clangArgs } = await (0, clang_fetcher_1.getClangEnvironmentVars)(this.rebuilder.electronVersion, this.rebuilder.arch);
|
|
85
|
+
Object.assign(process.env, clangEnv);
|
|
86
|
+
extraNodeGypArgs.push(...clangArgs);
|
|
87
|
+
}
|
|
88
|
+
const nodeGypArgs = await this.buildArgs(extraNodeGypArgs);
|
|
89
|
+
d('rebuilding', this.moduleName, 'with args', nodeGypArgs);
|
|
90
|
+
const nodeGyp = (0, node_gyp_1.default)();
|
|
91
|
+
nodeGyp.parseArgv(nodeGypArgs);
|
|
92
|
+
nodeGyp.devDir = constants_1.ELECTRON_GYP_DIR;
|
|
93
|
+
let command = nodeGyp.todo.shift();
|
|
94
|
+
const originalWorkingDir = process.cwd();
|
|
95
|
+
try {
|
|
96
|
+
process.chdir(this.modulePath);
|
|
97
|
+
while (command) {
|
|
98
|
+
if (command.name === 'configure') {
|
|
99
|
+
command.args = command.args.filter((arg) => !extraNodeGypArgs.includes(arg));
|
|
100
|
+
}
|
|
101
|
+
else if (command.name === 'build' && process.platform === 'win32') {
|
|
102
|
+
// This is disgusting but it prevents node-gyp from destroying our MSBuild arguments
|
|
103
|
+
command.args.map = (fn) => {
|
|
104
|
+
return Array.prototype.map.call(command.args, (arg) => {
|
|
105
|
+
if (arg.startsWith('/p:'))
|
|
106
|
+
return arg;
|
|
107
|
+
return fn(arg);
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
await (0, util_1.promisify)(nodeGyp.commands[command.name])(command.args);
|
|
112
|
+
command = nodeGyp.todo.shift();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
const errorMessage = `node-gyp failed to rebuild '${this.modulePath}'.
|
|
117
|
+
For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
|
|
118
|
+
|
|
119
|
+
Error: ${err.message || err}\n\n`;
|
|
120
|
+
throw new Error(errorMessage);
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
process.chdir(originalWorkingDir);
|
|
124
|
+
}
|
|
125
|
+
if (this.rebuilder.useElectronClang) {
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
127
|
+
this.restoreEnv(env);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
restoreEnv(env) {
|
|
131
|
+
const gotKeys = new Set(Object.keys(process.env));
|
|
132
|
+
const expectedKeys = new Set(Object.keys(env));
|
|
133
|
+
for (const key of Object.keys(process.env)) {
|
|
134
|
+
if (!expectedKeys.has(key)) {
|
|
135
|
+
delete process.env[key];
|
|
136
|
+
}
|
|
137
|
+
else if (env[key] !== process.env[key]) {
|
|
138
|
+
process.env[key] = env[key];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
for (const key of Object.keys(env)) {
|
|
142
|
+
if (!gotKeys.has(key)) {
|
|
143
|
+
process.env[key] = env[key];
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.NodeGyp = NodeGyp;
|
|
149
|
+
//# sourceMappingURL=node-gyp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-gyp.js","sourceRoot":"","sources":["../../../src/module-type/node-gyp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NativeModule } from '.';
|
|
2
|
+
export declare class PrebuildInstall extends NativeModule {
|
|
3
|
+
usesTool(): Promise<boolean>;
|
|
4
|
+
locateBinary(): Promise<string | null>;
|
|
5
|
+
run(prebuildInstallPath: string): Promise<void>;
|
|
6
|
+
findPrebuiltModule(): Promise<boolean>;
|
|
7
|
+
/**
|
|
8
|
+
* Whether a prebuild-install-based native module exists.
|
|
9
|
+
*/
|
|
10
|
+
prebuiltModuleExists(): Promise<boolean>;
|
|
11
|
+
getPrebuildInstallRuntimeArgs(): Promise<string[]>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PrebuildInstall = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const cross_spawn_promise_1 = require("@malept/cross-spawn-promise");
|
|
11
|
+
const _1 = require(".");
|
|
12
|
+
const d = (0, debug_1.default)('electron-rebuild');
|
|
13
|
+
class PrebuildInstall extends _1.NativeModule {
|
|
14
|
+
async usesTool() {
|
|
15
|
+
const dependencies = await this.packageJSONFieldWithDefault('dependencies', {});
|
|
16
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
17
|
+
return dependencies.hasOwnProperty('prebuild-install');
|
|
18
|
+
}
|
|
19
|
+
async locateBinary() {
|
|
20
|
+
return (0, _1.locateBinary)(this.modulePath, 'node_modules/prebuild-install/bin.js');
|
|
21
|
+
}
|
|
22
|
+
async run(prebuildInstallPath) {
|
|
23
|
+
const shimExt = process.env.ELECTRON_REBUILD_TESTS ? 'ts' : 'js';
|
|
24
|
+
const executable = process.env.ELECTRON_REBUILD_TESTS ? path_1.default.resolve(__dirname, '..', '..', 'node_modules', '.bin', 'ts-node') : process.execPath;
|
|
25
|
+
await (0, cross_spawn_promise_1.spawn)(executable, [
|
|
26
|
+
path_1.default.resolve(__dirname, '..', `prebuild-shim.${shimExt}`),
|
|
27
|
+
prebuildInstallPath,
|
|
28
|
+
`--arch=${this.rebuilder.arch}`,
|
|
29
|
+
`--platform=${this.rebuilder.platform}`,
|
|
30
|
+
`--tag-prefix=${this.rebuilder.prebuildTagPrefix}`,
|
|
31
|
+
...await this.getPrebuildInstallRuntimeArgs(),
|
|
32
|
+
], {
|
|
33
|
+
cwd: this.modulePath,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async findPrebuiltModule() {
|
|
37
|
+
var _a;
|
|
38
|
+
const prebuildInstallPath = await this.locateBinary();
|
|
39
|
+
if (prebuildInstallPath) {
|
|
40
|
+
d(`triggering prebuild download step: ${this.moduleName}`);
|
|
41
|
+
try {
|
|
42
|
+
await this.run(prebuildInstallPath);
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
d('failed to use prebuild-install:', err);
|
|
47
|
+
if ((_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.includes('requires Node-API but Electron')) {
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
d(`could not find prebuild-install relative to: ${this.modulePath}`);
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Whether a prebuild-install-based native module exists.
|
|
59
|
+
*/
|
|
60
|
+
async prebuiltModuleExists() {
|
|
61
|
+
return fs_extra_1.default.pathExists(path_1.default.resolve(this.modulePath, 'prebuilds', `${this.rebuilder.platform}-${this.rebuilder.arch}`, `electron-${this.rebuilder.ABI}.node`));
|
|
62
|
+
}
|
|
63
|
+
async getPrebuildInstallRuntimeArgs() {
|
|
64
|
+
const moduleNapiVersions = await this.getSupportedNapiVersions();
|
|
65
|
+
if (moduleNapiVersions) {
|
|
66
|
+
const napiVersion = this.nodeAPI.getNapiVersion(moduleNapiVersions);
|
|
67
|
+
return [
|
|
68
|
+
'--runtime=napi',
|
|
69
|
+
`--target=${napiVersion}`,
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return [
|
|
74
|
+
'--runtime=electron',
|
|
75
|
+
`--target=${this.rebuilder.electronVersion}`,
|
|
76
|
+
];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.PrebuildInstall = PrebuildInstall;
|
|
81
|
+
//# sourceMappingURL=prebuild-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prebuild-install.js","sourceRoot":"","sources":["../../../src/module-type/prebuild-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NativeModule } from '.';
|
|
2
|
+
export declare function determineNativePrebuildArch(arch: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* The extension of `prebuildify`-generated native modules, after the last `.`. This value differs
|
|
5
|
+
* based on whether the target arch is ARM-based.
|
|
6
|
+
*/
|
|
7
|
+
export declare function determineNativePrebuildExtension(arch: string): string;
|
|
8
|
+
export declare class Prebuildify extends NativeModule {
|
|
9
|
+
usesTool(): Promise<boolean>;
|
|
10
|
+
findPrebuiltModule(): Promise<boolean>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Prebuildify = exports.determineNativePrebuildExtension = exports.determineNativePrebuildArch = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const arch_1 = require("../arch");
|
|
11
|
+
const _1 = require(".");
|
|
12
|
+
const d = (0, debug_1.default)('electron-rebuild');
|
|
13
|
+
function determineNativePrebuildArch(arch) {
|
|
14
|
+
if (arch === 'armv7l') {
|
|
15
|
+
return 'arm';
|
|
16
|
+
}
|
|
17
|
+
return arch;
|
|
18
|
+
}
|
|
19
|
+
exports.determineNativePrebuildArch = determineNativePrebuildArch;
|
|
20
|
+
/**
|
|
21
|
+
* The extension of `prebuildify`-generated native modules, after the last `.`. This value differs
|
|
22
|
+
* based on whether the target arch is ARM-based.
|
|
23
|
+
*/
|
|
24
|
+
function determineNativePrebuildExtension(arch) {
|
|
25
|
+
switch (arch) {
|
|
26
|
+
case 'arm64':
|
|
27
|
+
return 'armv8.node';
|
|
28
|
+
case 'armv7l':
|
|
29
|
+
return 'armv7.node';
|
|
30
|
+
}
|
|
31
|
+
return 'node';
|
|
32
|
+
}
|
|
33
|
+
exports.determineNativePrebuildExtension = determineNativePrebuildExtension;
|
|
34
|
+
class Prebuildify extends _1.NativeModule {
|
|
35
|
+
async usesTool() {
|
|
36
|
+
const devDependencies = await this.packageJSONFieldWithDefault('devDependencies', {});
|
|
37
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
38
|
+
return devDependencies.hasOwnProperty('prebuildify');
|
|
39
|
+
}
|
|
40
|
+
async findPrebuiltModule() {
|
|
41
|
+
const nodeArch = (0, arch_1.getNodeArch)(this.rebuilder.arch, process.config.variables);
|
|
42
|
+
d(`Checking for prebuilds for "${this.moduleName}"`);
|
|
43
|
+
const prebuildsDir = path_1.default.join(this.modulePath, 'prebuilds');
|
|
44
|
+
if (!(await fs_extra_1.default.pathExists(prebuildsDir))) {
|
|
45
|
+
d(`Could not find the prebuilds directory at "${prebuildsDir}"`);
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
const prebuiltModuleDir = path_1.default.join(prebuildsDir, `${this.rebuilder.platform}-${determineNativePrebuildArch(nodeArch)}`);
|
|
49
|
+
const nativeExt = determineNativePrebuildExtension(nodeArch);
|
|
50
|
+
const electronNapiModuleFilename = path_1.default.join(prebuiltModuleDir, `electron.napi.${nativeExt}`);
|
|
51
|
+
const nodejsNapiModuleFilename = path_1.default.join(prebuiltModuleDir, `node.napi.${nativeExt}`);
|
|
52
|
+
const abiModuleFilename = path_1.default.join(prebuiltModuleDir, `electron.abi${this.rebuilder.ABI}.${nativeExt}`);
|
|
53
|
+
if (await fs_extra_1.default.pathExists(electronNapiModuleFilename) || await fs_extra_1.default.pathExists(nodejsNapiModuleFilename)) {
|
|
54
|
+
this.nodeAPI.ensureElectronSupport();
|
|
55
|
+
d(`Found prebuilt Node-API module in ${prebuiltModuleDir}"`);
|
|
56
|
+
}
|
|
57
|
+
else if (await fs_extra_1.default.pathExists(abiModuleFilename)) {
|
|
58
|
+
d(`Found prebuilt module: "${abiModuleFilename}"`);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
d(`Could not locate "${electronNapiModuleFilename}", "${nodejsNapiModuleFilename}", or "${abiModuleFilename}"`);
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.Prebuildify = Prebuildify;
|
|
68
|
+
//# sourceMappingURL=prebuildify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prebuildify.js","sourceRoot":"","sources":["../../../src/module-type/prebuildify.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,wDAA0B;AAC1B,gDAAwB;AAExB,kCAAuD;AACvD,wBAAiC;AAEjC,MAAM,CAAC,GAAG,IAAA,eAAK,EAAC,kBAAkB,CAAC,CAAC;AAEpC,SAAgB,2BAA2B,CAAC,IAAY;IACtD,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAND,kEAMC;AAED;;;GAGG;AACH,SAAgB,gCAAgC,CAAC,IAAY;IAC3D,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,YAAY,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC;KACvB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,4EASC;AAED,MAAa,WAAY,SAAQ,eAAY;IAC3C,KAAK,CAAC,QAAQ;QACZ,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACtF,iDAAiD;QACjD,OAAO,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,QAAQ,GAAG,IAAA,kBAAW,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,SAA4B,CAAC,CAAC;QAE/F,CAAC,CAAC,+BAA+B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAErD,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE;YACxC,CAAC,CAAC,8CAA8C,YAAY,GAAG,CAAC,CAAA;YAChE,OAAO,KAAK,CAAC;SACd;QAED,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzH,MAAM,SAAS,GAAG,gCAAgC,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,0BAA0B,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,SAAS,EAAE,CAAC,CAAC;QAC9F,MAAM,wBAAwB,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,SAAS,EAAE,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;QAEzG,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,0BAA0B,CAAC,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE;YACpG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACrC,CAAC,CAAC,qCAAqC,iBAAiB,GAAG,CAAC,CAAC;SAC9D;aAAM,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;YACjD,CAAC,CAAC,2BAA2B,iBAAiB,GAAG,CAAC,CAAC;SACpD;aAAM;YACL,CAAC,CAAC,qBAAqB,0BAA0B,OAAO,wBAAwB,UAAU,iBAAiB,GAAG,CAAC,CAAC;YAChH,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AApCD,kCAoCC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare type ModuleType = 'prod' | 'dev' | 'optional';
|
|
2
|
+
export declare class ModuleWalker {
|
|
3
|
+
buildPath: string;
|
|
4
|
+
modulesToRebuild: string[];
|
|
5
|
+
onlyModules: string[] | null;
|
|
6
|
+
prodDeps: Set<string>;
|
|
7
|
+
projectRootPath?: string;
|
|
8
|
+
realModulePaths: Set<string>;
|
|
9
|
+
realNodeModulesPaths: Set<string>;
|
|
10
|
+
types: ModuleType[];
|
|
11
|
+
constructor(buildPath: string, projectRootPath: string | undefined, types: ModuleType[], prodDeps: Set<string>, onlyModules: string[] | null);
|
|
12
|
+
get nodeModulesPaths(): Promise<string[]>;
|
|
13
|
+
walkModules(): Promise<void>;
|
|
14
|
+
findModule(moduleName: string, fromDir: string, foundFn: ((p: string) => Promise<void>)): Promise<void[]>;
|
|
15
|
+
markChildrenAsProdDeps(modulePath: string): Promise<void>;
|
|
16
|
+
findAllModulesIn(nodeModulesPath: string, prefix?: string): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ModuleWalker = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const read_package_json_1 = require("./read-package-json");
|
|
11
|
+
const search_module_1 = require("./search-module");
|
|
12
|
+
const d = (0, debug_1.default)('electron-rebuild');
|
|
13
|
+
class ModuleWalker {
|
|
14
|
+
constructor(buildPath, projectRootPath, types, prodDeps, onlyModules) {
|
|
15
|
+
this.buildPath = buildPath;
|
|
16
|
+
this.modulesToRebuild = [];
|
|
17
|
+
this.projectRootPath = projectRootPath;
|
|
18
|
+
this.types = types;
|
|
19
|
+
this.prodDeps = prodDeps;
|
|
20
|
+
this.onlyModules = onlyModules;
|
|
21
|
+
this.realModulePaths = new Set();
|
|
22
|
+
this.realNodeModulesPaths = new Set();
|
|
23
|
+
}
|
|
24
|
+
get nodeModulesPaths() {
|
|
25
|
+
return (0, search_module_1.searchForNodeModules)(this.buildPath, this.projectRootPath);
|
|
26
|
+
}
|
|
27
|
+
async walkModules() {
|
|
28
|
+
const rootPackageJson = await (0, read_package_json_1.readPackageJson)(this.buildPath);
|
|
29
|
+
const markWaiters = [];
|
|
30
|
+
const depKeys = [];
|
|
31
|
+
if (this.types.includes('prod') || this.onlyModules) {
|
|
32
|
+
depKeys.push(...Object.keys(rootPackageJson.dependencies || {}));
|
|
33
|
+
}
|
|
34
|
+
if (this.types.includes('optional') || this.onlyModules) {
|
|
35
|
+
depKeys.push(...Object.keys(rootPackageJson.optionalDependencies || {}));
|
|
36
|
+
}
|
|
37
|
+
if (this.types.includes('dev') || this.onlyModules) {
|
|
38
|
+
depKeys.push(...Object.keys(rootPackageJson.devDependencies || {}));
|
|
39
|
+
}
|
|
40
|
+
for (const key of depKeys) {
|
|
41
|
+
this.prodDeps[key] = true;
|
|
42
|
+
const modulePaths = await (0, search_module_1.searchForModule)(this.buildPath, key, this.projectRootPath);
|
|
43
|
+
for (const modulePath of modulePaths) {
|
|
44
|
+
markWaiters.push(this.markChildrenAsProdDeps(modulePath));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
await Promise.all(markWaiters);
|
|
48
|
+
d('identified prod deps:', this.prodDeps);
|
|
49
|
+
}
|
|
50
|
+
async findModule(moduleName, fromDir, foundFn) {
|
|
51
|
+
const testPaths = await (0, search_module_1.searchForModule)(fromDir, moduleName, this.projectRootPath);
|
|
52
|
+
const foundFns = testPaths.map(testPath => foundFn(testPath));
|
|
53
|
+
return Promise.all(foundFns);
|
|
54
|
+
}
|
|
55
|
+
async markChildrenAsProdDeps(modulePath) {
|
|
56
|
+
if (!await fs_extra_1.default.pathExists(modulePath)) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
d('exploring', modulePath);
|
|
60
|
+
let childPackageJson;
|
|
61
|
+
try {
|
|
62
|
+
childPackageJson = await (0, read_package_json_1.readPackageJson)(modulePath, true);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const moduleWait = [];
|
|
68
|
+
const callback = this.markChildrenAsProdDeps.bind(this);
|
|
69
|
+
for (const key of Object.keys(childPackageJson.dependencies || {}).concat(Object.keys(childPackageJson.optionalDependencies || {}))) {
|
|
70
|
+
if (this.prodDeps[key]) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
this.prodDeps[key] = true;
|
|
74
|
+
moduleWait.push(this.findModule(key, modulePath, callback));
|
|
75
|
+
}
|
|
76
|
+
await Promise.all(moduleWait);
|
|
77
|
+
}
|
|
78
|
+
async findAllModulesIn(nodeModulesPath, prefix = '') {
|
|
79
|
+
// Some package managers use symbolic links when installing node modules
|
|
80
|
+
// we need to be sure we've never tested the a package before by resolving
|
|
81
|
+
// all symlinks in the path and testing against a set
|
|
82
|
+
const realNodeModulesPath = await fs_extra_1.default.realpath(nodeModulesPath);
|
|
83
|
+
if (this.realNodeModulesPaths.has(realNodeModulesPath)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.realNodeModulesPaths.add(realNodeModulesPath);
|
|
87
|
+
d('scanning:', realNodeModulesPath);
|
|
88
|
+
for (const modulePath of await fs_extra_1.default.readdir(realNodeModulesPath)) {
|
|
89
|
+
// Ignore the magical .bin directory
|
|
90
|
+
if (modulePath === '.bin')
|
|
91
|
+
continue;
|
|
92
|
+
// Ensure that we don't mark modules as needing to be rebuilt more than once
|
|
93
|
+
// by ignoring / resolving symlinks
|
|
94
|
+
const realPath = await fs_extra_1.default.realpath(path_1.default.resolve(nodeModulesPath, modulePath));
|
|
95
|
+
if (this.realModulePaths.has(realPath)) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
this.realModulePaths.add(realPath);
|
|
99
|
+
if (this.prodDeps[`${prefix}${modulePath}`] && (!this.onlyModules || this.onlyModules.includes(modulePath))) {
|
|
100
|
+
this.modulesToRebuild.push(realPath);
|
|
101
|
+
}
|
|
102
|
+
if (modulePath.startsWith('@')) {
|
|
103
|
+
await this.findAllModulesIn(realPath, `${modulePath}/`);
|
|
104
|
+
}
|
|
105
|
+
if (await fs_extra_1.default.pathExists(path_1.default.resolve(nodeModulesPath, modulePath, 'node_modules'))) {
|
|
106
|
+
await this.findAllModulesIn(path_1.default.resolve(realPath, 'node_modules'));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.ModuleWalker = ModuleWalker;
|
|
112
|
+
//# sourceMappingURL=module-walker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-walker.js","sourceRoot":"","sources":["../../src/module-walker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class NodeAPI {
|
|
2
|
+
private moduleName;
|
|
3
|
+
private electronVersion;
|
|
4
|
+
constructor(moduleName: string, electronVersion: string);
|
|
5
|
+
ensureElectronSupport(): void;
|
|
6
|
+
getVersionForElectron(): number;
|
|
7
|
+
getNapiVersion(moduleNapiVersions: number[]): number;
|
|
8
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeAPI = void 0;
|
|
4
|
+
const node_api_version_1 = require("node-api-version");
|
|
5
|
+
class NodeAPI {
|
|
6
|
+
constructor(moduleName, electronVersion) {
|
|
7
|
+
this.moduleName = moduleName;
|
|
8
|
+
this.electronVersion = electronVersion;
|
|
9
|
+
}
|
|
10
|
+
ensureElectronSupport() {
|
|
11
|
+
this.getVersionForElectron();
|
|
12
|
+
}
|
|
13
|
+
getVersionForElectron() {
|
|
14
|
+
const electronNapiVersion = (0, node_api_version_1.fromElectronVersion)(this.electronVersion);
|
|
15
|
+
if (!electronNapiVersion) {
|
|
16
|
+
throw new Error(`Native module '${this.moduleName}' requires Node-API but Electron v${this.electronVersion} does not support Node-API`);
|
|
17
|
+
}
|
|
18
|
+
return electronNapiVersion;
|
|
19
|
+
}
|
|
20
|
+
getNapiVersion(moduleNapiVersions) {
|
|
21
|
+
const electronNapiVersion = this.getVersionForElectron();
|
|
22
|
+
// Filter out Node-API versions that are too high
|
|
23
|
+
const filteredVersions = moduleNapiVersions.filter((v) => (v <= electronNapiVersion));
|
|
24
|
+
if (filteredVersions.length === 0) {
|
|
25
|
+
throw new Error(`Native module '${this.moduleName}' supports Node-API versions ${moduleNapiVersions} but Electron v${this.electronVersion} only supports Node-API v${electronNapiVersion}`);
|
|
26
|
+
}
|
|
27
|
+
return Math.max(...filteredVersions);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.NodeAPI = NodeAPI;
|
|
31
|
+
//# sourceMappingURL=node-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-api.js","sourceRoot":"","sources":["../../src/node-api.ts"],"names":[],"mappings":";;;AAAA,uDAAyF;AAEzF,MAAa,OAAO;IAIlB,YAAY,UAAkB,EAAE,eAAuB;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,qBAAqB;QACnB,MAAM,mBAAmB,GAAG,IAAA,sCAA8B,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEjF,IAAI,CAAC,mBAAmB,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,UAAU,qCAAqC,IAAI,CAAC,eAAe,4BAA4B,CAAC,CAAC;SACzI;QAED,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,kBAA4B;QACzC,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEzD,iDAAiD;QACjD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC;QAEtF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,UAAU,gCAAgC,kBAAkB,kBAAkB,IAAI,CAAC,eAAe,4BAA4B,mBAAmB,EAAE,CAAC,CAAA;SAC5L;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;IACvC,CAAC;CACF;AAnCD,0BAmCC"}
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
process.argv.splice(1, 1);
|
|
2
|
+
// This tricks prebuild-install into not validating on the
|
|
3
|
+
// 1.8.x and 8.x ABI collision
|
|
4
|
+
Object.defineProperty(process.versions, 'modules', { value: '-1', writable: false });
|
|
5
|
+
require(process.argv[1]);
|
|
6
|
+
//# sourceMappingURL=prebuild-shim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prebuild-shim.js","sourceRoot":"","sources":["../../src/prebuild-shim.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE1B,0DAA0D;AAC1D,8BAA8B;AAC9B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAErF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function readPackageJson(dir: string, safe?: boolean): Promise<any>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.readPackageJson = void 0;
|
|
27
|
+
const fs = __importStar(require("fs-extra"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
async function readPackageJson(dir, safe = false) {
|
|
31
|
+
try {
|
|
32
|
+
return await fs.readJson(path.resolve(dir, 'package.json'));
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
if (safe) {
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.readPackageJson = readPackageJson;
|
|
44
|
+
//# sourceMappingURL=read-package-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-package-json.js","sourceRoot":"","sources":["../../src/read-package-json.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAE7B,8DAA8D;AACvD,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAAI,GAAG,KAAK;IAC7D,IAAI;QACF,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;KAC7D;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,IAAI,EAAE;YACR,OAAO,EAAE,CAAC;SACX;aAAM;YACL,MAAM,GAAG,CAAC;SACX;KACF;AACH,CAAC;AAVD,0CAUC"}
|