@acoustic-content-sdk/cli
Version:
Command line utility for the Acoustic Content SDK.
70 lines • 8.01 kB
JavaScript
/**
* @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