@acoustic-content-sdk/cli
Version:
Command line utility for the Acoustic Content SDK.
70 lines • 7.98 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 var GENERATE_LAYOUT_COMMAND = 'generate-layout';
/**
* @param {?} program
* @return {?}
*/
export function generateLayoutCommand(program) {
// register our commands
/** @type {?} */
var 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 {?}
*/
function (aLayoutName) {
// service
/** @type {?} */
var logSvc = program.verbose
? createChalkLoggerService()
: NOOP_LOGGER_SERVICE;
// logger
/** @type {?} */
var logger = logSvc.get(cmd.name());
// write callback
/** @type {?} */
var currentDir = cwd();
/** @type {?} */
var dataDir = normalize(cmd.data || join(currentDir, 'data'));
// target dire
/** @type {?} */
var dstDir = normalize(cmd.dir || dataDir);
// log this
logger.info('dataDir', dataDir, 'dstDir', dstDir);
// execute the command
/** @type {?} */
var command = generateLayout({
data: '/',
type: cmd.type,
name: aLayoutName,
tags: splitParams(cmd.tags),
templateType: cmd.templateType
});
// execute the command
/** @type {?} */
var files$ = rxPipe(command(createReadDirectory(dataDir), logSvc), writeFiles(dstDir), logFileDescriptor(), ignoreElements());
// subscribe
return files$.toPromise();
}));
// ok
return cmd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUubGF5b3V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3VzdGljLWNvbnRlbnQtc2RrL2NsaS8iLCJzb3VyY2VzIjpbImNvbW1hbmRzL2dlbmVyYXRlLmxheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsVUFBVSxFQUNYLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRXRDLE1BQU0sS0FBTyx1QkFBdUIsR0FBRyxpQkFBaUI7Ozs7O0FBRXhELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUFnQjs7O1FBRTlDLEdBQUcsR0FBRyxPQUFPO1NBQ2hCLE9BQU8sQ0FBSSx1QkFBdUIsWUFBUyxDQUFDO1NBQzVDLFdBQVcsQ0FBQyxtREFBbUQsQ0FBQztTQUNoRSxNQUFNLENBQUMsZUFBZSxFQUFFLGlDQUFpQyxDQUFDO1NBQzFELGNBQWMsQ0FBQyxlQUFlLEVBQUUseUJBQXlCLENBQUM7U0FDMUQsTUFBTSxDQUNMLGFBQWEsRUFDYixtRUFBbUUsQ0FDcEU7U0FDQSxNQUFNLENBQ0wsK0JBQStCLEVBQy9CLDBFQUEwRSxDQUMzRTtTQUNBLE1BQU0sQ0FBQyxlQUFlLEVBQUUsaUNBQWlDLENBQUM7U0FDMUQsTUFBTTs7OztJQUFDLFVBQUMsV0FBVzs7O1lBRVosTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPO1lBQzVCLENBQUMsQ0FBQyx3QkFBd0IsRUFBRTtZQUM1QixDQUFDLENBQUMsbUJBQW1COzs7WUFFakIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDOzs7WUFFL0IsVUFBVSxHQUFHLEdBQUcsRUFBRTs7WUFDbEIsT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7OztZQUV6RCxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDO1FBQzVDLFdBQVc7UUFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzs7WUFFNUMsT0FBTyxHQUFHLGNBQWMsQ0FBQztZQUM3QixJQUFJLEVBQUUsR0FBRztZQUNULElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtZQUNkLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUMzQixZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVk7U0FDL0IsQ0FBQzs7O1lBRUksTUFBTSxHQUFHLE1BQU0sQ0FDbkIsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUM3QyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQ2xCLGlCQUFpQixFQUFFLEVBQ25CLGNBQWMsRUFBRSxDQUNqQjtRQUNELFlBQVk7UUFDWixPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1QixDQUFDLEVBQUM7SUFFSixLQUFLO0lBQ0wsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlQ2hhbGtMb2dnZXJTZXJ2aWNlLFxuICBjcmVhdGVSZWFkRGlyZWN0b3J5LFxuICBnZW5lcmF0ZUxheW91dCxcbiAgbG9nRmlsZURlc2NyaXB0b3IsXG4gIHdyaXRlRmlsZXNcbn0gZnJvbSAnQGFjb3VzdGljLWNvbnRlbnQtc2RrL3Rvb2xpbmcnO1xuaW1wb3J0IHsgTk9PUF9MT0dHRVJfU0VSVklDRSwgcnhQaXBlIH0gZnJvbSAnQGFjb3VzdGljLWNvbnRlbnQtc2RrL3V0aWxzJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgam9pbiwgbm9ybWFsaXplIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBjd2QgfSBmcm9tICdwcm9jZXNzJztcbmltcG9ydCB7IGlnbm9yZUVsZW1lbnRzIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBzcGxpdFBhcmFtcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgR0VORVJBVEVfTEFZT1VUX0NPTU1BTkQgPSAnZ2VuZXJhdGUtbGF5b3V0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlTGF5b3V0Q29tbWFuZChwcm9ncmFtOiBDb21tYW5kKTogQ29tbWFuZCB7XG4gIC8vIHJlZ2lzdGVyIG91ciBjb21tYW5kc1xuICBjb25zdCBjbWQgPSBwcm9ncmFtXG4gICAgLmNvbW1hbmQoYCR7R0VORVJBVEVfTEFZT1VUX0NPTU1BTkR9IFtuYW1lXWApXG4gICAgLmRlc2NyaXB0aW9uKCdHZW5lcmF0ZXMgYSBsYXlvdXQgZm9yIGEgcGFydGljdWxhciBjb250ZW50IHR5cGUuJylcbiAgICAub3B0aW9uKCctLWRhdGEgPGRhdGE+JywgJ0xvY2F0aW9uIG9mIHRoZSBkYXRhIGRpcmVjdG9yeS4nKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLS10eXBlIDx0eXBlPicsICdOYW1lIG9yIElEIG9mIHRoZSB0eXBlLicpXG4gICAgLm9wdGlvbihcbiAgICAgICctLWRpciA8ZGlyPicsXG4gICAgICAnTG9jYXRpb24gb2YgdGhlIHRhcmdldCBkaXJlY3RvcnkuIERlZmF1bHRzIHRvIHRoZSBkYXRhIGRpcmVjdG9yeS4nXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS10ZW1wbGF0ZVR5cGUgPHRlbXBsYXRlVHlwZT4nLFxuICAgICAgJ1R5cGUgb2YgdGhlIHJlbmRlcmluZyB0ZW1wbGF0ZSB0byB1c2UsIGNhbiBiZSBcImFuZ3VsYXJcIiBvciBcImhhbmRsZWJhcnNcIi4nXG4gICAgKVxuICAgIC5vcHRpb24oJy0tdGFncyA8dGFncz4nLCAnVGFncyB0byBhZGQgdG8gdGhlIG5ldyBsYXlvdXRzLicpXG4gICAgLmFjdGlvbigoYUxheW91dE5hbWUpID0+IHtcbiAgICAgIC8vIHNlcnZpY2VcbiAgICAgIGNvbnN0IGxvZ1N2YyA9IHByb2dyYW0udmVyYm9zZVxuICAgICAgICA/IGNyZWF0ZUNoYWxrTG9nZ2VyU2VydmljZSgpXG4gICAgICAgIDogTk9PUF9MT0dHRVJfU0VSVklDRTtcbiAgICAgIC8vIGxvZ2dlclxuICAgICAgY29uc3QgbG9nZ2VyID0gbG9nU3ZjLmdldChjbWQubmFtZSgpKTtcbiAgICAgIC8vIHdyaXRlIGNhbGxiYWNrXG4gICAgICBjb25zdCBjdXJyZW50RGlyID0gY3dkKCk7XG4gICAgICBjb25zdCBkYXRhRGlyID0gbm9ybWFsaXplKGNtZC5kYXRhIHx8IGpvaW4oY3VycmVudERpciwgJ2RhdGEnKSk7XG4gICAgICAvLyB0YXJnZXQgZGlyZVxuICAgICAgY29uc3QgZHN0RGlyID0gbm9ybWFsaXplKGNtZC5kaXIgfHwgZGF0YURpcik7XG4gICAgICAvLyBsb2cgdGhpc1xuICAgICAgbG9nZ2VyLmluZm8oJ2RhdGFEaXInLCBkYXRhRGlyLCAnZHN0RGlyJywgZHN0RGlyKTtcbiAgICAgIC8vIGV4ZWN1dGUgdGhlIGNvbW1hbmRcbiAgICAgIGNvbnN0IGNvbW1hbmQgPSBnZW5lcmF0ZUxheW91dCh7XG4gICAgICAgIGRhdGE6ICcvJyxcbiAgICAgICAgdHlwZTogY21kLnR5cGUsXG4gICAgICAgIG5hbWU6IGFMYXlvdXROYW1lLFxuICAgICAgICB0YWdzOiBzcGxpdFBhcmFtcyhjbWQudGFncyksXG4gICAgICAgIHRlbXBsYXRlVHlwZTogY21kLnRlbXBsYXRlVHlwZVxuICAgICAgfSk7XG4gICAgICAvLyBleGVjdXRlIHRoZSBjb21tYW5kXG4gICAgICBjb25zdCBmaWxlcyQgPSByeFBpcGUoXG4gICAgICAgIGNvbW1hbmQoY3JlYXRlUmVhZERpcmVjdG9yeShkYXRhRGlyKSwgbG9nU3ZjKSxcbiAgICAgICAgd3JpdGVGaWxlcyhkc3REaXIpLFxuICAgICAgICBsb2dGaWxlRGVzY3JpcHRvcigpLFxuICAgICAgICBpZ25vcmVFbGVtZW50cygpXG4gICAgICApO1xuICAgICAgLy8gc3Vic2NyaWJlXG4gICAgICByZXR1cm4gZmlsZXMkLnRvUHJvbWlzZSgpO1xuICAgIH0pO1xuXG4gIC8vIG9rXG4gIHJldHVybiBjbWQ7XG59XG4iXX0=