otus-localization
Version:
A translation tool for Angular i18n(angular-t9n)
37 lines (33 loc) • 1.47 kB
JavaScript
;
var schematics = require('@angular-devkit/schematics');
var workspace = require('@schematics/angular/utility/workspace');
function ngAdd(_options) {
return (tree, _context) => {
const { project, packageScript, ...options } = _options;
return workspace.updateWorkspace((workspace) => {
const projectName = project || Array.from(workspace.projects.keys())[0];
const projectWorkspace = workspace.projects.get(projectName);
if (!projectWorkspace) {
throw new schematics.SchematicsException(`Project ${projectName} not found!`);
}
const target = projectWorkspace.targets.get('t9n');
if (target) {
_context.logger.info(`Overwriting previous t9n entry in project ${projectName}.`);
target.options = options;
}
else {
projectWorkspace.targets.add({
name: 't9n',
builder: 'otus-translation:t9n',
options: options,
});
}
if (packageScript) {
const packageJson = JSON.parse(tree.read('package.json').toString('utf8'));
packageJson.scripts = { ...packageJson.scripts, t9n: `ng run ${projectName}:t9n` };
tree.overwrite('package.json', JSON.stringify(packageJson, null, 2));
}
});
};
}
exports.ngAdd = ngAdd;