UNPKG

pnpm-sync

Version:

Recopy injected dependencies whenever a project is rebuilt in your PNPM workspace

89 lines 3.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = require("commander"); const pnpm_sync_lib_1 = require("pnpm-sync-lib"); const node_core_library_1 = require("@rushstack/node-core-library"); const package_extractor_1 = require("@rushstack/package-extractor"); const lockfile_file_pnpm_lock_v6_1 = require("@pnpm/lockfile-file-pnpm-lock-v6"); const lockfile_fs_pnpm_lock_v9_1 = require("@pnpm/lockfile.fs-pnpm-lock-v9"); const program = new commander_1.Command(); program.version(require('../package.json').version); let verboseLogging = false; function logMessage(options) { const { message, messageKind } = options; switch (messageKind) { case 'error': console.error('ERROR: ' + message); process.exitCode = 1; break; case 'warning': console.error('WARNING: ' + message); process.exitCode = 1; break; case 'verbose': if (verboseLogging) { console.log(message); } break; default: console.log(message); break; } } program .command('copy') .description('Execute the copy action based on the plan defined under node_modules/.pnpm-sync.json') .option('-v, --verbose', 'Show verbose messages') .action(async (options) => { try { const { verbose } = options; verboseLogging = verbose; await (0, pnpm_sync_lib_1.pnpmSyncCopyAsync)({ pnpmSyncJsonPath: process.cwd() + '/node_modules/.pnpm-sync.json', getPackageIncludedFiles: package_extractor_1.PackageExtractor.getPackageIncludedFilesAsync, forEachAsyncWithConcurrency: node_core_library_1.Async.forEachAsync, ensureFolderAsync: node_core_library_1.FileSystem.ensureFolderAsync, logMessageCallback: logMessage }); } catch (error) { console.log('UNEXPECTED ERROR: ' + error); process.exitCode = 1; } }); program .command('prepare') .description('Regenerate the .pnpm-sync.json file for a given pnpm-lock.yaml lockfile') .requiredOption('-l, --lockfile <value>', 'The pnpm-lock.yaml file path') .requiredOption('-s, --store <value>', 'The PNPM virtual store path ("node_modules/.pnpm" folder)') .option('-v, --verbose', 'Show verbose messages') .action(async (options) => { try { const { lockfile, store, verbose } = options; verboseLogging = verbose; await (0, pnpm_sync_lib_1.pnpmSyncPrepareAsync)({ lockfilePath: lockfile, dotPnpmFolder: store, ensureFolderAsync: node_core_library_1.FileSystem.ensureFolderAsync, readPnpmLockfile: async (lockfilePath, options) => { const pnpmLockFolder = lockfilePath.slice(0, lockfilePath.length - 'pnpm-lock.yaml'.length); const lockfileV6 = await (0, lockfile_file_pnpm_lock_v6_1.readWantedLockfile)(pnpmLockFolder, options); if (lockfileV6 === null || lockfileV6 === void 0 ? void 0 : lockfileV6.lockfileVersion.toString().startsWith('6')) { return lockfileV6; } const lockfileV9 = await (0, lockfile_fs_pnpm_lock_v9_1.readWantedLockfile)(pnpmLockFolder, options); if (lockfileV9 === null || lockfileV9 === void 0 ? void 0 : lockfileV9.lockfileVersion.toString().startsWith('9')) { return lockfileV9; } return undefined; }, logMessageCallback: logMessage }); } catch (error) { console.log('UNEXPECTED ERROR: ' + error); process.exitCode = 1; } }); program.parse(); //# sourceMappingURL=start.js.map