This commit is contained in:
2026-03-25 14:14:07 +01:00
parent d6b31e2ef7
commit a0073b4fb1
10368 changed files with 2214340 additions and 0 deletions

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,37 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const arch_1 = require("../src/arch");
// Copied from @electron/get
describe('uname()', () => {
if (process.platform !== 'win32') {
it('should return the correct arch for your system', () => {
// assumes that the tests will always be run on an x64 system 😬
(0, chai_1.expect)((0, arch_1.uname)()).to.equal('x86_64');
});
}
});
// Based on getHostArch tests from @electron/get
describe('getNodeArch()', () => {
it('should return process.arch on x64', () => {
(0, chai_1.expect)((0, arch_1.getNodeArch)('x64', {})).to.equal('x64');
});
it('should return process.arch on ia32', () => {
(0, chai_1.expect)((0, arch_1.getNodeArch)('ia32', {})).to.equal('ia32');
});
it('should return process.arch on arm64', () => {
(0, chai_1.expect)((0, arch_1.getNodeArch)('arm64', {})).to.equal('arm64');
});
it('should return process.arch on unknown arm', () => {
(0, chai_1.expect)((0, arch_1.getNodeArch)('arm', {})).to.equal('armv7l');
});
if (process.platform !== 'win32') {
it('should return uname on arm 6', () => {
(0, chai_1.expect)((0, arch_1.getNodeArch)('arm', { arm_version: '6' })).to.equal((0, arch_1.uname)());
});
}
it('should return armv7l on arm 7', () => {
(0, chai_1.expect)((0, arch_1.getNodeArch)('arm', { arm_version: '7' })).to.equal('armv7l');
});
});
//# sourceMappingURL=arch.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"arch.js","sourceRoot":"","sources":["../../test/arch.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,sCAAiD;AAEjD,4BAA4B;AAC5B,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,gEAAgE;YAChE,IAAA,aAAM,EAAC,IAAA,YAAK,GAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;KACJ;AACH,CAAC,CAAC,CAAC;AAEH,gDAAgD;AAChD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,IAAA,aAAM,EAAC,IAAA,kBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,IAAA,aAAM,EAAC,IAAA,kBAAW,EAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,IAAA,aAAM,EAAC,IAAA,kBAAW,EAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,IAAA,aAAM,EAAC,IAAA,kBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,IAAA,aAAM,EAAC,IAAA,kBAAW,EAAC,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAA,YAAK,GAAE,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;KACJ;IAED,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,IAAA,aAAM,EAAC,IAAA,kBAAW,EAAC,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,70 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const fs = __importStar(require("fs-extra"));
const path = __importStar(require("path"));
const electron_locator_1 = require("../src/electron-locator");
const baseFixtureDir = path.resolve(__dirname, 'fixture', 'electron-locator');
async function expectElectronCanBeFound(projectRootPath, startDir) {
it('should return a valid path', async () => {
const electronPath = await (0, electron_locator_1.locateElectronModule)(projectRootPath, startDir);
(0, chai_1.expect)(electronPath).to.be.a('string');
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
(0, chai_1.expect)(await fs.pathExists(electronPath)).to.be.equal(true);
});
}
describe('locateElectronModule', () => {
describe('when electron is not installed', () => {
const electronDir = path.resolve(__dirname, '..', 'node_modules', 'electron');
before(async () => {
await fs.rename(electronDir, `${electronDir}-moved`);
});
it('should return null when electron is not installed', async () => {
const fixtureDir = path.join(baseFixtureDir, 'not-installed');
(0, chai_1.expect)(await (0, electron_locator_1.locateElectronModule)(fixtureDir, fixtureDir)).to.be.equal(null);
});
after(async () => {
await fs.rename(`${electronDir}-moved`, electronDir);
});
});
describe('using require.resolve() in the current project to search', () => {
const fixtureDir = path.join(baseFixtureDir, 'not-installed');
expectElectronCanBeFound(fixtureDir, fixtureDir);
});
describe('with electron-prebuilt-compile installed', () => {
const fixtureDir = path.join(baseFixtureDir, 'prebuilt-compile');
expectElectronCanBeFound(fixtureDir, fixtureDir);
});
describe('with electron installed', () => {
const fixtureDir = path.join(baseFixtureDir, 'single');
expectElectronCanBeFound(fixtureDir, fixtureDir);
describe('in a workspace', () => {
const fixtureDir = path.join(baseFixtureDir, 'workspace');
expectElectronCanBeFound(fixtureDir, path.join(fixtureDir, 'packages', 'descendant'));
});
});
});
//# sourceMappingURL=electron-locator.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"electron-locator.js","sourceRoot":"","sources":["../../test/electron-locator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8B;AAC9B,6CAA+B;AAC/B,2CAA6B;AAE7B,8DAA+D;AAE/D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAA;AAE7E,KAAK,UAAU,wBAAwB,CAAC,eAAuB,EAAE,QAAgB;IAC/E,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,YAAY,GAAG,MAAM,IAAA,uCAAoB,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC3E,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvC,oEAAoE;QACpE,IAAA,aAAM,EAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QAE9E,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC9D,IAAA,aAAM,EAAC,MAAM,IAAA,uCAAoB,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,WAAW,QAAQ,EAAE,WAAW,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QAC9D,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACjE,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACvD,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAEjD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAC1D,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@@ -0,0 +1 @@
export declare function getExactElectronVersionSync(): string;

