UNPKG

@angular-plugins/npm

Version:

Npm Plugin for Angular and Nx Repos

44 lines (43 loc) 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const architect_1 = require("@angular-devkit/architect"); const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); const fs_1 = require("fs"); const fileutils_1 = require("@nrwl/workspace/src/utils/fileutils"); const child_process_1 = require("child_process"); function createDeployRunner(options, { logger, workspaceRoot }) { logger.info('Start npm deploy builder' + JSON.stringify(options)); const libraryPackageJson = fileutils_1.readJsonFile(options.packageJsonPath); const unlinkFileObservable = rxjs_1.bindNodeCallback(fs_1.unlink); const execObservable = rxjs_1.bindNodeCallback(child_process_1.exec); return unlinkFileObservable(options.packageJsonPath).pipe(operators_1.switchMap(() => { return rxjs_1.from(executeCommand(logger, `git describe --tags`)); }), operators_1.map((version) => { logger.warn(`The version to use ${version}`); fileutils_1.writeJsonFile(options.packageJsonPath, Object.assign(Object.assign({}, libraryPackageJson), { version: version.replace('\n', "").replace('v', "") })); }), operators_1.switchMap(() => { return execObservable(`npm publish ${options.packageJsonPath.replace("package.json", "")} --access public`); }), operators_1.map(() => { return { success: true }; }), operators_1.tap(() => logger.info('npm deploy ran successfully')), operators_1.catchError(e => { logger.error(`Failed to ran npm deploy ${e}`); return rxjs_1.of({ success: false }); })); } exports.createDeployRunner = createDeployRunner; function executeCommand(logger, command) { var ChildProcess = require('child_process'); return new Promise((res, rej) => { const a = ChildProcess.exec('git describe --tags'); a.stdout.on('data', data => { logger.info(`Current Tag Version ${data}`); res(data); }); a.stderr.on('data', err => { logger.error(`There is an error ${err}`); rej(err); }); }); } exports.default = architect_1.createBuilder(createDeployRunner);