Browse Source

chore: update workspace-models.ts

pull/6444/head
mehmet-erim 6 years ago
parent
commit
fddbe881b4
  1. 200
      npm/ng-packs/packages/schematics/src/utils/angular/workspace-models.ts

200
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 * 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 * found in the LICENSE file at https://angular.io/license
*/ */
import { experimental } from '@angular-devkit/core';
export enum ProjectType { export enum ProjectType {
Application = 'application', Application = 'application',
Library = 'library', Library = 'library',
} }
export enum Builders { export enum Builders {
AppShell = '@angular-devkit/build-angular:app-shell', AppShell = '@angular-devkit/build-angular:app-shell',
Server = '@angular-devkit/build-angular:server', Server = '@angular-devkit/build-angular:server',
Browser = '@angular-devkit/build-angular:browser', Browser = '@angular-devkit/build-angular:browser',
Karma = '@angular-devkit/build-angular:karma', Karma = '@angular-devkit/build-angular:karma',
TsLint = '@angular-devkit/build-angular:tslint', TsLint = '@angular-devkit/build-angular:tslint',
NgPackagr = '@angular-devkit/build-ng-packagr:build', DeprecatedNgPackagr = '@angular-devkit/build-ng-packagr:build',
DevServer = '@angular-devkit/build-angular:dev-server', NgPackagr = '@angular-devkit/build-angular:ng-packagr',
ExtractI18n = '@angular-devkit/build-angular:extract-i18n', DevServer = '@angular-devkit/build-angular:dev-server',
Protractor = '@angular-devkit/build-angular:protractor', ExtractI18n = '@angular-devkit/build-angular:extract-i18n',
Protractor = '@angular-devkit/build-angular:protractor',
} }
export interface FileReplacements { export interface FileReplacements {
replace: string; replace: string;
with: string; with: string;
} }
export interface BrowserBuilderBaseOptions { export interface BrowserBuilderBaseOptions {
main: string; main: string;
tsConfig: string; tsConfig: string;
fileReplacements?: FileReplacements[]; fileReplacements?: FileReplacements[];
outputPath?: string; outputPath?: string;
index?: string; index?: string;
polyfills: string; polyfills: string;
assets?: (object|string)[]; assets?: (object | string)[];
styles?: (object|string)[]; styles?: (object | string)[];
scripts?: (object|string)[]; scripts?: (object | string)[];
sourceMap?: boolean; sourceMap?: boolean;
} }
export type OutputHashing = 'all' | 'media' | 'none' | 'bundles'; export type OutputHashing = 'all' | 'media' | 'none' | 'bundles';
export interface BrowserBuilderOptions extends BrowserBuilderBaseOptions { export interface BrowserBuilderOptions extends BrowserBuilderBaseOptions {
serviceWorker?: boolean; serviceWorker?: boolean;
optimization?: boolean; optimization?: boolean;
outputHashing?: OutputHashing; outputHashing?: OutputHashing;
resourcesOutputPath?: string; resourcesOutputPath?: string;
extractCss?: boolean; extractCss?: boolean;
namedChunks?: boolean; namedChunks?: boolean;
aot?: boolean; aot?: boolean;
extractLicenses?: boolean; extractLicenses?: boolean;
vendorChunk?: boolean; vendorChunk?: boolean;
buildOptimizer?: boolean; buildOptimizer?: boolean;
ngswConfigPath?: string; ngswConfigPath?: string;
budgets?: { budgets?: {
type: string; type: string;
maximumWarning?: string; maximumWarning?: string;
maximumError?: string; maximumError?: string;
}[]; }[];
webWorkerTsConfig?: string; webWorkerTsConfig?: string;
} }
export interface ServeBuilderOptions { export interface ServeBuilderOptions {
browserTarget: string; browserTarget: string;
} }
export interface LibraryBuilderOptions { export interface LibraryBuilderOptions {
tsConfig: string; tsConfig: string;
project: string; project: string;
} }
export interface ServerBuilderOptions { export interface ServerBuilderOptions {
@ -82,45 +80,47 @@ export interface ServerBuilderOptions {
scripts?: boolean; scripts?: boolean;
styles?: boolean; styles?: boolean;
}; };
sourceMap?: boolean | { sourceMap?:
scripts?: boolean; | boolean
styles?: boolean; | {
hidden?: boolean; scripts?: boolean;
vendor?: boolean; styles?: boolean;
}; hidden?: boolean;
vendor?: boolean;
};
} }
export interface AppShellBuilderOptions { export interface AppShellBuilderOptions {
browserTarget: string; browserTarget: string;
serverTarget: string; serverTarget: string;
route: string; route: string;
} }
export interface TestBuilderOptions extends Partial<BrowserBuilderBaseOptions> { export interface TestBuilderOptions extends Partial<BrowserBuilderBaseOptions> {
karmaConfig: string; karmaConfig: string;
} }
export interface LintBuilderOptions { export interface LintBuilderOptions {
tsConfig: string[] | string; tsConfig: string[] | string;
exclude?: string[]; exclude?: string[];
} }
export interface ExtractI18nOptions { export interface ExtractI18nOptions {
browserTarget: string; browserTarget: string;
} }
export interface E2EOptions { export interface E2EOptions {
protractorConfig: string; protractorConfig: string;
devServerTarget: string; devServerTarget: string;
} }
export interface BuilderTarget<TBuilder extends Builders, TOptions> { export interface BuilderTarget<TBuilder extends Builders, TOptions> {
builder: TBuilder; builder: TBuilder;
options: TOptions; options: TOptions;
configurations?: { configurations?: {
production: Partial<TOptions>; production: Partial<TOptions>;
[key: string]: Partial<TOptions>; [key: string]: Partial<TOptions>;
}; };
} }
export type LibraryBuilderTarget = BuilderTarget<Builders.NgPackagr, LibraryBuilderOptions>; export type LibraryBuilderTarget = BuilderTarget<Builders.NgPackagr, LibraryBuilderOptions>;
@ -133,39 +133,47 @@ export type ServeBuilderTarget = BuilderTarget<Builders.DevServer, ServeBuilderO
export type ExtractI18nBuilderTarget = BuilderTarget<Builders.ExtractI18n, ExtractI18nOptions>; export type ExtractI18nBuilderTarget = BuilderTarget<Builders.ExtractI18n, ExtractI18nOptions>;
export type E2EBuilderTarget = BuilderTarget<Builders.Protractor, E2EOptions>; export type E2EBuilderTarget = BuilderTarget<Builders.Protractor, E2EOptions>;
export interface WorkspaceSchema extends experimental.workspace.WorkspaceSchema { export interface WorkspaceSchema {
projects: { version: 1;
[key: string]: WorkspaceProject<ProjectType.Application | ProjectType.Library>; defaultProject?: string;
}; cli?: { warnings?: Record<string, boolean> };
projects: {
[key: string]: WorkspaceProject<ProjectType.Application | ProjectType.Library>;
};
} }
export interface WorkspaceProject<TProjectType extends ProjectType = ProjectType.Application> export interface WorkspaceProject<TProjectType extends ProjectType = ProjectType.Application> {
extends experimental.workspace.WorkspaceProject { /**
/** * Project type.
* Project type. */
*/ projectType: ProjectType;
projectType: ProjectType;
root: string;
sourceRoot: string;
prefix: string;
cli?: { warnings?: Record<string, boolean> };
/** /**
* Tool options. * Tool options.
*/ */
architect?: WorkspaceTargets<TProjectType>; architect?: WorkspaceTargets<TProjectType>;
/** /**
* Tool options. * Tool options.
*/ */
targets?: WorkspaceTargets<TProjectType>; targets?: WorkspaceTargets<TProjectType>;
} }
export interface WorkspaceTargets<TProjectType extends ProjectType = ProjectType.Application> { export interface WorkspaceTargets<TProjectType extends ProjectType = ProjectType.Application> {
build?: TProjectType extends ProjectType.Library ? LibraryBuilderTarget : BrowserBuilderTarget; build?: TProjectType extends ProjectType.Library ? LibraryBuilderTarget : BrowserBuilderTarget;
server?: ServerBuilderTarget; server?: ServerBuilderTarget;
lint?: LintBuilderTarget; lint?: LintBuilderTarget;
test?: TestBuilderTarget; test?: TestBuilderTarget;
serve?: ServeBuilderTarget; serve?: ServeBuilderTarget;
e2e?: E2EBuilderTarget; e2e?: E2EBuilderTarget;
'app-shell'?: AppShellBuilderTarget; 'app-shell'?: AppShellBuilderTarget;
'extract-i18n'?: ExtractI18nBuilderTarget; 'extract-i18n'?: ExtractI18nBuilderTarget;
// TODO(hans): change this any to unknown when google3 supports TypeScript 3.0. // TODO(hans): change this any to unknown when google3 supports TypeScript 3.0.
// tslint:disable-next-line:no-any // tslint:disable-next-line:no-any
[key: string]: any; [key: string]: any;
} }

Loading…
Cancel
Save