From 8178480ed252b7a9e224674dfb2738dda05e8a09 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 2 Dec 2020 15:27:26 +0300 Subject: [PATCH 1/4] build: add try catch to build-schematics script --- npm/ng-packs/scripts/build-schematics.ts | 26 ++++++++++++++---------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/npm/ng-packs/scripts/build-schematics.ts b/npm/ng-packs/scripts/build-schematics.ts index 06d3ca5793..9f2c60d55e 100644 --- a/npm/ng-packs/scripts/build-schematics.ts +++ b/npm/ng-packs/scripts/build-schematics.ts @@ -49,18 +49,22 @@ async function* copyPackageFiles(packageName: string) { } (async () => { - await fse.remove(`../dist/${PACKAGE_TO_BUILD}`); + try { + await fse.remove(`../dist/${PACKAGE_TO_BUILD}`); - await execa( - 'tsc', - ['-p', `packages/${PACKAGE_TO_BUILD}/tsconfig.json`, '--outDir', `dist/${PACKAGE_TO_BUILD}`], - { - stdout: 'inherit', - cwd: '../', - }, - ); + await execa( + 'tsc', + ['-p', `packages/${PACKAGE_TO_BUILD}/tsconfig.json`, '--outDir', `dist/${PACKAGE_TO_BUILD}`], + { + stdout: 'inherit', + cwd: '../', + }, + ); - for await (const filecopy of copyPackageFiles(PACKAGE_TO_BUILD)) { - // do nothing + for await (const filecopy of copyPackageFiles(PACKAGE_TO_BUILD)) { + // do nothing + } + } catch (error) { + process.exit(1); } })(); From fddbe881b4c8317b3c9bae251a3e4dce16f55f08 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 2 Dec 2020 15:27:37 +0300 Subject: [PATCH 2/4] chore: update workspace-models.ts --- .../src/utils/angular/workspace-models.ts | 200 +++++++++--------- 1 file changed, 104 insertions(+), 96 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/angular/workspace-models.ts b/npm/ng-packs/packages/schematics/src/utils/angular/workspace-models.ts index c03a857d43..d4e050d317 100644 --- a/npm/ng-packs/packages/schematics/src/utils/angular/workspace-models.ts +++ b/npm/ng-packs/packages/schematics/src/utils/angular/workspace-models.ts @@ -5,72 +5,70 @@ * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ - -import { experimental } from '@angular-devkit/core'; - export enum ProjectType { - Application = 'application', - Library = 'library', + Application = 'application', + Library = 'library', } export enum Builders { - AppShell = '@angular-devkit/build-angular:app-shell', - Server = '@angular-devkit/build-angular:server', - Browser = '@angular-devkit/build-angular:browser', - Karma = '@angular-devkit/build-angular:karma', - TsLint = '@angular-devkit/build-angular:tslint', - NgPackagr = '@angular-devkit/build-ng-packagr:build', - DevServer = '@angular-devkit/build-angular:dev-server', - ExtractI18n = '@angular-devkit/build-angular:extract-i18n', - Protractor = '@angular-devkit/build-angular:protractor', + AppShell = '@angular-devkit/build-angular:app-shell', + Server = '@angular-devkit/build-angular:server', + Browser = '@angular-devkit/build-angular:browser', + Karma = '@angular-devkit/build-angular:karma', + TsLint = '@angular-devkit/build-angular:tslint', + DeprecatedNgPackagr = '@angular-devkit/build-ng-packagr:build', + NgPackagr = '@angular-devkit/build-angular:ng-packagr', + DevServer = '@angular-devkit/build-angular:dev-server', + ExtractI18n = '@angular-devkit/build-angular:extract-i18n', + Protractor = '@angular-devkit/build-angular:protractor', } export interface FileReplacements { - replace: string; - with: string; + replace: string; + with: string; } export interface BrowserBuilderBaseOptions { - main: string; - tsConfig: string; - fileReplacements?: FileReplacements[]; - outputPath?: string; - index?: string; - polyfills: string; - assets?: (object|string)[]; - styles?: (object|string)[]; - scripts?: (object|string)[]; - sourceMap?: boolean; + main: string; + tsConfig: string; + fileReplacements?: FileReplacements[]; + outputPath?: string; + index?: string; + polyfills: string; + assets?: (object | string)[]; + styles?: (object | string)[]; + scripts?: (object | string)[]; + sourceMap?: boolean; } export type OutputHashing = 'all' | 'media' | 'none' | 'bundles'; export interface BrowserBuilderOptions extends BrowserBuilderBaseOptions { - serviceWorker?: boolean; - optimization?: boolean; - outputHashing?: OutputHashing; - resourcesOutputPath?: string; - extractCss?: boolean; - namedChunks?: boolean; - aot?: boolean; - extractLicenses?: boolean; - vendorChunk?: boolean; - buildOptimizer?: boolean; - ngswConfigPath?: string; - budgets?: { - type: string; - maximumWarning?: string; - maximumError?: string; - }[]; - webWorkerTsConfig?: string; + serviceWorker?: boolean; + optimization?: boolean; + outputHashing?: OutputHashing; + resourcesOutputPath?: string; + extractCss?: boolean; + namedChunks?: boolean; + aot?: boolean; + extractLicenses?: boolean; + vendorChunk?: boolean; + buildOptimizer?: boolean; + ngswConfigPath?: string; + budgets?: { + type: string; + maximumWarning?: string; + maximumError?: string; + }[]; + webWorkerTsConfig?: string; } export interface ServeBuilderOptions { - browserTarget: string; + browserTarget: string; } export interface LibraryBuilderOptions { - tsConfig: string; - project: string; + tsConfig: string; + project: string; } export interface ServerBuilderOptions { @@ -82,45 +80,47 @@ export interface ServerBuilderOptions { scripts?: boolean; styles?: boolean; }; - sourceMap?: boolean | { - scripts?: boolean; - styles?: boolean; - hidden?: boolean; - vendor?: boolean; - }; + sourceMap?: + | boolean + | { + scripts?: boolean; + styles?: boolean; + hidden?: boolean; + vendor?: boolean; + }; } export interface AppShellBuilderOptions { - browserTarget: string; - serverTarget: string; - route: string; + browserTarget: string; + serverTarget: string; + route: string; } export interface TestBuilderOptions extends Partial { - karmaConfig: string; + karmaConfig: string; } export interface LintBuilderOptions { - tsConfig: string[] | string; - exclude?: string[]; + tsConfig: string[] | string; + exclude?: string[]; } export interface ExtractI18nOptions { - browserTarget: string; + browserTarget: string; } export interface E2EOptions { - protractorConfig: string; - devServerTarget: string; + protractorConfig: string; + devServerTarget: string; } export interface BuilderTarget { - builder: TBuilder; - options: TOptions; - configurations?: { - production: Partial; - [key: string]: Partial; - }; + builder: TBuilder; + options: TOptions; + configurations?: { + production: Partial; + [key: string]: Partial; + }; } export type LibraryBuilderTarget = BuilderTarget; @@ -133,39 +133,47 @@ export type ServeBuilderTarget = BuilderTarget; export type E2EBuilderTarget = BuilderTarget; -export interface WorkspaceSchema extends experimental.workspace.WorkspaceSchema { - projects: { - [key: string]: WorkspaceProject; - }; +export interface WorkspaceSchema { + version: 1; + defaultProject?: string; + cli?: { warnings?: Record }; + projects: { + [key: string]: WorkspaceProject; + }; } -export interface WorkspaceProject - extends experimental.workspace.WorkspaceProject { - /** - * Project type. - */ - projectType: ProjectType; +export interface WorkspaceProject { + /** + * Project type. + */ + projectType: ProjectType; + + root: string; + sourceRoot: string; + prefix: string; + + cli?: { warnings?: Record }; - /** - * Tool options. - */ - architect?: WorkspaceTargets; - /** - * Tool options. - */ - targets?: WorkspaceTargets; + /** + * Tool options. + */ + architect?: WorkspaceTargets; + /** + * Tool options. + */ + targets?: WorkspaceTargets; } export interface WorkspaceTargets { - build?: TProjectType extends ProjectType.Library ? LibraryBuilderTarget : BrowserBuilderTarget; - server?: ServerBuilderTarget; - lint?: LintBuilderTarget; - test?: TestBuilderTarget; - serve?: ServeBuilderTarget; - e2e?: E2EBuilderTarget; - 'app-shell'?: AppShellBuilderTarget; - 'extract-i18n'?: ExtractI18nBuilderTarget; - // TODO(hans): change this any to unknown when google3 supports TypeScript 3.0. - // tslint:disable-next-line:no-any - [key: string]: any; + build?: TProjectType extends ProjectType.Library ? LibraryBuilderTarget : BrowserBuilderTarget; + server?: ServerBuilderTarget; + lint?: LintBuilderTarget; + test?: TestBuilderTarget; + serve?: ServeBuilderTarget; + e2e?: E2EBuilderTarget; + 'app-shell'?: AppShellBuilderTarget; + 'extract-i18n'?: ExtractI18nBuilderTarget; + // TODO(hans): change this any to unknown when google3 supports TypeScript 3.0. + // tslint:disable-next-line:no-any + [key: string]: any; } From d037a6c21895d957a98205e12b6c667fc132674d Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 2 Dec 2020 15:28:00 +0300 Subject: [PATCH 3/4] fix: resolve a type error #6443 --- npm/ng-packs/packages/schematics/src/utils/workspace.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/workspace.ts b/npm/ng-packs/packages/schematics/src/utils/workspace.ts index 56c0411493..9e71d7d15b 100644 --- a/npm/ng-packs/packages/schematics/src/utils/workspace.ts +++ b/npm/ng-packs/packages/schematics/src/utils/workspace.ts @@ -1,8 +1,8 @@ -import { experimental, strings, workspaces } from '@angular-devkit/core'; +import { strings, workspaces } from '@angular-devkit/core'; import { SchematicsException, Tree } from '@angular-devkit/schematics'; import { Exception } from '../enums'; import { Project } from '../models'; -import { getWorkspace, ProjectType } from './angular'; +import { getWorkspace, ProjectType, WorkspaceSchema } from './angular'; import { findEnvironmentExpression } from './ast'; import { readFileInTree } from './common'; @@ -23,7 +23,7 @@ export function readWorkspaceSchema(tree: Tree) { const workspaceBuffer = tree.read('/angular.json') || tree.read('/workspace.json'); if (!workspaceBuffer) throw new SchematicsException(Exception.NoWorkspace); - let workspaceSchema: experimental.workspace.WorkspaceSchema; + let workspaceSchema: WorkspaceSchema; try { workspaceSchema = JSON.parse(workspaceBuffer.toString()); From dadaa400cf80879ba43cddf26da5745f13c40020 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 2 Dec 2020 15:55:35 +0300 Subject: [PATCH 4/4] chore: update dependencies of schematics --- npm/ng-packs/packages/schematics/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 7b777ed3cf..de9fa502e2 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -9,14 +9,14 @@ "license": "MIT", "schematics": "./collection.json", "dependencies": { - "@angular-devkit/core": "~10.0.3", - "@angular-devkit/schematics": "~10.0.3", + "@angular-devkit/core": "~11.0.2", + "@angular-devkit/schematics": "~11.0.2", "got": "^11.5.2", "jsonc-parser": "^2.3.0", "typescript": "~3.9.2" }, "devDependencies": { - "@schematics/angular": "~10.0.3", + "@schematics/angular": "~11.0.2", "@types/jest": "^26.0.0", "@types/node": "^12.11.1", "jest": "^26.0.0",