@pnpm/prepare-package
Advanced tools
Comparing version
@@ -1,1 +0,3 @@ | ||
export declare function preparePackage(pkgDir: string): Promise<void>; | ||
export declare function preparePackage(opts: { | ||
rawConfig: object; | ||
}, pkgDir: string): Promise<void>; |
@@ -9,2 +9,3 @@ "use strict"; | ||
const error_1 = require("@pnpm/error"); | ||
const npm_lifecycle_1 = __importDefault(require("@pnpm/npm-lifecycle")); | ||
const read_package_json_1 = require("@pnpm/read-package-json"); | ||
@@ -14,16 +15,40 @@ const rimraf_1 = __importDefault(require("@zkochan/rimraf")); | ||
const preferred_pm_1 = __importDefault(require("preferred-pm")); | ||
async function preparePackage(pkgDir) { | ||
const omit_1 = __importDefault(require("ramda/src/omit")); | ||
const PREPUBLISH_SCRIPTS = [ | ||
'prepublish', | ||
'prepublishOnly', | ||
'prepack', | ||
'publish', | ||
'postpublish', | ||
]; | ||
async function preparePackage(opts, pkgDir) { | ||
const manifest = await (0, read_package_json_1.safeReadPackageJsonFromDir)(pkgDir); | ||
if (manifest?.scripts?.prepare != null && manifest.scripts.prepare !== '') { | ||
const pm = (await (0, preferred_pm_1.default)(pkgDir))?.name ?? 'npm'; | ||
try { | ||
await (0, execa_1.default)(pm, ['install'], { cwd: pkgDir }); | ||
if (manifest?.scripts == null || !packageShouldBeBuilt(manifest.scripts)) | ||
return; | ||
const pm = (await (0, preferred_pm_1.default)(pkgDir))?.name ?? 'npm'; | ||
// We can't prepare a package without running its lifecycle scripts. | ||
// An alternative solution could be to throw an exception. | ||
const config = (0, omit_1.default)(['ignore-scripts'], opts.rawConfig); | ||
const env = npm_lifecycle_1.default.makeEnv(manifest, { config }); | ||
const execOpts = { cwd: pkgDir, env, extendEnv: true }; | ||
try { | ||
await (0, execa_1.default)(pm, ['install'], execOpts); | ||
for (const scriptName of PREPUBLISH_SCRIPTS) { | ||
if (manifest.scripts[scriptName] == null || manifest.scripts[scriptName] === '') | ||
continue; | ||
await (0, execa_1.default)(pm, ['run', scriptName], execOpts); | ||
} | ||
catch (err) { // eslint-disable-line | ||
throw new error_1.PnpmError('PREPARE_PKG_FAILURE', err.shortMessage ?? err.message); | ||
} | ||
await (0, rimraf_1.default)(path_1.default.join(pkgDir, 'node_modules')); | ||
} | ||
catch (err) { // eslint-disable-line | ||
throw new error_1.PnpmError('PREPARE_PKG_FAILURE', err.shortMessage ?? err.message); | ||
} | ||
await (0, rimraf_1.default)(path_1.default.join(pkgDir, 'node_modules')); | ||
} | ||
exports.preparePackage = preparePackage; | ||
function packageShouldBeBuilt(packageScripts) { | ||
return [ | ||
...PREPUBLISH_SCRIPTS, | ||
'prepare', | ||
].some((scriptName) => packageScripts[scriptName] != null && packageScripts[scriptName] !== ''); | ||
} | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@pnpm/prepare-package", | ||
"version": "3.0.4", | ||
"version": "4.0.0", | ||
"description": "Prepares a Git-hosted package", | ||
@@ -25,5 +25,7 @@ "main": "lib/index.js", | ||
"dependencies": { | ||
"@pnpm/npm-lifecycle": "^2.0.0", | ||
"@zkochan/rimraf": "^2.1.2", | ||
"execa": "npm:safe-execa@^0.1.2", | ||
"preferred-pm": "^3.0.3", | ||
"ramda": "npm:@pnpm/ramda@0.28.1", | ||
"@pnpm/error": "4.0.0", | ||
@@ -34,3 +36,8 @@ "@pnpm/read-package-json": "7.0.4" | ||
"devDependencies": { | ||
"@pnpm/prepare-package": "3.0.4" | ||
"@types/ramda": "0.28.20", | ||
"load-json-file": "^6.2.0", | ||
"@pnpm/prepare": "0.0.59", | ||
"@pnpm/prepare-package": "4.0.0", | ||
"@pnpm/test-fixtures": "0.0.28", | ||
"@pnpm/types": "8.10.0" | ||
}, | ||
@@ -41,6 +48,7 @@ "exports": { | ||
"scripts": { | ||
"lint": "eslint src/**/*.ts", | ||
"test": "pnpm run compile", | ||
"compile": "tsc --build && pnpm run lint --fix" | ||
"lint": "eslint src/**/*.ts test/**/*.ts", | ||
"test": "pnpm run compile && pnpm run _test", | ||
"compile": "tsc --build && pnpm run lint --fix", | ||
"_test": "jest" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
6755
46.94%54
100%7
40%6
500%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed