@acoustic-content-sdk/cli
Version:
Command line utility for the Acoustic Content SDK.
70 lines • 8.33 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: commands/generate.types.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { createChalkLoggerService, createReadDirectory, createReadTextFile, logFileDescriptor, writeFiles } from '@acoustic-content-sdk/tooling';
import { generateTypes } from '@acoustic-content-sdk/tooling-types';
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_TYPES_COMMAND = 'generate-types';
/**
* Generates typings and helper methods based on a set of content type definitions.
*
* @param {?} program
* @return {?}
*/
export function generateTypesCommand(program) {
// register our commands
/** @type {?} */
const cmd = program
.command(GENERATE_TYPES_COMMAND)
.description('Generates typings and helper methods based on a set of content type definitions.')
.option('--data <data>', 'Location of the data directory.')
.option('--dir <dir>', 'Location of the target directory. Defaults to the "src" directory.')
.option('--include <include>', 'Regular expression of the types to include.')
.option('--exclude <exclude>', 'Regular expression of the types to exclude.')
.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();
/** @type {?} */
const dataDir = normalize(cmd.data || join(currentDir, 'data'));
// target dire
/** @type {?} */
const dstDir = normalize(cmd.dir || currentDir);
// log this
logger.info('dataDir', dataDir);
logger.info('dstDir', dstDir);
// execute the command
/** @type {?} */
const command = generateTypes({
data: '/',
include: splitParams(cmd.include),
exclude: splitParams(cmd.exclude)
});
// execute the command
/** @type {?} */
const files$ = rxPipe(command(createReadDirectory(dataDir), createReadTextFile(dataDir), logSvc), writeFiles(dstDir), logFileDescriptor(), ignoreElements());
// subscribe
return files$.toPromise();
}));
// ok
return cmd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUudHlwZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvdXN0aWMtY29udGVudC1zZGsvY2xpLyIsInNvdXJjZXMiOlsiY29tbWFuZHMvZ2VuZXJhdGUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFdEMsTUFBTSxPQUFPLHNCQUFzQixHQUFHLGdCQUFnQjs7Ozs7OztBQU90RCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBZ0I7OztVQUU3QyxHQUFHLEdBQUcsT0FBTztTQUNoQixPQUFPLENBQUMsc0JBQXNCLENBQUM7U0FDL0IsV0FBVyxDQUNWLGtGQUFrRixDQUNuRjtTQUNBLE1BQU0sQ0FBQyxlQUFlLEVBQUUsaUNBQWlDLENBQUM7U0FDMUQsTUFBTSxDQUNMLGFBQWEsRUFDYixvRUFBb0UsQ0FDckU7U0FDQSxNQUFNLENBQ0wscUJBQXFCLEVBQ3JCLDZDQUE2QyxDQUM5QztTQUNBLE1BQU0sQ0FDTCxxQkFBcUIsRUFDckIsNkNBQTZDLENBQzlDO1NBQ0EsTUFBTTs7O0lBQUMsR0FBRyxFQUFFOzs7Y0FFTCxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU87WUFDNUIsQ0FBQyxDQUFDLHdCQUF3QixFQUFFO1lBQzVCLENBQUMsQ0FBQyxtQkFBbUI7OztjQUVqQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7OztjQUUvQixVQUFVLEdBQUcsR0FBRyxFQUFFOztjQUNsQixPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQzs7O2NBRXpELE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUM7UUFDL0MsV0FBVztRQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzs7Y0FFeEIsT0FBTyxHQUFHLGFBQWEsQ0FBQztZQUM1QixJQUFJLEVBQUUsR0FBRztZQUNULE9BQU8sRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUNqQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7U0FDbEMsQ0FBQzs7O2NBRUksTUFBTSxHQUFHLE1BQU0sQ0FDbkIsT0FBTyxDQUNMLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUM1QixrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFDM0IsTUFBTSxDQUNQLEVBQ0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUNsQixpQkFBaUIsRUFBRSxFQUNuQixjQUFjLEVBQUUsQ0FDakI7UUFDRCxZQUFZO1FBQ1osT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUIsQ0FBQyxFQUFDO0lBRUosS0FBSztJQUNMLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUNoYWxrTG9nZ2VyU2VydmljZSxcbiAgY3JlYXRlUmVhZERpcmVjdG9yeSxcbiAgY3JlYXRlUmVhZFRleHRGaWxlLFxuICBsb2dGaWxlRGVzY3JpcHRvcixcbiAgd3JpdGVGaWxlc1xufSBmcm9tICdAYWNvdXN0aWMtY29udGVudC1zZGsvdG9vbGluZyc7XG5pbXBvcnQgeyBnZW5lcmF0ZVR5cGVzIH0gZnJvbSAnQGFjb3VzdGljLWNvbnRlbnQtc2RrL3Rvb2xpbmctdHlwZXMnO1xuaW1wb3J0IHsgTk9PUF9MT0dHRVJfU0VSVklDRSwgcnhQaXBlIH0gZnJvbSAnQGFjb3VzdGljLWNvbnRlbnQtc2RrL3V0aWxzJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgam9pbiwgbm9ybWFsaXplIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBjd2QgfSBmcm9tICdwcm9jZXNzJztcbmltcG9ydCB7IGlnbm9yZUVsZW1lbnRzIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBzcGxpdFBhcmFtcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgR0VORVJBVEVfVFlQRVNfQ09NTUFORCA9ICdnZW5lcmF0ZS10eXBlcyc7XG5cbi8qKlxuICogR2VuZXJhdGVzIHR5cGluZ3MgYW5kIGhlbHBlciBtZXRob2RzIGJhc2VkIG9uIGEgc2V0IG9mIGNvbnRlbnQgdHlwZSBkZWZpbml0aW9ucy5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUeXBlc0NvbW1hbmQocHJvZ3JhbTogQ29tbWFuZCk6IENvbW1hbmQge1xuICAvLyByZWdpc3RlciBvdXIgY29tbWFuZHNcbiAgY29uc3QgY21kID0gcHJvZ3JhbVxuICAgIC5jb21tYW5kKEdFTkVSQVRFX1RZUEVTX0NPTU1BTkQpXG4gICAgLmRlc2NyaXB0aW9uKFxuICAgICAgJ0dlbmVyYXRlcyB0eXBpbmdzIGFuZCBoZWxwZXIgbWV0aG9kcyBiYXNlZCBvbiBhIHNldCBvZiBjb250ZW50IHR5cGUgZGVmaW5pdGlvbnMuJ1xuICAgIClcbiAgICAub3B0aW9uKCctLWRhdGEgPGRhdGE+JywgJ0xvY2F0aW9uIG9mIHRoZSBkYXRhIGRpcmVjdG9yeS4nKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1kaXIgPGRpcj4nLFxuICAgICAgJ0xvY2F0aW9uIG9mIHRoZSB0YXJnZXQgZGlyZWN0b3J5LiBEZWZhdWx0cyB0byB0aGUgXCJzcmNcIiBkaXJlY3RvcnkuJ1xuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgJy0taW5jbHVkZSA8aW5jbHVkZT4nLFxuICAgICAgJ1JlZ3VsYXIgZXhwcmVzc2lvbiBvZiB0aGUgdHlwZXMgdG8gaW5jbHVkZS4nXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1leGNsdWRlIDxleGNsdWRlPicsXG4gICAgICAnUmVndWxhciBleHByZXNzaW9uIG9mIHRoZSB0eXBlcyB0byBleGNsdWRlLidcbiAgICApXG4gICAgLmFjdGlvbigoKSA9PiB7XG4gICAgICAvLyBzZXJ2aWNlXG4gICAgICBjb25zdCBsb2dTdmMgPSBwcm9ncmFtLnZlcmJvc2VcbiAgICAgICAgPyBjcmVhdGVDaGFsa0xvZ2dlclNlcnZpY2UoKVxuICAgICAgICA6IE5PT1BfTE9HR0VSX1NFUlZJQ0U7XG4gICAgICAvLyBsb2dnZXJcbiAgICAgIGNvbnN0IGxvZ2dlciA9IGxvZ1N2Yy5nZXQoY21kLm5hbWUoKSk7XG4gICAgICAvLyB3cml0ZSBjYWxsYmFja1xuICAgICAgY29uc3QgY3VycmVudERpciA9IGN3ZCgpO1xuICAgICAgY29uc3QgZGF0YURpciA9IG5vcm1hbGl6ZShjbWQuZGF0YSB8fCBqb2luKGN1cnJlbnREaXIsICdkYXRhJykpO1xuICAgICAgLy8gdGFyZ2V0IGRpcmVcbiAgICAgIGNvbnN0IGRzdERpciA9IG5vcm1hbGl6ZShjbWQuZGlyIHx8IGN1cnJlbnREaXIpO1xuICAgICAgLy8gbG9nIHRoaXNcbiAgICAgIGxvZ2dlci5pbmZvKCdkYXRhRGlyJywgZGF0YURpcik7XG4gICAgICBsb2dnZXIuaW5mbygnZHN0RGlyJywgZHN0RGlyKTtcbiAgICAgIC8vIGV4ZWN1dGUgdGhlIGNvbW1hbmRcbiAgICAgIGNvbnN0IGNvbW1hbmQgPSBnZW5lcmF0ZVR5cGVzKHtcbiAgICAgICAgZGF0YTogJy8nLFxuICAgICAgICBpbmNsdWRlOiBzcGxpdFBhcmFtcyhjbWQuaW5jbHVkZSksXG4gICAgICAgIGV4Y2x1ZGU6IHNwbGl0UGFyYW1zKGNtZC5leGNsdWRlKVxuICAgICAgfSk7XG4gICAgICAvLyBleGVjdXRlIHRoZSBjb21tYW5kXG4gICAgICBjb25zdCBmaWxlcyQgPSByeFBpcGUoXG4gICAgICAgIGNvbW1hbmQoXG4gICAgICAgICAgY3JlYXRlUmVhZERpcmVjdG9yeShkYXRhRGlyKSxcbiAgICAgICAgICBjcmVhdGVSZWFkVGV4dEZpbGUoZGF0YURpciksXG4gICAgICAgICAgbG9nU3ZjXG4gICAgICAgICksXG4gICAgICAgIHdyaXRlRmlsZXMoZHN0RGlyKSxcbiAgICAgICAgbG9nRmlsZURlc2NyaXB0b3IoKSxcbiAgICAgICAgaWdub3JlRWxlbWVudHMoKVxuICAgICAgKTtcbiAgICAgIC8vIHN1YnNjcmliZVxuICAgICAgcmV0dXJuIGZpbGVzJC50b1Byb21pc2UoKTtcbiAgICB9KTtcblxuICAvLyBva1xuICByZXR1cm4gY21kO1xufVxuIl19