Skip to content

Commit

Permalink
feat(recommended-bump): added recommended-bump schematics
Browse files Browse the repository at this point in the history
  • Loading branch information
nongrata081 committed Apr 9, 2019
1 parent 14c460f commit f516028
Showing 1 changed file with 34 additions and 4 deletions.
38 changes: 34 additions & 4 deletions src/recommended-bump/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,40 @@
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
import { Rule, SchematicContext, SchematicsException, Tree } from '@angular-devkit/schematics';
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';


// You don't have to export the function as default. You can also have more than one rule factory
// per file.
export function recommendedBump(_options: any): Rule {
return (tree: Tree, _context: SchematicContext) => {

const packageJsonBuffer = tree.read("package.json");
if (!packageJsonBuffer) {
throw new SchematicsException("Not an npm project. Couldn't find package.json");
}

const packageJson = JSON.parse(packageJsonBuffer.toString());

const scripts = "scripts";
const recommendedVersionBumpScript = "recommended:bump";
const recommendedVersionBumpScriptCmd = "conventional-recommended-bump --preset=angular";
if (!packageJson[scripts]) {
packageJson[scripts] = {};
}
packageJson[scripts][recommendedVersionBumpScript] = recommendedVersionBumpScriptCmd;

const devDeps = "devDependencies";
const recommendedVersionBump = "conventional-recommended-bump";
const version = "latest";
if (!packageJson[devDeps]) {
packageJson[devDeps] = {};
}

if (!packageJson[devDeps][recommendedVersionBump]) {
packageJson[devDeps][recommendedVersionBump] = version;
}

tree.overwrite('package.json', JSON.stringify(packageJson, null, 2));
_context.logger.log('info', `Added "${recommendedVersionBumpScript}" to "${scripts}" in package.json`);
_context.logger.log('info', `Added "${recommendedVersionBump}@${version}" to ${devDeps}`);
_context.addTask(new NodePackageInstallTask());

return tree;
};
}

0 comments on commit f516028

Please # to comment.