UNPKG

@riddance/deploy

Version:

29 lines 3.83 kB
import { exec } from 'node:child_process'; export async function install(dir) { const exitCode = await new Promise((resolve, reject) => { const proc = exec('npm install --omit=dev', { cwd: dir, }, err => { if (err) { reject(err); } }); const onError = (error) => { reject(error); proc.removeListener('error', onError); proc.removeListener('exit', onExit); }; const onExit = (code) => { resolve(code); proc.removeListener('error', onError); proc.removeListener('exit', onExit); }; proc.stderr?.pipe(process.stderr); proc.addListener('error', onError); proc.addListener('exit', onExit); }); if (exitCode !== 0) { throw new Error(`Non-zero exit code from npm install in ${dir}`); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUV6QyxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQ3JDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxPQUFPLENBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FDYix3QkFBd0IsRUFDeEI7WUFDSSxHQUFHLEVBQUUsR0FBRztTQUNYLEVBQ0QsR0FBRyxDQUFDLEVBQUU7WUFDRixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNmLENBQUM7UUFDTCxDQUFDLENBQ0osQ0FBQTtRQUNELE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDN0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDdkMsQ0FBQyxDQUFBO1FBQ0QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFtQixFQUFFLEVBQUU7WUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDdkMsQ0FBQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ3BDLENBQUMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWMgfSBmcm9tICdub2RlOmNoaWxkX3Byb2Nlc3MnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnN0YWxsKGRpcjogc3RyaW5nKSB7XG4gICAgY29uc3QgZXhpdENvZGUgPSBhd2FpdCBuZXcgUHJvbWlzZTxudW1iZXIgfCBudWxsPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2MgPSBleGVjKFxuICAgICAgICAgICAgJ25wbSBpbnN0YWxsIC0tb21pdD1kZXYnLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGN3ZDogZGlyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgY29uc3Qgb25FcnJvciA9IChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgICAgIHByb2MucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcilcbiAgICAgICAgICAgIHByb2MucmVtb3ZlTGlzdGVuZXIoJ2V4aXQnLCBvbkV4aXQpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb25FeGl0ID0gKGNvZGU6IG51bWJlciB8IG51bGwpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoY29kZSlcbiAgICAgICAgICAgIHByb2MucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcilcbiAgICAgICAgICAgIHByb2MucmVtb3ZlTGlzdGVuZXIoJ2V4aXQnLCBvbkV4aXQpXG4gICAgICAgIH1cbiAgICAgICAgcHJvYy5zdGRlcnI/LnBpcGUocHJvY2Vzcy5zdGRlcnIpXG4gICAgICAgIHByb2MuYWRkTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcilcbiAgICAgICAgcHJvYy5hZGRMaXN0ZW5lcignZXhpdCcsIG9uRXhpdClcbiAgICB9KVxuICAgIGlmIChleGl0Q29kZSAhPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vbi16ZXJvIGV4aXQgY29kZSBmcm9tIG5wbSBpbnN0YWxsIGluICR7ZGlyfWApXG4gICAgfVxufVxuIl19