UNPKG

@acoustic-content-sdk/cli

Version:

Command line utility for the Acoustic Content SDK.

70 lines 8.01 kB
/** * @fileoverview added by tsickle * Generated from: commands/generate.layout.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { createChalkLoggerService, createReadDirectory, generateLayout, logFileDescriptor, writeFiles } from '@acoustic-content-sdk/tooling'; import { NOOP_LOGGER_SERVICE, rxPipe } from '@acoustic-content-sdk/utils'; import { join, normalize } from 'path'; import { cwd } from 'process'; import { ignoreElements } from 'rxjs/operators'; import { splitParams } from './utils'; /** @type {?} */ export const GENERATE_LAYOUT_COMMAND = 'generate-layout'; /** * @param {?} program * @return {?} */ export function generateLayoutCommand(program) { // register our commands /** @type {?} */ const cmd = program .command(`${GENERATE_LAYOUT_COMMAND} [name]`) .description('Generates a layout for a particular content type.') .option('--data <data>', 'Location of the data directory.') .requiredOption('--type <type>', 'Name or ID of the type.') .option('--dir <dir>', 'Location of the target directory. Defaults to the data directory.') .option('--templateType <templateType>', 'Type of the rendering template to use, can be "angular" or "handlebars".') .option('--tags <tags>', 'Tags to add to the new layouts.') .action((/** * @param {?} aLayoutName * @return {?} */ (aLayoutName) => { // service /** @type {?} */ const logSvc = program.verbose ? createChalkLoggerService() : NOOP_LOGGER_SERVICE; // logger /** @type {?} */ const logger = logSvc.get(cmd.name()); // write callback /** @type {?} */ const currentDir = cwd(); /** @type {?} */ const dataDir = normalize(cmd.data || join(currentDir, 'data')); // target dire /** @type {?} */ const dstDir = normalize(cmd.dir || dataDir); // log this logger.info('dataDir', dataDir, 'dstDir', dstDir); // execute the command /** @type {?} */ const command = generateLayout({ data: '/', type: cmd.type, name: aLayoutName, tags: splitParams(cmd.tags), templateType: cmd.templateType }); // execute the command /** @type {?} */ const files$ = rxPipe(command(createReadDirectory(dataDir), logSvc), writeFiles(dstDir), logFileDescriptor(), ignoreElements()); // subscribe return files$.toPromise(); })); // ok return cmd; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUubGF5b3V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3VzdGljLWNvbnRlbnQtc2RrL2NsaS8iLCJzb3VyY2VzIjpbImNvbW1hbmRzL2dlbmVyYXRlLmxheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsVUFBVSxFQUNYLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRXRDLE1BQU0sT0FBTyx1QkFBdUIsR0FBRyxpQkFBaUI7Ozs7O0FBRXhELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUFnQjs7O1VBRTlDLEdBQUcsR0FBRyxPQUFPO1NBQ2hCLE9BQU8sQ0FBQyxHQUFHLHVCQUF1QixTQUFTLENBQUM7U0FDNUMsV0FBVyxDQUFDLG1EQUFtRCxDQUFDO1NBQ2hFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsaUNBQWlDLENBQUM7U0FDMUQsY0FBYyxDQUFDLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQztTQUMxRCxNQUFNLENBQ0wsYUFBYSxFQUNiLG1FQUFtRSxDQUNwRTtTQUNBLE1BQU0sQ0FDTCwrQkFBK0IsRUFDL0IsMEVBQTBFLENBQzNFO1NBQ0EsTUFBTSxDQUFDLGVBQWUsRUFBRSxpQ0FBaUMsQ0FBQztTQUMxRCxNQUFNOzs7O0lBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTs7O2NBRWhCLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTztZQUM1QixDQUFDLENBQUMsd0JBQXdCLEVBQUU7WUFDNUIsQ0FBQyxDQUFDLG1CQUFtQjs7O2NBRWpCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7O2NBRS9CLFVBQVUsR0FBRyxHQUFHLEVBQUU7O2NBQ2xCLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzs7Y0FFekQsTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUM1QyxXQUFXO1FBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQzs7O2NBRTVDLE9BQU8sR0FBRyxjQUFjLENBQUM7WUFDN0IsSUFBSSxFQUFFLEdBQUc7WUFDVCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZCxJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDM0IsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO1NBQy9CLENBQUM7OztjQUVJLE1BQU0sR0FBRyxNQUFNLENBQ25CLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsRUFDN0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUNsQixpQkFBaUIsRUFBRSxFQUNuQixjQUFjLEVBQUUsQ0FDakI7UUFDRCxZQUFZO1FBQ1osT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUIsQ0FBQyxFQUFDO0lBRUosS0FBSztJQUNMLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUNoYWxrTG9nZ2VyU2VydmljZSxcbiAgY3JlYXRlUmVhZERpcmVjdG9yeSxcbiAgZ2VuZXJhdGVMYXlvdXQsXG4gIGxvZ0ZpbGVEZXNjcmlwdG9yLFxuICB3cml0ZUZpbGVzXG59IGZyb20gJ0BhY291c3RpYy1jb250ZW50LXNkay90b29saW5nJztcbmltcG9ydCB7IE5PT1BfTE9HR0VSX1NFUlZJQ0UsIHJ4UGlwZSB9IGZyb20gJ0BhY291c3RpYy1jb250ZW50LXNkay91dGlscyc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IGpvaW4sIG5vcm1hbGl6ZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgY3dkIH0gZnJvbSAncHJvY2Vzcyc7XG5pbXBvcnQgeyBpZ25vcmVFbGVtZW50cyB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgc3BsaXRQYXJhbXMgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IEdFTkVSQVRFX0xBWU9VVF9DT01NQU5EID0gJ2dlbmVyYXRlLWxheW91dCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUxheW91dENvbW1hbmQocHJvZ3JhbTogQ29tbWFuZCk6IENvbW1hbmQge1xuICAvLyByZWdpc3RlciBvdXIgY29tbWFuZHNcbiAgY29uc3QgY21kID0gcHJvZ3JhbVxuICAgIC5jb21tYW5kKGAke0dFTkVSQVRFX0xBWU9VVF9DT01NQU5EfSBbbmFtZV1gKVxuICAgIC5kZXNjcmlwdGlvbignR2VuZXJhdGVzIGEgbGF5b3V0IGZvciBhIHBhcnRpY3VsYXIgY29udGVudCB0eXBlLicpXG4gICAgLm9wdGlvbignLS1kYXRhIDxkYXRhPicsICdMb2NhdGlvbiBvZiB0aGUgZGF0YSBkaXJlY3RvcnkuJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy0tdHlwZSA8dHlwZT4nLCAnTmFtZSBvciBJRCBvZiB0aGUgdHlwZS4nKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1kaXIgPGRpcj4nLFxuICAgICAgJ0xvY2F0aW9uIG9mIHRoZSB0YXJnZXQgZGlyZWN0b3J5LiBEZWZhdWx0cyB0byB0aGUgZGF0YSBkaXJlY3RvcnkuJ1xuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgJy0tdGVtcGxhdGVUeXBlIDx0ZW1wbGF0ZVR5cGU+JyxcbiAgICAgICdUeXBlIG9mIHRoZSByZW5kZXJpbmcgdGVtcGxhdGUgdG8gdXNlLCBjYW4gYmUgXCJhbmd1bGFyXCIgb3IgXCJoYW5kbGViYXJzXCIuJ1xuICAgIClcbiAgICAub3B0aW9uKCctLXRhZ3MgPHRhZ3M+JywgJ1RhZ3MgdG8gYWRkIHRvIHRoZSBuZXcgbGF5b3V0cy4nKVxuICAgIC5hY3Rpb24oKGFMYXlvdXROYW1lKSA9PiB7XG4gICAgICAvLyBzZXJ2aWNlXG4gICAgICBjb25zdCBsb2dTdmMgPSBwcm9ncmFtLnZlcmJvc2VcbiAgICAgICAgPyBjcmVhdGVDaGFsa0xvZ2dlclNlcnZpY2UoKVxuICAgICAgICA6IE5PT1BfTE9HR0VSX1NFUlZJQ0U7XG4gICAgICAvLyBsb2dnZXJcbiAgICAgIGNvbnN0IGxvZ2dlciA9IGxvZ1N2Yy5nZXQoY21kLm5hbWUoKSk7XG4gICAgICAvLyB3cml0ZSBjYWxsYmFja1xuICAgICAgY29uc3QgY3VycmVudERpciA9IGN3ZCgpO1xuICAgICAgY29uc3QgZGF0YURpciA9IG5vcm1hbGl6ZShjbWQuZGF0YSB8fCBqb2luKGN1cnJlbnREaXIsICdkYXRhJykpO1xuICAgICAgLy8gdGFyZ2V0IGRpcmVcbiAgICAgIGNvbnN0IGRzdERpciA9IG5vcm1hbGl6ZShjbWQuZGlyIHx8IGRhdGFEaXIpO1xuICAgICAgLy8gbG9nIHRoaXNcbiAgICAgIGxvZ2dlci5pbmZvKCdkYXRhRGlyJywgZGF0YURpciwgJ2RzdERpcicsIGRzdERpcik7XG4gICAgICAvLyBleGVjdXRlIHRoZSBjb21tYW5kXG4gICAgICBjb25zdCBjb21tYW5kID0gZ2VuZXJhdGVMYXlvdXQoe1xuICAgICAgICBkYXRhOiAnLycsXG4gICAgICAgIHR5cGU6IGNtZC50eXBlLFxuICAgICAgICBuYW1lOiBhTGF5b3V0TmFtZSxcbiAgICAgICAgdGFnczogc3BsaXRQYXJhbXMoY21kLnRhZ3MpLFxuICAgICAgICB0ZW1wbGF0ZVR5cGU6IGNtZC50ZW1wbGF0ZVR5cGVcbiAgICAgIH0pO1xuICAgICAgLy8gZXhlY3V0ZSB0aGUgY29tbWFuZFxuICAgICAgY29uc3QgZmlsZXMkID0gcnhQaXBlKFxuICAgICAgICBjb21tYW5kKGNyZWF0ZVJlYWREaXJlY3RvcnkoZGF0YURpciksIGxvZ1N2YyksXG4gICAgICAgIHdyaXRlRmlsZXMoZHN0RGlyKSxcbiAgICAgICAgbG9nRmlsZURlc2NyaXB0b3IoKSxcbiAgICAgICAgaWdub3JlRWxlbWVudHMoKVxuICAgICAgKTtcbiAgICAgIC8vIHN1YnNjcmliZVxuICAgICAgcmV0dXJuIGZpbGVzJC50b1Byb21pc2UoKTtcbiAgICB9KTtcblxuICAvLyBva1xuICByZXR1cm4gY21kO1xufVxuIl19