Skip to content

Commit

Permalink
Update for angular 10
Browse files Browse the repository at this point in the history
  • Loading branch information
Wykks committed Jul 9, 2020
1 parent eba8740 commit 0c646fc
Show file tree
Hide file tree
Showing 7 changed files with 433 additions and 569 deletions.
21 changes: 11 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@wykks/schematics",
"version": "1.0.2",
"version": "2.0.0",
"description": "Opinionated angular schematics",
"scripts": {
"build": "tsc -p tsconfig.json"
Expand All @@ -13,17 +13,18 @@
"license": "MIT",
"schematics": "./src/collection.json",
"dependencies": {
"@angular-devkit/core": "9.0.6",
"@angular-devkit/schematics": "9.0.6",
"@schematics/angular": "9.0.6",
"typescript": "3.8.3"
"@angular-devkit/core": "10.0.1",
"@angular-devkit/schematics": "10.0.1",
"@schematics/angular": "10.0.1",
"strip-json-comments": "3.1.0",
"typescript": "3.9.6"
},
"devDependencies": {
"@angular/cli": "9.0.6",
"@types/node": "13.9.1",
"husky": "4.2.3",
"lint-staged": "10.0.8",
"prettier": "1.19.1"
"@angular/cli": "10.0.1",
"@types/node": "14.0.20",
"husky": "4.2.5",
"lint-staged": "10.2.11",
"prettier": "2.0.5"
},
"lint-staged": {
"*.{js,json,md,ts}": "prettier --write"
Expand Down
54 changes: 27 additions & 27 deletions src/ng-new/dependencies.ts
Original file line number Diff line number Diff line change
@@ -1,69 +1,69 @@
import { NodeDependencyType } from '@schematics/angular/utility/dependencies';
import { NodeDependencyType } from "@schematics/angular/utility/dependencies";

export const baseDependencies = [
{
type: NodeDependencyType.Dev,
name: 'husky',
version: '^4.2.0'
name: "husky",
version: "^4.2.0",
},
{
type: NodeDependencyType.Dev,
name: 'lint-staged',
version: '^10.0.0'
name: "lint-staged",
version: "^10.0.0",
},
{
type: NodeDependencyType.Dev,
name: 'prettier',
version: '~1.19.0'
name: "prettier",
version: "~2.0.5",
},
{
type: NodeDependencyType.Dev,
name: 'tslint-config-prettier',
version: '^1.18.0'
name: "tslint-config-prettier",
version: "^1.18.0",
},
{
type: NodeDependencyType.Dev,
name: 'typescript-tslint-plugin',
version: '^0.5.5'
name: "typescript-tslint-plugin",
version: "^0.5.5",
},
{
type: NodeDependencyType.Dev,
name: 'commitizen',
version: '^4.0.0'
name: "commitizen",
version: "^4.0.0",
},
{
type: NodeDependencyType.Dev,
name: 'cz-conventional-changelog',
version: '^3.1.0'
}
name: "cz-conventional-changelog",
version: "^3.1.0",
},
];

export const jestDependencies = [
{
type: NodeDependencyType.Dev,
name: '@types/jest',
version: '^25.0.0'
name: "@types/jest",
version: "^26.0.0",
},
{
type: NodeDependencyType.Dev,
name: '@angular-builders/jest',
version: '^9.0.0'
name: "@angular-builders/jest",
version: "^10.0.0-beta.0",
},
{
type: NodeDependencyType.Dev,
name: 'jest',
version: '^25.0.0'
}
name: "jest",
version: "^26.0.0",
},
];

