@acoustic-content-sdk/cli
Version:
Command line utility for the Acoustic Content SDK.
75 lines • 9.08 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 const 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 {?} */
const 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 {?}
*/
() => {
// service
/** @type {?} */
const logSvc = program.verbose
? createChalkLoggerService()
: NOOP_LOGGER_SERVICE;
// logger
/** @type {?} */
const logger = logSvc.get(cmd.name());
// write callback
/** @type {?} */
const currentDir = cwd();
// target dir
/** @type {?} */
const fullDstDir = getFullPath(currentDir, cmd.dir || 'temp');
// source dir
/** @type {?} */
const fullSrcDir = getFullPath(currentDir, cmd.src || '');
// root
const { root: srcRoot } = parse(fullSrcDir);
const { root: dstRoot } = parse(fullDstDir);
// decode relative paths
/** @type {?} */
const dstDir = relative(dstRoot, fullDstDir);
/** @type {?} */
const srcDir = relative(srcRoot, fullSrcDir);
// log this
logger.info('srcDir', srcDir);
logger.info('dstDir', dstDir);
// execute the command
/** @type {?} */
const command = generateDataOverlay({
src: srcDir
});
// execute the command
/** @type {?} */
const files$ = rxPipe(command(createReadTextFile(srcRoot), createReadDirectory(dstRoot), logSvc), writeFiles(fullDstDir), logFileDescriptor(), ignoreElements());
// subscribe
return files$.toPromise();
}));
// ok
return cmd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuZGF0YS5vdmVybGF5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3VzdGljLWNvbnRlbnQtc2RrL2NsaS8iLCJzb3VyY2VzIjpbImNvbW1hbmRzL2dlbmVyYXRlLmRhdGEub3ZlcmxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV0QyxNQUFNLE9BQU8sNkJBQTZCLEdBQUcsdUJBQXVCOzs7Ozs7OztBQVNwRSxNQUFNLFVBQVUsMEJBQTBCLENBQUMsT0FBZ0I7OztVQUVuRCxHQUFHLEdBQUcsT0FBTztTQUNoQixPQUFPLENBQUMsR0FBRyw2QkFBNkIsRUFBRSxDQUFDO1NBQzNDLFdBQVcsQ0FDVix1RUFBdUUsQ0FDeEU7U0FDQSxNQUFNLENBQ0wsYUFBYSxFQUNiLHVEQUF1RCxDQUN4RDtTQUNBLE1BQU0sQ0FDTCxhQUFhLEVBQ2IsaUhBQWlILENBQ2xIO1NBQ0EsTUFBTTs7O0lBQUMsR0FBRyxFQUFFOzs7Y0FFTCxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU87WUFDNUIsQ0FBQyxDQUFDLHdCQUF3QixFQUFFO1lBQzVCLENBQUMsQ0FBQyxtQkFBbUI7OztjQUVqQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7OztjQUUvQixVQUFVLEdBQUcsR0FBRyxFQUFFOzs7Y0FFbEIsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUM7OztjQUV2RCxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQzs7Y0FFbkQsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztjQUNyQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDOzs7Y0FFckMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDOztjQUN0QyxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7UUFDNUMsV0FBVztRQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzs7Y0FFeEIsT0FBTyxHQUFHLG1CQUFtQixDQUFDO1lBQ2xDLEdBQUcsRUFBRSxNQUFNO1NBQ1osQ0FBQzs7O2NBRUksTUFBTSxHQUFHLE1BQU0sQ0FDbkIsT0FBTyxDQUNMLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUMzQixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFDNUIsTUFBTSxDQUNQLEVBQ0QsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUN0QixpQkFBaUIsRUFBRSxFQUNuQixjQUFjLEVBQUUsQ0FDakI7UUFDRCxZQUFZO1FBQ1osT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUIsQ0FBQyxFQUFDO0lBRUosS0FBSztJQUNMLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUNoYWxrTG9nZ2VyU2VydmljZSxcbiAgY3JlYXRlUmVhZERpcmVjdG9yeSxcbiAgY3JlYXRlUmVhZFRleHRGaWxlLFxuICBnZW5lcmF0ZURhdGFPdmVybGF5LFxuICBsb2dGaWxlRGVzY3JpcHRvcixcbiAgd3JpdGVGaWxlc1xufSBmcm9tICdAYWNvdXN0aWMtY29udGVudC1zZGsvdG9vbGluZyc7XG5pbXBvcnQgeyBOT09QX0xPR0dFUl9TRVJWSUNFLCByeFBpcGUgfSBmcm9tICdAYWNvdXN0aWMtY29udGVudC1zZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBwYXJzZSwgcmVsYXRpdmUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IGN3ZCB9IGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0IHsgaWdub3JlRWxlbWVudHMgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGdldEZ1bGxQYXRoIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBHRU5FUkFURV9EQVRBX09WRVJMQVlfQ09NTUFORCA9ICdnZW5lcmF0ZS1kYXRhLW92ZXJsYXknO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIGRhdGEgb3ZlcmxheSBvZiB0aGUgd2NodG9vbHMgZm9sZGVycyByZWZlcmVuY2VkIGJ5IGEgbm9kZSBtb2R1bGUgYW5kIGFsbFxuICogb2YgaXRzIGRlcGVuZGVuY2llcy4gVGhlIHJlc3VsdGluZyBmb2xkZXIgY2FuIHRoZW4gYmUgdXNlZCB3aXRoIHtAbGluayBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS93Y2h0b29scy1jbGl8d2NodG9vbHN9LlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gdGhlIGNvbW1hbmRlciBpbnN0YW5jZSB0byBhdHRhY2ggdGhlIGNvbW1hbmQgdG9cbiAqIEByZXR1cm5zIHRoZSBjb21tYW5kZXIgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRGF0YU92ZXJsYXlDb21tYW5kKHByb2dyYW06IENvbW1hbmQpOiBDb21tYW5kIHtcbiAgLy8gcmVnaXN0ZXIgb3VyIGNvbW1hbmRzXG4gIGNvbnN0IGNtZCA9IHByb2dyYW1cbiAgICAuY29tbWFuZChgJHtHRU5FUkFURV9EQVRBX09WRVJMQVlfQ09NTUFORH1gKVxuICAgIC5kZXNjcmlwdGlvbihcbiAgICAgICdHZW5lcmF0ZXMgYW4gb3ZlcmxheSBvZiB3Y2h0b29scyBkYXRhIGZvbGRlcnMgZm9yIHJlZmVyZW5jZWQgbW9kdWxlcy4nXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1kaXIgPGRpcj4nLFxuICAgICAgJ0xvY2F0aW9uIG9mIHRoZSB0YXJnZXQgZGlyZWN0b3J5LiBEZWZhdWx0cyB0byBcInRlbXBcIi4nXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1zcmMgPGRpcj4nLFxuICAgICAgJ0xvY2F0aW9uIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0aGUgcGFja2FnZS5qc29uIHRvIGFuYWx5emUuIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LidcbiAgICApXG4gICAgLmFjdGlvbigoKSA9PiB7XG4gICAgICAvLyBzZXJ2aWNlXG4gICAgICBjb25zdCBsb2dTdmMgPSBwcm9ncmFtLnZlcmJvc2VcbiAgICAgICAgPyBjcmVhdGVDaGFsa0xvZ2dlclNlcnZpY2UoKVxuICAgICAgICA6IE5PT1BfTE9HR0VSX1NFUlZJQ0U7XG4gICAgICAvLyBsb2dnZXJcbiAgICAgIGNvbnN0IGxvZ2dlciA9IGxvZ1N2Yy5nZXQoY21kLm5hbWUoKSk7XG4gICAgICAvLyB3cml0ZSBjYWxsYmFja1xuICAgICAgY29uc3QgY3VycmVudERpciA9IGN3ZCgpO1xuICAgICAgLy8gdGFyZ2V0IGRpclxuICAgICAgY29uc3QgZnVsbERzdERpciA9IGdldEZ1bGxQYXRoKGN1cnJlbnREaXIsIGNtZC5kaXIgfHwgJ3RlbXAnKTtcbiAgICAgIC8vIHNvdXJjZSBkaXJcbiAgICAgIGNvbnN0IGZ1bGxTcmNEaXIgPSBnZXRGdWxsUGF0aChjdXJyZW50RGlyLCBjbWQuc3JjIHx8ICcnKTtcbiAgICAgIC8vIHJvb3RcbiAgICAgIGNvbnN0IHsgcm9vdDogc3JjUm9vdCB9ID0gcGFyc2UoZnVsbFNyY0Rpcik7XG4gICAgICBjb25zdCB7IHJvb3Q6IGRzdFJvb3QgfSA9IHBhcnNlKGZ1bGxEc3REaXIpO1xuICAgICAgLy8gZGVjb2RlIHJlbGF0aXZlIHBhdGhzXG4gICAgICBjb25zdCBkc3REaXIgPSByZWxhdGl2ZShkc3RSb290LCBmdWxsRHN0RGlyKTtcbiAgICAgIGNvbnN0IHNyY0RpciA9IHJlbGF0aXZlKHNyY1Jvb3QsIGZ1bGxTcmNEaXIpO1xuICAgICAgLy8gbG9nIHRoaXNcbiAgICAgIGxvZ2dlci5pbmZvKCdzcmNEaXInLCBzcmNEaXIpO1xuICAgICAgbG9nZ2VyLmluZm8oJ2RzdERpcicsIGRzdERpcik7XG4gICAgICAvLyBleGVjdXRlIHRoZSBjb21tYW5kXG4gICAgICBjb25zdCBjb21tYW5kID0gZ2VuZXJhdGVEYXRhT3ZlcmxheSh7XG4gICAgICAgIHNyYzogc3JjRGlyXG4gICAgICB9KTtcbiAgICAgIC8vIGV4ZWN1dGUgdGhlIGNvbW1hbmRcbiAgICAgIGNvbnN0IGZpbGVzJCA9IHJ4UGlwZShcbiAgICAgICAgY29tbWFuZChcbiAgICAgICAgICBjcmVhdGVSZWFkVGV4dEZpbGUoc3JjUm9vdCksXG4gICAgICAgICAgY3JlYXRlUmVhZERpcmVjdG9yeShkc3RSb290KSxcbiAgICAgICAgICBsb2dTdmNcbiAgICAgICAgKSxcbiAgICAgICAgd3JpdGVGaWxlcyhmdWxsRHN0RGlyKSxcbiAgICAgICAgbG9nRmlsZURlc2NyaXB0b3IoKSxcbiAgICAgICAgaWdub3JlRWxlbWVudHMoKVxuICAgICAgKTtcbiAgICAgIC8vIHN1YnNjcmliZVxuICAgICAgcmV0dXJuIGZpbGVzJC50b1Byb21pc2UoKTtcbiAgICB9KTtcblxuICAvLyBva1xuICByZXR1cm4gY21kO1xufVxuIl19