@acoustic-content-sdk/cli
Version:
Command line utility for the Acoustic Content SDK.
70 lines • 8.31 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 var 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 {?} */
var 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 {?}
*/
function () {
// 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 || currentDir);
// log this
logger.info('dataDir', dataDir);
logger.info('dstDir', dstDir);
// execute the command
/** @type {?} */
var command = generateTypes({
data: '/',
include: splitParams(cmd.include),
exclude: splitParams(cmd.exclude)
});
// execute the command
/** @type {?} */
var files$ = rxPipe(command(createReadDirectory(dataDir), createReadTextFile(dataDir), logSvc), writeFiles(dstDir), logFileDescriptor(), ignoreElements());
// subscribe
return files$.toPromise();
}));
// ok
return cmd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUudHlwZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvdXN0aWMtY29udGVudC1zZGsvY2xpLyIsInNvdXJjZXMiOlsiY29tbWFuZHMvZ2VuZXJhdGUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFdEMsTUFBTSxLQUFPLHNCQUFzQixHQUFHLGdCQUFnQjs7Ozs7OztBQU90RCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBZ0I7OztRQUU3QyxHQUFHLEdBQUcsT0FBTztTQUNoQixPQUFPLENBQUMsc0JBQXNCLENBQUM7U0FDL0IsV0FBVyxDQUNWLGtGQUFrRixDQUNuRjtTQUNBLE1BQU0sQ0FBQyxlQUFlLEVBQUUsaUNBQWlDLENBQUM7U0FDMUQsTUFBTSxDQUNMLGFBQWEsRUFDYixvRUFBb0UsQ0FDckU7U0FDQSxNQUFNLENBQ0wscUJBQXFCLEVBQ3JCLDZDQUE2QyxDQUM5QztTQUNBLE1BQU0sQ0FDTCxxQkFBcUIsRUFDckIsNkNBQTZDLENBQzlDO1NBQ0EsTUFBTTs7O0lBQUM7OztZQUVBLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTztZQUM1QixDQUFDLENBQUMsd0JBQXdCLEVBQUU7WUFDNUIsQ0FBQyxDQUFDLG1CQUFtQjs7O1lBRWpCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7O1lBRS9CLFVBQVUsR0FBRyxHQUFHLEVBQUU7O1lBQ2xCLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzs7WUFFekQsTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUMvQyxXQUFXO1FBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7OztZQUV4QixPQUFPLEdBQUcsYUFBYSxDQUFDO1lBQzVCLElBQUksRUFBRSxHQUFHO1lBQ1QsT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztTQUNsQyxDQUFDOzs7WUFFSSxNQUFNLEdBQUcsTUFBTSxDQUNuQixPQUFPLENBQ0wsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEVBQzVCLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUMzQixNQUFNLENBQ1AsRUFDRCxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQ2xCLGlCQUFpQixFQUFFLEVBQ25CLGNBQWMsRUFBRSxDQUNqQjtRQUNELFlBQVk7UUFDWixPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1QixDQUFDLEVBQUM7SUFFSixLQUFLO0lBQ0wsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlQ2hhbGtMb2dnZXJTZXJ2aWNlLFxuICBjcmVhdGVSZWFkRGlyZWN0b3J5LFxuICBjcmVhdGVSZWFkVGV4dEZpbGUsXG4gIGxvZ0ZpbGVEZXNjcmlwdG9yLFxuICB3cml0ZUZpbGVzXG59IGZyb20gJ0BhY291c3RpYy1jb250ZW50LXNkay90b29saW5nJztcbmltcG9ydCB7IGdlbmVyYXRlVHlwZXMgfSBmcm9tICdAYWNvdXN0aWMtY29udGVudC1zZGsvdG9vbGluZy10eXBlcyc7XG5pbXBvcnQgeyBOT09QX0xPR0dFUl9TRVJWSUNFLCByeFBpcGUgfSBmcm9tICdAYWNvdXN0aWMtY29udGVudC1zZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBqb2luLCBub3JtYWxpemUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IGN3ZCB9IGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0IHsgaWdub3JlRWxlbWVudHMgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IHNwbGl0UGFyYW1zIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBHRU5FUkFURV9UWVBFU19DT01NQU5EID0gJ2dlbmVyYXRlLXR5cGVzJztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdHlwaW5ncyBhbmQgaGVscGVyIG1ldGhvZHMgYmFzZWQgb24gYSBzZXQgb2YgY29udGVudCB0eXBlIGRlZmluaXRpb25zLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVR5cGVzQ29tbWFuZChwcm9ncmFtOiBDb21tYW5kKTogQ29tbWFuZCB7XG4gIC8vIHJlZ2lzdGVyIG91ciBjb21tYW5kc1xuICBjb25zdCBjbWQgPSBwcm9ncmFtXG4gICAgLmNvbW1hbmQoR0VORVJBVEVfVFlQRVNfQ09NTUFORClcbiAgICAuZGVzY3JpcHRpb24oXG4gICAgICAnR2VuZXJhdGVzIHR5cGluZ3MgYW5kIGhlbHBlciBtZXRob2RzIGJhc2VkIG9uIGEgc2V0IG9mIGNvbnRlbnQgdHlwZSBkZWZpbml0aW9ucy4nXG4gICAgKVxuICAgIC5vcHRpb24oJy0tZGF0YSA8ZGF0YT4nLCAnTG9jYXRpb24gb2YgdGhlIGRhdGEgZGlyZWN0b3J5LicpXG4gICAgLm9wdGlvbihcbiAgICAgICctLWRpciA8ZGlyPicsXG4gICAgICAnTG9jYXRpb24gb2YgdGhlIHRhcmdldCBkaXJlY3RvcnkuIERlZmF1bHRzIHRvIHRoZSBcInNyY1wiIGRpcmVjdG9yeS4nXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1pbmNsdWRlIDxpbmNsdWRlPicsXG4gICAgICAnUmVndWxhciBleHByZXNzaW9uIG9mIHRoZSB0eXBlcyB0byBpbmNsdWRlLidcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgICctLWV4Y2x1ZGUgPGV4Y2x1ZGU+JyxcbiAgICAgICdSZWd1bGFyIGV4cHJlc3Npb24gb2YgdGhlIHR5cGVzIHRvIGV4Y2x1ZGUuJ1xuICAgIClcbiAgICAuYWN0aW9uKCgpID0+IHtcbiAgICAgIC8vIHNlcnZpY2VcbiAgICAgIGNvbnN0IGxvZ1N2YyA9IHByb2dyYW0udmVyYm9zZVxuICAgICAgICA/IGNyZWF0ZUNoYWxrTG9nZ2VyU2VydmljZSgpXG4gICAgICAgIDogTk9PUF9MT0dHRVJfU0VSVklDRTtcbiAgICAgIC8vIGxvZ2dlclxuICAgICAgY29uc3QgbG9nZ2VyID0gbG9nU3ZjLmdldChjbWQubmFtZSgpKTtcbiAgICAgIC8vIHdyaXRlIGNhbGxiYWNrXG4gICAgICBjb25zdCBjdXJyZW50RGlyID0gY3dkKCk7XG4gICAgICBjb25zdCBkYXRhRGlyID0gbm9ybWFsaXplKGNtZC5kYXRhIHx8IGpvaW4oY3VycmVudERpciwgJ2RhdGEnKSk7XG4gICAgICAvLyB0YXJnZXQgZGlyZVxuICAgICAgY29uc3QgZHN0RGlyID0gbm9ybWFsaXplKGNtZC5kaXIgfHwgY3VycmVudERpcik7XG4gICAgICAvLyBsb2cgdGhpc1xuICAgICAgbG9nZ2VyLmluZm8oJ2RhdGFEaXInLCBkYXRhRGlyKTtcbiAgICAgIGxvZ2dlci5pbmZvKCdkc3REaXInLCBkc3REaXIpO1xuICAgICAgLy8gZXhlY3V0ZSB0aGUgY29tbWFuZFxuICAgICAgY29uc3QgY29tbWFuZCA9IGdlbmVyYXRlVHlwZXMoe1xuICAgICAgICBkYXRhOiAnLycsXG4gICAgICAgIGluY2x1ZGU6IHNwbGl0UGFyYW1zKGNtZC5pbmNsdWRlKSxcbiAgICAgICAgZXhjbHVkZTogc3BsaXRQYXJhbXMoY21kLmV4Y2x1ZGUpXG4gICAgICB9KTtcbiAgICAgIC8vIGV4ZWN1dGUgdGhlIGNvbW1hbmRcbiAgICAgIGNvbnN0IGZpbGVzJCA9IHJ4UGlwZShcbiAgICAgICAgY29tbWFuZChcbiAgICAgICAgICBjcmVhdGVSZWFkRGlyZWN0b3J5KGRhdGFEaXIpLFxuICAgICAgICAgIGNyZWF0ZVJlYWRUZXh0RmlsZShkYXRhRGlyKSxcbiAgICAgICAgICBsb2dTdmNcbiAgICAgICAgKSxcbiAgICAgICAgd3JpdGVGaWxlcyhkc3REaXIpLFxuICAgICAgICBsb2dGaWxlRGVzY3JpcHRvcigpLFxuICAgICAgICBpZ25vcmVFbGVtZW50cygpXG4gICAgICApO1xuICAgICAgLy8gc3Vic2NyaWJlXG4gICAgICByZXR1cm4gZmlsZXMkLnRvUHJvbWlzZSgpO1xuICAgIH0pO1xuXG4gIC8vIG9rXG4gIHJldHVybiBjbWQ7XG59XG4iXX0=