UNPKG

@angular/cli

Version:
68 lines (59 loc) 1.73 kB
import {CliConfig} from '../../models/config'; import {getAppFromConfig} from '../../utilities/app-utils'; import {dynamicPathParser, DynamicPathOptions} from '../../utilities/dynamic-path-parser'; const stringUtils = require('ember-cli-string-utils'); const Blueprint = require('../../ember-cli/lib/models/blueprint'); export default Blueprint.extend({ name: 'interface', description: '', aliases: ['i'], anonymousOptions: [ '<interface-type>' ], availableOptions: [ { name: 'app', type: String, aliases: ['a'], description: 'Specifies app name to use.' } ], normalizeEntityName: function (entityName: string) { const appConfig = getAppFromConfig(this.options.app); const dynamicPathOptions: DynamicPathOptions = { project: this.project, entityName, appConfig, dryRun: this.options.dryRun }; const parsedPath = dynamicPathParser(dynamicPathOptions); this.dynamicPath = parsedPath; return parsedPath.name; }, locals: function (options: any) { const interfaceType = options.args[2]; this.fileName = stringUtils.dasherize(options.entity.name); if (interfaceType) { this.fileName += '.' + interfaceType; } const prefix = CliConfig.getValue('defaults.interface.prefix'); return { dynamicPath: this.dynamicPath.dir, flat: options.flat, fileName: this.fileName, prefix: prefix }; }, fileMapTokens: function () { // Return custom template variables here. return { __path__: () => { this.generatePath = this.dynamicPath.dir; return this.generatePath; }, __name__: () => { return this.fileName; } }; } });