// Extras
jestDependencies.push({
type: NodeDependencyType.Dev,
name: 'ng-mocks',
version: '^9.0.0'
name: "ng-mocks",
version: "^10.0.0",
});
jestDependencies.push({
type: NodeDependencyType.Dev,
name: '@ngneat/spectator',
version: '^5.0.0'
name: "@ngneat/spectator",
version: "^5.11.0",
});
1 change: 0 additions & 1 deletion src/ng-new/files/.prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"printWidth": 80,
"singleQuote": true,
"bracketSpacing": true,
"arrowParens": "always",
"semi": true,
"useTabs": false
}
43 changes: 21 additions & 22 deletions src/ng-new/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { strings, workspaces, JsonArray } from "@angular-devkit/core";
import { JsonArray, strings, workspaces } from "@angular-devkit/core";
import {
apply,
applyToSubtree,
Expand All @@ -9,41 +9,40 @@ import {
SchematicContext,
template,
Tree,
url
url,
} from "@angular-devkit/schematics";
import {
NodePackageInstallTask,
RepositoryInitializerTask
RepositoryInitializerTask,
} from "@angular-devkit/schematics/tasks";
import {
addPackageJsonDependency,
removePackageJsonDependency
removePackageJsonDependency,
} from "@schematics/angular/utility/dependencies";
import { updateWorkspace } from "@schematics/angular/utility/workspace";
import stripJsonComments from "strip-json-comments";
import { addOnPushToComponent } from "./addOnPush";
import { baseDependencies } from "./dependencies";
import { jestChain } from "./jest";

function removeProtractor(host: Tree) {
host.getDir("e2e").visit(file => {
host.getDir("e2e").visit((file) => {
host.delete(file);
});
removePackageJsonDependency(host, "protractor");
return host;
}

function editTsConfig(host: Tree) {
const tsConfigPath = "/tsconfig.json";
const tsConfigPath = "/tsconfig.base.json";

const tsConfigText = host.read(tsConfigPath)!.toString("utf-8");
const tsConfig = JSON.parse(tsConfigText);
const tsConfig = JSON.parse(stripJsonComments(tsConfigText));

tsConfig.compilerOptions.strict = true;
tsConfig.compilerOptions.strictPropertyInitialization = false;
tsConfig.compilerOptions.noUnusedParameters = true;
tsConfig.compilerOptions.noUnusedLocals = true;
tsConfig.compilerOptions.plugins = [{ name: "typescript-tslint-plugin" }];
tsConfig.angularCompilerOptions.strictTemplates = true;

host.overwrite(tsConfigPath, JSON.stringify(tsConfig, null, 2));
}
Expand All @@ -56,17 +55,17 @@ function addConfigToPackageJSON(host: Tree) {

packageJson.husky = {
hooks: {
"pre-commit": "lint-staged"
}
"pre-commit": "lint-staged",
},
};

packageJson["lint-staged"] = {
"*.{js,json,css,scss,md,ts,html}": "prettier --write",
"*.ts": "tslint -c tslint.json -p tsconfig.json --fix"
"*.ts": "tslint -c tslint.json -p tsconfig.json --fix",
};

packageJson.commitizen = {
path: "cz-conventional-changelog"
path: "cz-conventional-changelog",
};

const scripts = packageJson.scripts;
Expand All @@ -82,20 +81,20 @@ function addConfigToPackageJSON(host: Tree) {
}

function addDependenciesToPackageJson(host: Tree) {
baseDependencies.forEach(dependency =>
baseDependencies.forEach((dependency) =>
addPackageJsonDependency(host, dependency)
);
return host;
}

function editAngularConfig(workspace: workspaces.WorkspaceDefinition) {
workspace.projects.forEach(project => {
workspace.projects.forEach((project) => {
project.targets.delete("e2e");
const lintTargetOptions = project.targets.get("lint")!.options!;
lintTargetOptions.format = "stylish";
const e2eConfigIdx = (<JsonArray>(
lintTargetOptions.tsConfig
)).findIndex(config => /e2e/.test(<string>config));
)).findIndex((config) => /e2e/.test(<string>config));
if (e2eConfigIdx > -1) {
(<JsonArray>lintTargetOptions.tsConfig).splice(e2eConfigIdx, 1);
}
Expand All @@ -122,7 +121,7 @@ function editTsLint(host: Tree) {
host.overwrite(tsLintPath, JSON.stringify(tsLint, null, 2));
}

export default function(options: any): Rule {
export default function (options: any): Rule {
if (!options.directory) {
options.directory = options.name;
}
Expand All @@ -131,7 +130,7 @@ export default function(options: any): Rule {
name: options.name,
version: options.version,
newProjectRoot: options.newProjectRoot,
strict: false,
strict: true,
packageManager: options.packageManager,
projectRoot: "",
inlineStyle: options.inlineStyle,
Expand All @@ -142,7 +141,7 @@ export default function(options: any): Rule {
style: "scss",
skipInstall: true,
skipGit: true,
skipTests: true
skipTests: true,
};

return chain([
Expand All @@ -156,15 +155,15 @@ export default function(options: any): Rule {
addConfigToPackageJSON,
editTsLint,
addOnPushToComponent,
mergeWith(apply(url("./files"), [template({ utils: strings })]))
mergeWith(apply(url("./files"), [template({ utils: strings })])),
]),
(_host: Tree, context: SchematicContext) => {
let packageTask;
if (!options.skipInstall) {
packageTask = context.addTask(
new NodePackageInstallTask({
workingDirectory: options.directory,
packageManager: options.packageManager
packageManager: options.packageManager,
})
);
}
Expand All @@ -181,6 +180,6 @@ export default function(options: any): Rule {
packageTask ? [packageTask] : []
);
}
}
},
]);
}
Loading

0 comments on commit 0c646fc

Please sign in to comment.