747 lines
20 KiB
TypeScript
Executable file
747 lines
20 KiB
TypeScript
Executable file
export interface Schema {
|
|
$schema?: string;
|
|
cli?: CliOptions;
|
|
/**
|
|
* Path where new projects will be created.
|
|
*/
|
|
newProjectRoot?: string;
|
|
projects?: Projects;
|
|
schematics?: SchematicOptions;
|
|
version: number;
|
|
}
|
|
export interface CliOptions {
|
|
/**
|
|
* Share pseudonymous usage data with the Angular Team at Google.
|
|
*/
|
|
analytics?: Analytics;
|
|
/**
|
|
* Control disk cache.
|
|
*/
|
|
cache?: Cache;
|
|
/**
|
|
* Specify which package manager tool to use.
|
|
*/
|
|
packageManager?: PackageManager;
|
|
/**
|
|
* The list of schematic collections to use.
|
|
*/
|
|
schematicCollections?: string[];
|
|
/**
|
|
* Control CLI specific console warnings
|
|
*/
|
|
warnings?: Warnings;
|
|
}
|
|
/**
|
|
* Share pseudonymous usage data with the Angular Team at Google.
|
|
*/
|
|
export type Analytics = boolean | string;
|
|
/**
|
|
* Control disk cache.
|
|
*/
|
|
export interface Cache {
|
|
/**
|
|
* Configure whether disk caching is enabled.
|
|
*/
|
|
enabled?: boolean;
|
|
/**
|
|
* Configure in which environment disk cache is enabled.
|
|
*/
|
|
environment?: Environment;
|
|
/**
|
|
* Cache base path.
|
|
*/
|
|
path?: string;
|
|
}
|
|
/**
|
|
* Configure in which environment disk cache is enabled.
|
|
*/
|
|
export declare enum Environment {
|
|
All = "all",
|
|
Ci = "ci",
|
|
Local = "local"
|
|
}
|
|
/**
|
|
* Specify which package manager tool to use.
|
|
*
|
|
* The package manager used to install dependencies.
|
|
*/
|
|
export declare enum PackageManager {
|
|
Cnpm = "cnpm",
|
|
Npm = "npm",
|
|
Pnpm = "pnpm",
|
|
Yarn = "yarn"
|
|
}
|
|
/**
|
|
* Control CLI specific console warnings
|
|
*/
|
|
export interface Warnings {
|
|
/**
|
|
* Show a warning when the global version is newer than the local one.
|
|
*/
|
|
versionMismatch?: boolean;
|
|
}
|
|
export interface Projects {
|
|
}
|
|
export interface SchematicOptions {
|
|
"@schematics/angular:application"?: AngularApplicationOptionsSchema;
|
|
"@schematics/angular:class"?: AngularClassOptionsSchema;
|
|
"@schematics/angular:component"?: AngularComponentOptionsSchema;
|
|
"@schematics/angular:directive"?: AngularDirectiveOptionsSchema;
|
|
"@schematics/angular:enum"?: AngularEnumOptionsSchema;
|
|
"@schematics/angular:guard"?: AngularGuardOptionsSchema;
|
|
"@schematics/angular:interceptor"?: AngularInterceptorOptionsSchema;
|
|
"@schematics/angular:interface"?: AngularInterfaceOptionsSchema;
|
|
"@schematics/angular:library"?: LibraryOptionsSchema;
|
|
"@schematics/angular:ng-new"?: AngularNgNewOptionsSchema;
|
|
"@schematics/angular:pipe"?: AngularPipeOptionsSchema;
|
|
"@schematics/angular:resolver"?: AngularResolverOptionsSchema;
|
|
"@schematics/angular:service"?: AngularServiceOptionsSchema;
|
|
"@schematics/angular:web-worker"?: AngularWebWorkerOptionsSchema;
|
|
[property: string]: any;
|
|
}
|
|
/**
|
|
* Generates a new basic application definition in the "projects" subfolder of the workspace.
|
|
*/
|
|
export interface AngularApplicationOptionsSchema {
|
|
/**
|
|
* Include styles inline in the root component.ts file. Only CSS styles can be included
|
|
* inline. Default is false, meaning that an external styles file is created and referenced
|
|
* in the root component.ts file.
|
|
*/
|
|
inlineStyle?: boolean;
|
|
/**
|
|
* Include template inline in the root component.ts file. Default is false, meaning that an
|
|
* external template file is created and referenced in the root component.ts file.
|
|
*/
|
|
inlineTemplate?: boolean;
|
|
/**
|
|
* Create a bare-bones project without any testing frameworks. (Use for learning purposes
|
|
* only.)
|
|
*/
|
|
minimal?: boolean;
|
|
/**
|
|
* The name of the new application.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* A prefix to apply to generated selectors.
|
|
*/
|
|
prefix?: string;
|
|
/**
|
|
* The root directory of the new application.
|
|
*/
|
|
projectRoot?: string;
|
|
/**
|
|
* Creates an application with routing enabled.
|
|
*/
|
|
routing?: boolean;
|
|
/**
|
|
* Skip installing dependency packages.
|
|
*/
|
|
skipInstall?: boolean;
|
|
/**
|
|
* Do not add dependencies to the "package.json" file.
|
|
*/
|
|
skipPackageJson?: boolean;
|
|
/**
|
|
* Do not create "spec.ts" test files for the application.
|
|
*/
|
|
skipTests?: boolean;
|
|
/**
|
|
* Creates an application with Server-Side Rendering (SSR) and Static Site Generation
|
|
* (SSG/Prerendering) enabled.
|
|
*/
|
|
ssr?: boolean;
|
|
/**
|
|
* Creates an application based upon the standalone API, without NgModules.
|
|
*/
|
|
standalone?: boolean;
|
|
/**
|
|
* Creates an application with stricter bundle budgets settings.
|
|
*/
|
|
strict?: boolean;
|
|
/**
|
|
* The file extension or preprocessor to use for style files.
|
|
*/
|
|
style?: SchematicsAngularApplicationStyle;
|
|
/**
|
|
* The view encapsulation strategy to use in the new application.
|
|
*/
|
|
viewEncapsulation?: ViewEncapsulation;
|
|
}
|
|
/**
|
|
* The file extension or preprocessor to use for style files.
|
|
*/
|
|
export declare enum SchematicsAngularApplicationStyle {
|
|
Css = "css",
|
|
Less = "less",
|
|
Sass = "sass",
|
|
Scss = "scss"
|
|
}
|
|
/**
|
|
* The view encapsulation strategy to use in the new application.
|
|
*
|
|
* The view encapsulation strategy to use in the new component.
|
|
*
|
|
* The view encapsulation strategy to use in the initial project.
|
|
*/
|
|
export declare enum ViewEncapsulation {
|
|
Emulated = "Emulated",
|
|
None = "None",
|
|
ShadowDom = "ShadowDom"
|
|
}
|
|
/**
|
|
* Creates a new, generic class definition in the given project.
|
|
*/
|
|
export interface AngularClassOptionsSchema {
|
|
/**
|
|
* The name of the new class.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the class, relative to the workspace root.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* Do not create "spec.ts" test files for the new class.
|
|
*/
|
|
skipTests?: boolean;
|
|
/**
|
|
* Adds a developer-defined type to the filename, in the format "name.type.ts".
|
|
*/
|
|
type?: string;
|
|
}
|
|
/**
|
|
* Creates a new, generic component definition in the given project.
|
|
*/
|
|
export interface AngularComponentOptionsSchema {
|
|
/**
|
|
* The change detection strategy to use in the new component.
|
|
*/
|
|
changeDetection?: ChangeDetection;
|
|
/**
|
|
* Specifies if the style will contain `:host { display: block; }`.
|
|
*/
|
|
displayBlock?: boolean;
|
|
/**
|
|
* The declaring NgModule exports this component.
|
|
*/
|
|
export?: boolean;
|
|
/**
|
|
* Create the new files at the top level of the current project.
|
|
*/
|
|
flat?: boolean;
|
|
/**
|
|
* Include styles inline in the component.ts file. Only CSS styles can be included inline.
|
|
* By default, an external styles file is created and referenced in the component.ts file.
|
|
*/
|
|
inlineStyle?: boolean;
|
|
/**
|
|
* Include template inline in the component.ts file. By default, an external template file
|
|
* is created and referenced in the component.ts file.
|
|
*/
|
|
inlineTemplate?: boolean;
|
|
/**
|
|
* The declaring NgModule.
|
|
*/
|
|
module?: string;
|
|
/**
|
|
* The name of the component.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the component file, relative to the current workspace.
|
|
* Default is a folder with the same name as the component in the project root.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* The prefix to apply to the generated component selector.
|
|
*/
|
|
prefix?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* The HTML selector to use for this component.
|
|
*/
|
|
selector?: string;
|
|
/**
|
|
* Do not import this component into the owning NgModule.
|
|
*/
|
|
skipImport?: boolean;
|
|
/**
|
|
* Specifies if the component should have a selector or not.
|
|
*/
|
|
skipSelector?: boolean;
|
|
/**
|
|
* Do not create "spec.ts" test files for the new component.
|
|
*/
|
|
skipTests?: boolean;
|
|
/**
|
|
* Whether the generated component is standalone.
|
|
*/
|
|
standalone?: boolean;
|
|
/**
|
|
* The file extension or preprocessor to use for style files, or 'none' to skip generating
|
|
* the style file.
|
|
*/
|
|
style?: SchematicsAngularComponentStyle;
|
|
/**
|
|
* Adds a developer-defined type to the filename, in the format "name.type.ts".
|
|
*/
|
|
type?: string;
|
|
/**
|
|
* The view encapsulation strategy to use in the new component.
|
|
*/
|
|
viewEncapsulation?: ViewEncapsulation;
|
|
}
|
|
/**
|
|
* The change detection strategy to use in the new component.
|
|
*/
|
|
export declare enum ChangeDetection {
|
|
Default = "Default",
|
|
OnPush = "OnPush"
|
|
}
|
|
/**
|
|
* The file extension or preprocessor to use for style files, or 'none' to skip generating
|
|
* the style file.
|
|
*/
|
|
export declare enum SchematicsAngularComponentStyle {
|
|
Css = "css",
|
|
Less = "less",
|
|
None = "none",
|
|
Sass = "sass",
|
|
Scss = "scss"
|
|
}
|
|
/**
|
|
* Creates a new, generic directive definition in the given project.
|
|
*/
|
|
export interface AngularDirectiveOptionsSchema {
|
|
/**
|
|
* The declaring NgModule exports this directive.
|
|
*/
|
|
export?: boolean;
|
|
/**
|
|
* When true (the default), creates the new files at the top level of the current project.
|
|
*/
|
|
flat?: boolean;
|
|
/**
|
|
* The declaring NgModule.
|
|
*/
|
|
module?: string;
|
|
/**
|
|
* The name of the new directive.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the interface that defines the directive, relative to the
|
|
* workspace root.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* A prefix to apply to generated selectors.
|
|
*/
|
|
prefix?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* The HTML selector to use for this directive.
|
|
*/
|
|
selector?: string;
|
|
/**
|
|
* Do not import this directive into the owning NgModule.
|
|
*/
|
|
skipImport?: boolean;
|
|
/**
|
|
* Do not create "spec.ts" test files for the new class.
|
|
*/
|
|
skipTests?: boolean;
|
|
/**
|
|
* Whether the generated directive is standalone.
|
|
*/
|
|
standalone?: boolean;
|
|
}
|
|
/**
|
|
* Generates a new, generic enum definition in the given project.
|
|
*/
|
|
export interface AngularEnumOptionsSchema {
|
|
/**
|
|
* The name of the enum.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the enum definition, relative to the current workspace.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* The name of the project in which to create the enum. Default is the configured default
|
|
* project for the workspace.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* Adds a developer-defined type to the filename, in the format "name.type.ts".
|
|
*/
|
|
type?: string;
|
|
}
|
|
/**
|
|
* Generates a new, generic route guard definition in the given project.
|
|
*/
|
|
export interface AngularGuardOptionsSchema {
|
|
/**
|
|
* When true (the default), creates the new files at the top level of the current project.
|
|
*/
|
|
flat?: boolean;
|
|
/**
|
|
* Specifies whether to generate a guard as a function.
|
|
*/
|
|
functional?: boolean;
|
|
/**
|
|
* Specifies which type of guard to create.
|
|
*/
|
|
implements?: Implement[];
|
|
/**
|
|
* The name of the new route guard.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the interface that defines the guard, relative to the current
|
|
* workspace.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* Do not create "spec.ts" test files for the new guard.
|
|
*/
|
|
skipTests?: boolean;
|
|
}
|
|
export declare enum Implement {
|
|
CanActivate = "CanActivate",
|
|
CanActivateChild = "CanActivateChild",
|
|
CanDeactivate = "CanDeactivate",
|
|
CanMatch = "CanMatch"
|
|
}
|
|
/**
|
|
* Creates a new, generic interceptor definition in the given project.
|
|
*/
|
|
export interface AngularInterceptorOptionsSchema {
|
|
/**
|
|
* When true (the default), creates files at the top level of the project.
|
|
*/
|
|
flat?: boolean;
|
|
/**
|
|
* Creates the interceptor as a `HttpInterceptorFn`.
|
|
*/
|
|
functional?: boolean;
|
|
/**
|
|
* The name of the interceptor.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the interceptor, relative to the workspace root.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* Do not create "spec.ts" test files for the new interceptor.
|
|
*/
|
|
skipTests?: boolean;
|
|
}
|
|
/**
|
|
* Creates a new, generic interface definition in the given project.
|
|
*/
|
|
export interface AngularInterfaceOptionsSchema {
|
|
/**
|
|
* The name of the interface.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the interface, relative to the workspace root.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* A prefix to apply to generated selectors.
|
|
*/
|
|
prefix?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* Adds a developer-defined type to the filename, in the format "name.type.ts".
|
|
*/
|
|
type?: string;
|
|
}
|
|
/**
|
|
* Creates a new, generic library project in the current workspace.
|
|
*/
|
|
export interface LibraryOptionsSchema {
|
|
/**
|
|
* The path at which to create the library's public API file, relative to the workspace root.
|
|
*/
|
|
entryFile?: string;
|
|
/**
|
|
* The name of the library.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* A prefix to apply to generated selectors.
|
|
*/
|
|
prefix?: string;
|
|
/**
|
|
* The root directory of the new library.
|
|
*/
|
|
projectRoot?: string;
|
|
/**
|
|
* Do not install dependency packages.
|
|
*/
|
|
skipInstall?: boolean;
|
|
/**
|
|
* Do not add dependencies to the "package.json" file.
|
|
*/
|
|
skipPackageJson?: boolean;
|
|
/**
|
|
* Do not update "tsconfig.json" to add a path mapping for the new library. The path mapping
|
|
* is needed to use the library in an app, but can be disabled here to simplify development.
|
|
*/
|
|
skipTsConfig?: boolean;
|
|
/**
|
|
* Creates a library based upon the standalone API, without NgModules.
|
|
*/
|
|
standalone?: boolean;
|
|
}
|
|
/**
|
|
* Creates a new project by combining the workspace and application schematics.
|
|
*/
|
|
export interface AngularNgNewOptionsSchema {
|
|
/**
|
|
* Initial git repository commit information.
|
|
*/
|
|
commit?: CommitUnion;
|
|
/**
|
|
* Create a new initial application project in the 'src' folder of the new workspace. When
|
|
* false, creates an empty workspace with no initial application. You can then use the
|
|
* generate application command so that all applications are created in the projects folder.
|
|
*/
|
|
createApplication?: boolean;
|
|
/**
|
|
* The directory name to create the workspace in.
|
|
*/
|
|
directory?: string;
|
|
/**
|
|
* Include styles inline in the component TS file. By default, an external styles file is
|
|
* created and referenced in the component TypeScript file.
|
|
*/
|
|
inlineStyle?: boolean;
|
|
/**
|
|
* Include template inline in the component TS file. By default, an external template file
|
|
* is created and referenced in the component TypeScript file.
|
|
*/
|
|
inlineTemplate?: boolean;
|
|
/**
|
|
* Link the CLI to the global version (internal development only).
|
|
*/
|
|
linkCli?: boolean;
|
|
/**
|
|
* Create a workspace without any testing frameworks. (Use for learning purposes only.)
|
|
*/
|
|
minimal?: boolean;
|
|
/**
|
|
* The name of the new workspace and initial project.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path where new projects will be created, relative to the new workspace root.
|
|
*/
|
|
newProjectRoot?: string;
|
|
/**
|
|
* The package manager used to install dependencies.
|
|
*/
|
|
packageManager?: PackageManager;
|
|
/**
|
|
* The prefix to apply to generated selectors for the initial project.
|
|
*/
|
|
prefix?: string;
|
|
/**
|
|
* Enable routing in the initial project.
|
|
*/
|
|
routing?: boolean;
|
|
/**
|
|
* Do not initialize a git repository.
|
|
*/
|
|
skipGit?: boolean;
|
|
/**
|
|
* Do not install dependency packages.
|
|
*/
|
|
skipInstall?: boolean;
|
|
/**
|
|
* Do not generate "spec.ts" test files for the new project.
|
|
*/
|
|
skipTests?: boolean;
|
|
/**
|
|
* Creates an application with Server-Side Rendering (SSR) and Static Site Generation
|
|
* (SSG/Prerendering) enabled.
|
|
*/
|
|
ssr?: boolean;
|
|
/**
|
|
* Creates an application based upon the standalone API, without NgModules.
|
|
*/
|
|
standalone?: boolean;
|
|
/**
|
|
* Creates a workspace with stricter type checking and stricter bundle budgets settings.
|
|
* This setting helps improve maintainability and catch bugs ahead of time. For more
|
|
* information, see https://angular.io/guide/strict-mode
|
|
*/
|
|
strict?: boolean;
|
|
/**
|
|
* The file extension or preprocessor to use for style files.
|
|
*/
|
|
style?: SchematicsAngularApplicationStyle;
|
|
/**
|
|
* The version of the Angular CLI to use.
|
|
*/
|
|
version: string;
|
|
/**
|
|
* The view encapsulation strategy to use in the initial project.
|
|
*/
|
|
viewEncapsulation?: ViewEncapsulation;
|
|
}
|
|
/**
|
|
* Initial git repository commit information.
|
|
*/
|
|
export type CommitUnion = boolean | CommitObject;
|
|
export interface CommitObject {
|
|
email: string;
|
|
message?: string;
|
|
name: string;
|
|
[property: string]: any;
|
|
}
|
|
/**
|
|
* Creates a new, generic pipe definition in the given project.
|
|
*/
|
|
export interface AngularPipeOptionsSchema {
|
|
/**
|
|
* The declaring NgModule exports this pipe.
|
|
*/
|
|
export?: boolean;
|
|
/**
|
|
* When true (the default) creates files at the top level of the project.
|
|
*/
|
|
flat?: boolean;
|
|
/**
|
|
* The declaring NgModule.
|
|
*/
|
|
module?: string;
|
|
/**
|
|
* The name of the pipe.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the pipe, relative to the workspace root.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* Do not import this pipe into the owning NgModule.
|
|
*/
|
|
skipImport?: boolean;
|
|
/**
|
|
* Do not create "spec.ts" test files for the new pipe.
|
|
*/
|
|
skipTests?: boolean;
|
|
/**
|
|
* Whether the generated pipe is standalone.
|
|
*/
|
|
standalone?: boolean;
|
|
}
|
|
/**
|
|
* Generates a new, generic resolver definition in the given project.
|
|
*/
|
|
export interface AngularResolverOptionsSchema {
|
|
/**
|
|
* When true (the default), creates the new files at the top level of the current project.
|
|
*/
|
|
flat?: boolean;
|
|
/**
|
|
* Creates the resolver as a `ResolveFn`.
|
|
*/
|
|
functional?: boolean;
|
|
/**
|
|
* The name of the new resolver.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the interface that defines the resolver, relative to the
|
|
* current workspace.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* Do not create "spec.ts" test files for the new resolver.
|
|
*/
|
|
skipTests?: boolean;
|
|
}
|
|
/**
|
|
* Creates a new, generic service definition in the given project.
|
|
*/
|
|
export interface AngularServiceOptionsSchema {
|
|
/**
|
|
* When true (the default), creates files at the top level of the project.
|
|
*/
|
|
flat?: boolean;
|
|
/**
|
|
* The name of the service.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the service, relative to the workspace root.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* Do not create "spec.ts" test files for the new service.
|
|
*/
|
|
skipTests?: boolean;
|
|
}
|
|
/**
|
|
* Creates a new, generic web worker definition in the given project.
|
|
*/
|
|
export interface AngularWebWorkerOptionsSchema {
|
|
/**
|
|
* The name of the worker.
|
|
*/
|
|
name: string;
|
|
/**
|
|
* The path at which to create the worker file, relative to the current workspace.
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* The name of the project.
|
|
*/
|
|
project: string;
|
|
/**
|
|
* Add a worker creation snippet in a sibling file of the same name.
|
|
*/
|
|
snippet?: boolean;
|
|
}
|