View File

@@ -0,0 +1,43 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getExactElectronVersionSync = void 0;
const fs = __importStar(require("fs-extra"));
const path = __importStar(require("path"));
function electronVersionPath() {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const electronPath = require('electron');
if (process.platform === 'darwin') {
return path.resolve(path.dirname(electronPath), '..', '..', '..', 'version');
}
else {
return path.join(path.dirname(electronPath), 'version');
}
}
function getExactElectronVersionSync() {
return fs.readFileSync(electronVersionPath()).toString().trim();
}
exports.getExactElectronVersionSync = getExactElectronVersionSync;
//# sourceMappingURL=electron-version.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"electron-version.js","sourceRoot":"","sources":["../../../test/helpers/electron-version.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAE7B,SAAS,mBAAmB;IAC1B,8DAA8D;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9E;SAAM;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;KACzD;AACH,CAAC;AAED,SAAgB,2BAA2B;IACzC,OAAO,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC;AAFD,kEAEC"}

View File

@@ -0,0 +1,5 @@
export declare const MINUTES_IN_MILLISECONDS: number;
export declare const TIMEOUT_IN_MILLISECONDS: number;
export declare function resetMSVSVersion(): void;
export declare function resetTestModule(testModulePath: string, installModules?: boolean): Promise<void>;
export declare function cleanupTestModule(testModulePath: string): Promise<void>;

View File

@@ -0,0 +1,35 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.cleanupTestModule = exports.resetTestModule = exports.resetMSVSVersion = exports.TIMEOUT_IN_MILLISECONDS = exports.MINUTES_IN_MILLISECONDS = void 0;
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const cross_spawn_promise_1 = require("@malept/cross-spawn-promise");
const originalGypMSVSVersion = process.env.GYP_MSVS_VERSION;
const TIMEOUT_IN_MINUTES = process.platform === 'win32' ? 5 : 2;
exports.MINUTES_IN_MILLISECONDS = 60 * 1000;
exports.TIMEOUT_IN_MILLISECONDS = TIMEOUT_IN_MINUTES * exports.MINUTES_IN_MILLISECONDS;
function resetMSVSVersion() {
if (originalGypMSVSVersion) {
process.env.GYP_MSVS_VERSION = originalGypMSVSVersion;
}
}
exports.resetMSVSVersion = resetMSVSVersion;
async function resetTestModule(testModulePath, installModules = true) {
await fs_extra_1.default.remove(testModulePath);
await fs_extra_1.default.mkdir(testModulePath, { recursive: true });
await fs_extra_1.default.copyFile(path_1.default.resolve(__dirname, '../../test/fixture/native-app1/package.json'), path_1.default.resolve(testModulePath, 'package.json'));
if (installModules) {
await (0, cross_spawn_promise_1.spawn)('npm', ['install'], { cwd: testModulePath });
}
resetMSVSVersion();
}
exports.resetTestModule = resetTestModule;
async function cleanupTestModule(testModulePath) {
await fs_extra_1.default.remove(testModulePath);
resetMSVSVersion();
}
exports.cleanupTestModule = cleanupTestModule;
//# sourceMappingURL=module-setup.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"module-setup.js","sourceRoot":"","sources":["../../../test/helpers/module-setup.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAC1B,gDAAwB;AACxB,qEAAoD;AAEpD,MAAM,sBAAsB,GAAuB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAChF,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnD,QAAA,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAC;AACpC,QAAA,uBAAuB,GAAG,kBAAkB,GAAG,+BAAuB,CAAC;AAEpF,SAAgB,gBAAgB;IAC9B,IAAI,sBAAsB,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;KACvD;AACH,CAAC;AAJD,4CAIC;AAEM,KAAK,UAAU,eAAe,CAAC,cAAsB,EAAE,cAAc,GAAG,IAAI;IACjF,MAAM,kBAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChC,MAAM,kBAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,kBAAE,CAAC,QAAQ,CACf,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,6CAA6C,CAAC,EACtE,cAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAC7C,CAAC;IACF,IAAI,cAAc,EAAE;QAClB,MAAM,IAAA,2BAAK,EAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;KAC1D;IACD,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAXD,0CAWC;AAEM,KAAK,UAAU,iBAAiB,CAAC,cAAsB;IAC5D,MAAM,kBAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChC,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAHD,8CAGC"}

