@acoustic-content-sdk/cli
Version:
Command line utility for the Acoustic Content SDK.
75 lines • 8.92 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: commands/generate.data.overlay.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { createChalkLoggerService, createReadDirectory, createReadTextFile, generateDataOverlay, logFileDescriptor, writeFiles } from '@acoustic-content-sdk/tooling';
import { NOOP_LOGGER_SERVICE, rxPipe } from '@acoustic-content-sdk/utils';
import { parse, relative } from 'path';
import { cwd } from 'process';
import { ignoreElements } from 'rxjs/operators';
import { getFullPath } from './utils';
/** @type {?} */
export var GENERATE_DATA_OVERLAY_COMMAND = 'generate-data-overlay';
/**
* Generates a data overlay of the wchtools folders referenced by a node module and all
* of its dependencies. The resulting folder can then be used with {\@link https://www.npmjs.com/package/wchtools-cli|wchtools}.
*
* @param {?} program - the commander instance to attach the command to
* @return {?} the commander instance
*/
export function generateDataOverlayCommand(program) {
// register our commands
/** @type {?} */
var cmd = program
.command("" + GENERATE_DATA_OVERLAY_COMMAND)
.description('Generates an overlay of wchtools data folders for referenced modules.')
.option('--dir <dir>', 'Location of the target directory. Defaults to "temp".')
.option('--src <dir>', 'Location of the directory that contains the package.json to analyze. Defaults to the current working directory.')
.action((/**
* @return {?}
*/
function () {
// service
/** @type {?} */
var logSvc = program.verbose
? createChalkLoggerService()
: NOOP_LOGGER_SERVICE;
// logger
/** @type {?} */
var logger = logSvc.get(cmd.name());
// write callback
/** @type {?} */
var currentDir = cwd();
// target dir
/** @type {?} */
var fullDstDir = getFullPath(currentDir, cmd.dir || 'temp');
// source dir
/** @type {?} */
var fullSrcDir = getFullPath(currentDir, cmd.src || '');
// root
var srcRoot = parse(fullSrcDir).root;
var dstRoot = parse(fullDstDir).root;
// decode relative paths
/** @type {?} */
var dstDir = relative(dstRoot, fullDstDir);
/** @type {?} */
var srcDir = relative(srcRoot, fullSrcDir);
// log this
logger.info('srcDir', srcDir);
logger.info('dstDir', dstDir);
// execute the command
/** @type {?} */
var command = generateDataOverlay({
src: srcDir
});
// execute the command
/** @type {?} */
var files$ = rxPipe(command(createReadTextFile(srcRoot), createReadDirectory(dstRoot), logSvc), writeFiles(fullDstDir), logFileDescriptor(), ignoreElements());
// subscribe
return files$.toPromise();
}));
// ok
return cmd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuZGF0YS5vdmVybGF5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3VzdGljLWNvbnRlbnQtc2RrL2NsaS8iLCJzb3VyY2VzIjpbImNvbW1hbmRzL2dlbmVyYXRlLmRhdGEub3ZlcmxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV0QyxNQUFNLEtBQU8sNkJBQTZCLEdBQUcsdUJBQXVCOzs7Ozs7OztBQVNwRSxNQUFNLFVBQVUsMEJBQTBCLENBQUMsT0FBZ0I7OztRQUVuRCxHQUFHLEdBQUcsT0FBTztTQUNoQixPQUFPLENBQUMsS0FBRyw2QkFBK0IsQ0FBQztTQUMzQyxXQUFXLENBQ1YsdUVBQXVFLENBQ3hFO1NBQ0EsTUFBTSxDQUNMLGFBQWEsRUFDYix1REFBdUQsQ0FDeEQ7U0FDQSxNQUFNLENBQ0wsYUFBYSxFQUNiLGlIQUFpSCxDQUNsSDtTQUNBLE1BQU07OztJQUFDOzs7WUFFQSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU87WUFDNUIsQ0FBQyxDQUFDLHdCQUF3QixFQUFFO1lBQzVCLENBQUMsQ0FBQyxtQkFBbUI7OztZQUVqQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7OztZQUUvQixVQUFVLEdBQUcsR0FBRyxFQUFFOzs7WUFFbEIsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUM7OztZQUV2RCxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQzs7UUFFakQsSUFBQSxnQ0FBYTtRQUNiLElBQUEsZ0NBQWE7OztZQUVmLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQzs7WUFDdEMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQzVDLFdBQVc7UUFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQzs7O1lBRXhCLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQztZQUNsQyxHQUFHLEVBQUUsTUFBTTtTQUNaLENBQUM7OztZQUVJLE1BQU0sR0FBRyxNQUFNLENBQ25CLE9BQU8sQ0FDTCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFDM0IsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEVBQzVCLE1BQU0sQ0FDUCxFQUNELFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFDdEIsaUJBQWlCLEVBQUUsRUFDbkIsY0FBYyxFQUFFLENBQ2pCO1FBQ0QsWUFBWTtRQUNaLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVCLENBQUMsRUFBQztJQUVKLEtBQUs7SUFDTCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjcmVhdGVDaGFsa0xvZ2dlclNlcnZpY2UsXG4gIGNyZWF0ZVJlYWREaXJlY3RvcnksXG4gIGNyZWF0ZVJlYWRUZXh0RmlsZSxcbiAgZ2VuZXJhdGVEYXRhT3ZlcmxheSxcbiAgbG9nRmlsZURlc2NyaXB0b3IsXG4gIHdyaXRlRmlsZXNcbn0gZnJvbSAnQGFjb3VzdGljLWNvbnRlbnQtc2RrL3Rvb2xpbmcnO1xuaW1wb3J0IHsgTk9PUF9MT0dHRVJfU0VSVklDRSwgcnhQaXBlIH0gZnJvbSAnQGFjb3VzdGljLWNvbnRlbnQtc2RrL3V0aWxzJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgcGFyc2UsIHJlbGF0aXZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBjd2QgfSBmcm9tICdwcm9jZXNzJztcbmltcG9ydCB7IGlnbm9yZUVsZW1lbnRzIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBnZXRGdWxsUGF0aCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgR0VORVJBVEVfREFUQV9PVkVSTEFZX0NPTU1BTkQgPSAnZ2VuZXJhdGUtZGF0YS1vdmVybGF5JztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBkYXRhIG92ZXJsYXkgb2YgdGhlIHdjaHRvb2xzIGZvbGRlcnMgcmVmZXJlbmNlZCBieSBhIG5vZGUgbW9kdWxlIGFuZCBhbGxcbiAqIG9mIGl0cyBkZXBlbmRlbmNpZXMuIFRoZSByZXN1bHRpbmcgZm9sZGVyIGNhbiB0aGVuIGJlIHVzZWQgd2l0aCB7QGxpbmsgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvd2NodG9vbHMtY2xpfHdjaHRvb2xzfS5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSAtIHRoZSBjb21tYW5kZXIgaW5zdGFuY2UgdG8gYXR0YWNoIHRoZSBjb21tYW5kIHRvXG4gKiBAcmV0dXJucyB0aGUgY29tbWFuZGVyIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZURhdGFPdmVybGF5Q29tbWFuZChwcm9ncmFtOiBDb21tYW5kKTogQ29tbWFuZCB7XG4gIC8vIHJlZ2lzdGVyIG91ciBjb21tYW5kc1xuICBjb25zdCBjbWQgPSBwcm9ncmFtXG4gICAgLmNvbW1hbmQoYCR7R0VORVJBVEVfREFUQV9PVkVSTEFZX0NPTU1BTkR9YClcbiAgICAuZGVzY3JpcHRpb24oXG4gICAgICAnR2VuZXJhdGVzIGFuIG92ZXJsYXkgb2Ygd2NodG9vbHMgZGF0YSBmb2xkZXJzIGZvciByZWZlcmVuY2VkIG1vZHVsZXMuJ1xuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgJy0tZGlyIDxkaXI+JyxcbiAgICAgICdMb2NhdGlvbiBvZiB0aGUgdGFyZ2V0IGRpcmVjdG9yeS4gRGVmYXVsdHMgdG8gXCJ0ZW1wXCIuJ1xuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgJy0tc3JjIDxkaXI+JyxcbiAgICAgICdMb2NhdGlvbiBvZiB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGhlIHBhY2thZ2UuanNvbiB0byBhbmFseXplLiBEZWZhdWx0cyB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4nXG4gICAgKVxuICAgIC5hY3Rpb24oKCkgPT4ge1xuICAgICAgLy8gc2VydmljZVxuICAgICAgY29uc3QgbG9nU3ZjID0gcHJvZ3JhbS52ZXJib3NlXG4gICAgICAgID8gY3JlYXRlQ2hhbGtMb2dnZXJTZXJ2aWNlKClcbiAgICAgICAgOiBOT09QX0xPR0dFUl9TRVJWSUNFO1xuICAgICAgLy8gbG9nZ2VyXG4gICAgICBjb25zdCBsb2dnZXIgPSBsb2dTdmMuZ2V0KGNtZC5uYW1lKCkpO1xuICAgICAgLy8gd3JpdGUgY2FsbGJhY2tcbiAgICAgIGNvbnN0IGN1cnJlbnREaXIgPSBjd2QoKTtcbiAgICAgIC8vIHRhcmdldCBkaXJcbiAgICAgIGNvbnN0IGZ1bGxEc3REaXIgPSBnZXRGdWxsUGF0aChjdXJyZW50RGlyLCBjbWQuZGlyIHx8ICd0ZW1wJyk7XG4gICAgICAvLyBzb3VyY2UgZGlyXG4gICAgICBjb25zdCBmdWxsU3JjRGlyID0gZ2V0RnVsbFBhdGgoY3VycmVudERpciwgY21kLnNyYyB8fCAnJyk7XG4gICAgICAvLyByb290XG4gICAgICBjb25zdCB7IHJvb3Q6IHNyY1Jvb3QgfSA9IHBhcnNlKGZ1bGxTcmNEaXIpO1xuICAgICAgY29uc3QgeyByb290OiBkc3RSb290IH0gPSBwYXJzZShmdWxsRHN0RGlyKTtcbiAgICAgIC8vIGRlY29kZSByZWxhdGl2ZSBwYXRoc1xuICAgICAgY29uc3QgZHN0RGlyID0gcmVsYXRpdmUoZHN0Um9vdCwgZnVsbERzdERpcik7XG4gICAgICBjb25zdCBzcmNEaXIgPSByZWxhdGl2ZShzcmNSb290LCBmdWxsU3JjRGlyKTtcbiAgICAgIC8vIGxvZyB0aGlzXG4gICAgICBsb2dnZXIuaW5mbygnc3JjRGlyJywgc3JjRGlyKTtcbiAgICAgIGxvZ2dlci5pbmZvKCdkc3REaXInLCBkc3REaXIpO1xuICAgICAgLy8gZXhlY3V0ZSB0aGUgY29tbWFuZFxuICAgICAgY29uc3QgY29tbWFuZCA9IGdlbmVyYXRlRGF0YU92ZXJsYXkoe1xuICAgICAgICBzcmM6IHNyY0RpclxuICAgICAgfSk7XG4gICAgICAvLyBleGVjdXRlIHRoZSBjb21tYW5kXG4gICAgICBjb25zdCBmaWxlcyQgPSByeFBpcGUoXG4gICAgICAgIGNvbW1hbmQoXG4gICAgICAgICAgY3JlYXRlUmVhZFRleHRGaWxlKHNyY1Jvb3QpLFxuICAgICAgICAgIGNyZWF0ZVJlYWREaXJlY3RvcnkoZHN0Um9vdCksXG4gICAgICAgICAgbG9nU3ZjXG4gICAgICAgICksXG4gICAgICAgIHdyaXRlRmlsZXMoZnVsbERzdERpciksXG4gICAgICAgIGxvZ0ZpbGVEZXNjcmlwdG9yKCksXG4gICAgICAgIGlnbm9yZUVsZW1lbnRzKClcbiAgICAgICk7XG4gICAgICAvLyBzdWJzY3JpYmVcbiAgICAgIHJldHVybiBmaWxlcyQudG9Qcm9taXNlKCk7XG4gICAgfSk7XG5cbiAgLy8gb2tcbiAgcmV0dXJuIGNtZDtcbn1cbiJdfQ==