View File

@@ -0,0 +1,7 @@
declare type ExpectRebuildOptions = {
buildType?: string;
metaShouldExist?: boolean;
};
export declare function expectNativeModuleToBeRebuilt(basePath: string, modulePath: string, options?: ExpectRebuildOptions): Promise<void>;
export declare function expectNativeModuleToNotBeRebuilt(basePath: string, modulePath: string, options?: ExpectRebuildOptions): Promise<void>;
export {};

View File

@@ -0,0 +1,42 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.expectNativeModuleToNotBeRebuilt = exports.expectNativeModuleToBeRebuilt = void 0;
const chai_1 = require("chai");
const fs = __importStar(require("fs-extra"));
const path = __importStar(require("path"));
async function expectNativeModuleToBeRebuilt(basePath, modulePath, options = {}) {
const metaShouldExist = Object.prototype.hasOwnProperty.call(options, 'metaShouldExist') ? options.metaShouldExist : true;
const message = `${path.basename(modulePath)} build meta should ${metaShouldExist ? '' : 'not '}exist`;
const buildType = options.buildType || 'Release';
const metaPath = path.resolve(basePath, 'node_modules', modulePath, 'build', buildType, '.forge-meta');
(0, chai_1.expect)(await fs.pathExists(metaPath), message).to.equal(metaShouldExist);
}
exports.expectNativeModuleToBeRebuilt = expectNativeModuleToBeRebuilt;
async function expectNativeModuleToNotBeRebuilt(basePath, modulePath, options = {}) {
await expectNativeModuleToBeRebuilt(basePath, modulePath, { ...options, metaShouldExist: false });
}
exports.expectNativeModuleToNotBeRebuilt = expectNativeModuleToNotBeRebuilt;
//# sourceMappingURL=rebuild.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../../../test/helpers/rebuild.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8B;AAC9B,6CAA+B;AAC/B,2CAA6B;AAOtB,KAAK,UAAU,6BAA6B,CACjD,QAAgB,EAChB,UAAkB,EAClB,UAAgC,EAAE;IAElC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1H,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,sBAAsB,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC;IACvG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACvG,IAAA,aAAM,EAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC3E,CAAC;AAVD,sEAUC;AAEM,KAAK,UAAU,gCAAgC,CACpD,QAAgB,EAChB,UAAkB,EAClB,UAAgC,EAAE;IAElC,MAAM,6BAA6B,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;AACpG,CAAC;AAND,4EAMC"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,57 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = require("events");
const chai_1 = require("chai");
const os_1 = __importDefault(require("os"));
const path_1 = __importDefault(require("path"));
const module_setup_1 = require("./helpers/module-setup");
const node_gyp_1 = require("../src/module-type/node-gyp");
const rebuild_1 = require("../src/rebuild");
describe('node-gyp', () => {
describe('buildArgs', () => {
const testModulePath = path_1.default.resolve(os_1.default.tmpdir(), 'electron-rebuild-test');
before(async () => await (0, module_setup_1.resetTestModule)(testModulePath, false));
after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
function nodeGypArgsForElectronVersion(electronVersion) {
const rebuilder = new rebuild_1.Rebuilder({
buildPath: testModulePath,
electronVersion: electronVersion,
lifecycle: new events_1.EventEmitter()
});
const nodeGyp = new node_gyp_1.NodeGyp(rebuilder, testModulePath);
return nodeGyp.buildArgs([]);
}
context('sufficiently old Electron versions which lack a bundled config.gypi', () => {
it('adds --force-process-config for < 14', async () => {
const args = await nodeGypArgsForElectronVersion('12.0.0');
(0, chai_1.expect)(args).to.include('--force-process-config');
});
it('adds --force-process-config for between 14.0.0 and < 14.2.0', async () => {
const args = await nodeGypArgsForElectronVersion('14.1.0');
(0, chai_1.expect)(args).to.include('--force-process-config');
});
it('adds --force-process-config for versions between 15.0.0 and < 15.3.0', async () => {
const args = await nodeGypArgsForElectronVersion('15.2.0');
(0, chai_1.expect)(args).to.include('--force-process-config');
});
});
context('for sufficiently new Electron versions', () => {
it('does not add --force-process-config for ^14.2.0', async () => {
const args = await nodeGypArgsForElectronVersion('14.2.0');
(0, chai_1.expect)(args).to.not.include('--force-process-config');
});
it('does not add --force-process-config for ^15.3.0', async () => {
const args = await nodeGypArgsForElectronVersion('15.3.0');
(0, chai_1.expect)(args).to.not.include('--force-process-config');
});
it('does not add --force-process-config for >= 16.0.0', async () => {
const args = await nodeGypArgsForElectronVersion('16.0.0-alpha.1');
(0, chai_1.expect)(args).to.not.include('--force-process-config');
});
});
});
});
//# sourceMappingURL=module-type-node-gyp.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"module-type-node-gyp.js","sourceRoot":"","sources":["../../test/module-type-node-gyp.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,82 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = __importStar(require("chai"));
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
const events_1 = require("events");
const os_1 = __importDefault(require("os"));
const path_1 = __importDefault(require("path"));
const module_setup_1 = require("./helpers/module-setup");
const prebuild_install_1 = require("../src/module-type/prebuild-install");
const rebuild_1 = require("../src/rebuild");
chai_1.default.use(chai_as_promised_1.default);
const testModulePath = path_1.default.resolve(os_1.default.tmpdir(), 'electron-rebuild-test');
describe('prebuild-install', () => {
const modulePath = path_1.default.join(testModulePath, 'node_modules', 'farmhash');
const rebuilderArgs = {
buildPath: testModulePath,
electronVersion: '8.0.0',
arch: process.arch,
lifecycle: new events_1.EventEmitter()
};
before(() => {
process.env.ELECTRON_REBUILD_TESTS = 'true';
});
describe('Node-API support', function () {
this.timeout(module_setup_1.TIMEOUT_IN_MILLISECONDS);
before(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
it('should find correct napi version and select napi args', async () => {
const rebuilder = new rebuild_1.Rebuilder(rebuilderArgs);
const prebuildInstall = new prebuild_install_1.PrebuildInstall(rebuilder, modulePath);
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
(0, chai_1.expect)(prebuildInstall.nodeAPI.getNapiVersion((await prebuildInstall.getSupportedNapiVersions()))).to.equal(3);
(0, chai_1.expect)(await prebuildInstall.getPrebuildInstallRuntimeArgs()).to.deep.equal([
'--runtime=napi',
`--target=3`,
]);
});
it('should not fail running prebuild-install', async () => {
const rebuilder = new rebuild_1.Rebuilder(rebuilderArgs);
const prebuildInstall = new prebuild_install_1.PrebuildInstall(rebuilder, modulePath);
(0, chai_1.expect)(await prebuildInstall.findPrebuiltModule()).to.equal(true);
});
it('should throw error with unsupported Electron version', async () => {
const rebuilder = new rebuild_1.Rebuilder({
...rebuilderArgs,
electronVersion: '2.0.0',
});
const prebuildInstall = new prebuild_install_1.PrebuildInstall(rebuilder, modulePath);
(0, chai_1.expect)(prebuildInstall.findPrebuiltModule()).to.eventually.be.rejectedWith("Native module 'farmhash' requires Node-API but Electron v2.0.0 does not support Node-API");
});
});
after(() => {
delete process.env.ELECTRON_REBUILD_TESTS;
});
});
//# sourceMappingURL=module-type-prebuild-install.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"module-type-prebuild-install.js","sourceRoot":"","sources":["../../test/module-type-prebuild-install.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,102 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = require("events");
const chai_1 = require("chai");
const path_1 = __importDefault(require("path"));
const prebuildify_1 = require("../src/module-type/prebuildify");
const rebuild_1 = require("../src/rebuild");
describe('determineNativePrebuildArch', () => {
it('returns arm if passed in armv7l', () => {
(0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildArch)('armv7l')).to.equal('arm');
});
it('returns the input arch if the input is not armv7l', () => {
(0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildArch)('x64')).to.equal('x64');
});
});
describe('determineNativePrebuildExtension', () => {
it('returns armv8 suffix for an arm64 arch', () => {
(0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildExtension)('arm64')).to.equal('armv8.node');
});
it('returns armv7 suffix for an armv7l arch', () => {
(0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildExtension)('armv7l')).to.equal('armv7.node');
});
it('returns no suffix for non-ARM arches', () => {
(0, chai_1.expect)((0, prebuildify_1.determineNativePrebuildExtension)('x64')).to.equal('node');
});
});
describe('prebuildify', () => {
const fixtureBaseDir = path_1.default.join(__dirname, 'fixture', 'prebuildify');
const rebuilderArgs = {
buildPath: 'nonexistent-path',
electronVersion: '13.0.0',
arch: 'x64',
lifecycle: new events_1.EventEmitter()
};
const createRebuilder = (args = {}) => {
const rebuilder = new rebuild_1.Rebuilder({ ...rebuilderArgs, ...args });
rebuilder.platform = 'linux';
return rebuilder;
};
describe('usesTool', () => {
it('succeeds if prebuildify exists in devDependencies', async () => {
const rebuilder = createRebuilder();
const prebuildify = new prebuildify_1.Prebuildify(rebuilder, path_1.default.join(fixtureBaseDir, 'has-prebuildify-devdep'));
(0, chai_1.expect)(await prebuildify.usesTool()).to.equal(true);
});
it('fails if prebuildify does not exist in devDependencies', async () => {
const rebuilder = createRebuilder();
const prebuildify = new prebuildify_1.Prebuildify(rebuilder, path_1.default.join(fixtureBaseDir, 'no-prebuildify-devdep'));
(0, chai_1.expect)(await prebuildify.usesTool()).to.equal(false);
});
});
describe('findPrebuiltModule', () => {
describe('with no prebuilds directory', () => {
it('should not find a prebuilt native module', async () => {
const noPrebuildsDir = __dirname;
const rebuilder = createRebuilder();
const prebuildify = new prebuildify_1.Prebuildify(rebuilder, noPrebuildsDir);
(0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(false);
});
});
describe('with prebuilt module for the given ABI', async () => {
it('should find a prebuilt native module for x64/electron', async () => {
const fixtureDir = path_1.default.join(fixtureBaseDir, 'abi');
const rebuilder = createRebuilder();
const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
(0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(true);
});
});
describe('with prebuilt Node-API module', async () => {
it('should find a prebuilt native module for x64/node', async () => {
const fixtureDir = path_1.default.join(fixtureBaseDir, 'napi');
const rebuilder = createRebuilder();
const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
(0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(true);
});
it('should find a prebuilt native module for armv7l/node', async () => {
const fixtureDir = path_1.default.join(fixtureBaseDir, 'napi');
const rebuilder = createRebuilder({ arch: 'armv7l' });
const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
(0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(true);
});
it('should find a prebuilt native module for arm64/electron', async () => {
const fixtureDir = path_1.default.join(fixtureBaseDir, 'napi');
const rebuilder = createRebuilder({ arch: 'arm64' });
const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
(0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(true);
});
});
describe('when it cannot find a prebuilt module', async () => {
it('should not find a prebuilt native module', async () => {
const fixtureDir = path_1.default.join(fixtureBaseDir, 'not-found');
const rebuilder = createRebuilder();
const prebuildify = new prebuildify_1.Prebuildify(rebuilder, fixtureDir);
(0, chai_1.expect)(await prebuildify.findPrebuiltModule()).to.equal(false);
});
});
});
});
//# sourceMappingURL=module-type-prebuildify.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"module-type-prebuildify.js","sourceRoot":"","sources":["../../test/module-type-prebuildify.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,35 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const path = __importStar(require("path"));
const chai_1 = require("chai");
const read_package_json_1 = require("../src/read-package-json");
describe('read-package-json', () => {
it('should find a package.json file from the given directory', async () => {
// eslint-disable-next-line @typescript-eslint/no-var-requires
(0, chai_1.expect)(await (0, read_package_json_1.readPackageJson)(path.resolve(__dirname, '..'))).to.deep.equal(require('../package.json'));
});
});
//# sourceMappingURL=read-package-json.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"read-package-json.js","sourceRoot":"","sources":["../../test/read-package-json.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,+BAA8B;AAE9B,gEAA2D;AAE3D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,8DAA8D;QAC9D,IAAA,aAAM,EAAC,MAAM,IAAA,mCAAe,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,69 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs = __importStar(require("fs-extra"));
const path = __importStar(require("path"));
const os = __importStar(require("os"));
const cross_spawn_promise_1 = require("@malept/cross-spawn-promise");
const rebuild_1 = require("./helpers/rebuild");
const electron_version_1 = require("./helpers/electron-version");
const search_module_1 = require("../src/search-module");
const rebuild_2 = require("../src/rebuild");
const testElectronVersion = (0, electron_version_1.getExactElectronVersionSync)();
describe('rebuild for yarn workspace', function () {
this.timeout(2 * 60 * 1000);
const testModulePath = path.resolve(os.tmpdir(), 'electron-rebuild-test');
const msvs_version = process.env.GYP_MSVS_VERSION;
describe('core behavior', () => {
before(async () => {
await fs.remove(testModulePath);
await fs.copy(path.resolve(__dirname, 'fixture/workspace-test'), testModulePath);
await (0, cross_spawn_promise_1.spawn)('yarn', [], { cwd: testModulePath });
if (msvs_version) {
process.env.GYP_MSVS_VERSION = msvs_version;
}
const projectRootPath = await (0, search_module_1.getProjectRootPath)(path.join(testModulePath, 'workspace-test', 'child-workspace'));
await (0, rebuild_2.rebuild)({
buildPath: path.resolve(testModulePath, 'child-workspace'),
electronVersion: testElectronVersion,
arch: process.arch,
projectRootPath
});
});
it('should have rebuilt top level prod dependencies', async () => {
await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'snappy');
});
it('should not have rebuilt top level devDependencies', async () => {
await (0, rebuild_1.expectNativeModuleToNotBeRebuilt)(testModulePath, 'sleep');
});
after(async () => {
await fs.remove(testModulePath);
if (msvs_version) {
process.env.GYP_MSVS_VERSION = msvs_version;
}
});
});
});
//# sourceMappingURL=rebuild-yarnworkspace.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"rebuild-yarnworkspace.js","sourceRoot":"","sources":["../../test/rebuild-yarnworkspace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,uCAAyB;AACzB,qEAAoD;AAEpD,+CAAoG;AACpG,iEAAyE;AACzE,wDAA0D;AAC1D,4CAAyC;AAEzC,MAAM,mBAAmB,GAAG,IAAA,8CAA2B,GAAE,CAAC;AAE1D,QAAQ,CAAC,4BAA4B,EAAE;IACrC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAuB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAEtE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAChC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,wBAAwB,CAAC,EAAE,cAAc,CAAC,CAAC;YAEjF,MAAM,IAAA,2BAAK,EAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;YACjD,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,YAAY,CAAC;aAC7C;YAED,MAAM,eAAe,GAAG,MAAM,IAAA,kCAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAEjH,MAAM,IAAA,iBAAO,EAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC;gBAC1D,eAAe,EAAE,mBAAmB;gBACpC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,eAAe;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,IAAA,uCAA6B,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,IAAA,0CAAgC,EAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAChC,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,YAAY,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,192 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const fs = __importStar(require("fs-extra"));
const path = __importStar(require("path"));
const os = __importStar(require("os"));
const module_setup_1 = require("./helpers/module-setup");
const rebuild_1 = require("./helpers/rebuild");
const electron_version_1 = require("./helpers/electron-version");
const rebuild_2 = require("../src/rebuild");
const testElectronVersion = (0, electron_version_1.getExactElectronVersionSync)();
describe('rebuilder', () => {
const testModulePath = path.resolve(os.tmpdir(), 'electron-rebuild-test');
describe('core behavior', function () {
this.timeout(module_setup_1.TIMEOUT_IN_MILLISECONDS);
before(async () => {
await (0, module_setup_1.resetTestModule)(testModulePath);
process.env.ELECTRON_REBUILD_TESTS = 'true';
await (0, rebuild_2.rebuild)({
buildPath: testModulePath,
electronVersion: testElectronVersion,
arch: process.arch
});
});
it('should have rebuilt top level prod dependencies', async () => {
await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'ref-napi');
});
it('should have rebuilt top level prod dependencies that are using prebuild', async () => {
await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'farmhash');
});
it('should have rebuilt children of top level prod dependencies', async () => {
await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'leveldown');
});
it('should have rebuilt children of scoped top level prod dependencies', async () => {
await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, '@newrelic/native-metrics');
});
it('should have rebuilt top level optional dependencies', async () => {
await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'bcrypt');
});
it('should not have rebuilt top level devDependencies', async () => {
await (0, rebuild_1.expectNativeModuleToNotBeRebuilt)(testModulePath, 'ffi-napi');
});
it('should not download files in the module directory', async () => {
const modulePath = path.resolve(testModulePath, 'node_modules/ref-napi');
const fileNames = await fs.readdir(modulePath);
(0, chai_1.expect)(fileNames).to.not.contain(testElectronVersion);
});
after(async () => {
delete process.env.ELECTRON_REBUILD_TESTS;
await (0, module_setup_1.cleanupTestModule)(testModulePath);
});
});
describe('force rebuild', function () {
this.timeout(module_setup_1.TIMEOUT_IN_MILLISECONDS);
before(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
afterEach(module_setup_1.resetMSVSVersion);
const buildPath = testModulePath;
const electronVersion = testElectronVersion;
const arch = process.arch;
const extraModules = [];
it('should skip the rebuild step when disabled', async () => {
await (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch });
(0, module_setup_1.resetMSVSVersion)();
const rebuilder = (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch, extraModules, force: false });
let skipped = 0;
rebuilder.lifecycle.on('module-skip', () => {
skipped++;
});
await rebuilder;
(0, chai_1.expect)(skipped).to.equal(6);
});
it('should rebuild all modules again when disabled but the electron ABI changed', async () => {
await (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch });
(0, module_setup_1.resetMSVSVersion)();
const rebuilder = (0, rebuild_2.rebuild)({ buildPath, electronVersion: '3.0.0', arch, extraModules, force: false });
let skipped = 0;
rebuilder.lifecycle.on('module-skip', () => {
skipped++;
});
await rebuilder;
(0, chai_1.expect)(skipped).to.equal(0);
});
it('should rebuild all modules again when enabled', async function () {
if (process.platform === 'darwin') {
this.timeout(5 * module_setup_1.MINUTES_IN_MILLISECONDS);
}
await (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch });
(0, module_setup_1.resetMSVSVersion)();
const rebuilder = (0, rebuild_2.rebuild)({ buildPath, electronVersion, arch, extraModules, force: true });
let skipped = 0;
rebuilder.lifecycle.on('module-skip', () => {
skipped++;
});
await rebuilder;
(0, chai_1.expect)(skipped).to.equal(0);
});
});
describe('only rebuild', function () {
this.timeout(2 * module_setup_1.MINUTES_IN_MILLISECONDS);
beforeEach(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
afterEach(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
it('should rebuild only specified modules', async () => {
const nativeModuleBinary = path.join(testModulePath, 'node_modules', 'native-hello-world', 'build', 'Release', 'hello_world.node');
(0, chai_1.expect)(await fs.pathExists(nativeModuleBinary)).to.be.true;
await fs.remove(nativeModuleBinary);
(0, chai_1.expect)(await fs.pathExists(nativeModuleBinary)).to.be.false;
const rebuilder = (0, rebuild_2.rebuild)({
buildPath: testModulePath,
electronVersion: testElectronVersion,
arch: process.arch,
onlyModules: ['native-hello-world'],
force: true
});
let built = 0;
rebuilder.lifecycle.on('module-done', () => built++);
await rebuilder;
(0, chai_1.expect)(built).to.equal(1);
(0, chai_1.expect)(await fs.pathExists(nativeModuleBinary)).to.be.true;
});
it('should rebuild multiple specified modules via --only option', async () => {
const rebuilder = (0, rebuild_2.rebuild)({
buildPath: testModulePath,
electronVersion: testElectronVersion,
arch: process.arch,
onlyModules: ['ffi-napi', 'ref-napi'],
force: true
});
let built = 0;
rebuilder.lifecycle.on('module-done', () => built++);
await rebuilder;
(0, chai_1.expect)(built).to.equal(2);
});
});
describe('debug rebuild', function () {
this.timeout(10 * module_setup_1.MINUTES_IN_MILLISECONDS);
before(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
it('should have rebuilt ffi-napi module in Debug mode', async () => {
await (0, rebuild_2.rebuild)({
buildPath: testModulePath,
electronVersion: testElectronVersion,
arch: process.arch,
onlyModules: ['ffi-napi'],
force: true,
debug: true
});
await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'ffi-napi', { buildType: 'Debug' });
await (0, rebuild_1.expectNativeModuleToNotBeRebuilt)(testModulePath, 'ffi-napi');
});
});
describe('useElectronClang rebuild', function () {
this.timeout(10 * module_setup_1.MINUTES_IN_MILLISECONDS);
before(async () => await (0, module_setup_1.resetTestModule)(testModulePath));
after(async () => await (0, module_setup_1.cleanupTestModule)(testModulePath));
it('should have rebuilt ffi-napi module using clang mode', async () => {
await (0, rebuild_2.rebuild)({
buildPath: testModulePath,
electronVersion: testElectronVersion,
arch: process.arch,
onlyModules: ['ffi-napi'],
force: true,
useElectronClang: true
});
await (0, rebuild_1.expectNativeModuleToBeRebuilt)(testModulePath, 'ffi-napi');
});
});
});
//# sourceMappingURL=rebuild.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,65 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const fs = __importStar(require("fs-extra"));
const os = __importStar(require("os"));
const path = __importStar(require("path"));
const search_module_1 = require("../src/search-module");
let baseDir;
async function createTempDir() {
baseDir = await fs.mkdtemp(path.join(os.tmpdir(), 'electron-rebuild-test-'));
}
async function removeTempDir() {
await fs.remove(baseDir);
}
describe('search-module', () => {
describe('getProjectRootPath', () => {
describe('multi-level workspace', () => {
for (const lockFile of ['yarn.lock', 'package-lock.json']) {
describe(lockFile, () => {
before(async () => {
await createTempDir();
await fs.copy(path.resolve(__dirname, 'fixture', 'multi-level-workspace'), baseDir);
await fs.ensureFile(path.join(baseDir, lockFile));
});
it('finds the folder with the lockfile', async () => {
const packageDir = path.join(baseDir, 'packages', 'bar');
(0, chai_1.expect)(await (0, search_module_1.getProjectRootPath)(packageDir)).to.equal(baseDir);
});
after(removeTempDir);
});
}
});
describe('no workspace', () => {
before(createTempDir);
it('returns the input directory if a lockfile cannot be found', async () => {
(0, chai_1.expect)(await (0, search_module_1.getProjectRootPath)(baseDir)).to.equal(baseDir);
});
after(removeTempDir);
});
});
});
//# sourceMappingURL=search-module.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"search-module.js","sourceRoot":"","sources":["../../test/search-module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8B;AAC9B,6CAA+B;AAC/B,uCAAyB;AACzB,2CAA6B;AAE7B,wDAA0D;AAE1D,IAAI,OAAe,CAAC;AAEpB,KAAK,UAAU,aAAa;IAC1B,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACrC,KAAK,MAAM,QAAQ,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,EAAE;gBACzD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACtB,MAAM,CAAC,KAAK,IAAI,EAAE;wBAChB,MAAM,aAAa,EAAE,CAAC;wBACtB,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,EAAE,OAAO,CAAC,CAAC;wBACpF,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACpD,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;wBAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;wBACzD,IAAA,aAAM,EAAC,MAAM,IAAA,kCAAkB,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACjE,CAAC,CAAC,CAAC;oBAEH,KAAK,CAAC,aAAa,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,aAAa,CAAC,CAAC;YAEtB,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACzE,IAAA,aAAM,EAAC,MAAM,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,aAAa,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}