mirror of
https://github.com/angular/angular-cli.git
synced 2025-05-17 19:13:34 +08:00
The `_resolveReferenceString` abstract method of the `FileSystemEngineHostBase` class now has a third parameter that provides the collection description of the schematic currently being resolved. This allows the resolver to use any fields/options present within the collection description to adjust the resolution of the schematic. The `encapsulation` optional field is also added to the `FileSystemCollectionDescription` type which will in the future allow control of the `@angular/cli` VM context wrapping on an individual schematic collection basis.
77 lines
2.2 KiB
TypeScript
77 lines
2.2 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* 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 { JsonObject } from '@angular-devkit/core';
|
|
import {
|
|
Collection,
|
|
CollectionDescription,
|
|
Engine,
|
|
EngineHost,
|
|
RuleFactory,
|
|
Schematic,
|
|
SchematicDescription,
|
|
TypedSchematicContext,
|
|
} from '../src';
|
|
|
|
export interface FileSystemCollectionDescription {
|
|
readonly name: string;
|
|
readonly path: string;
|
|
readonly version?: string;
|
|
readonly schematics: { [name: string]: FileSystemSchematicDesc };
|
|
readonly encapsulation?: boolean;
|
|
}
|
|
|
|
export interface FileSystemSchematicJsonDescription {
|
|
readonly aliases?: string[];
|
|
readonly factory: string;
|
|
readonly name: string;
|
|
readonly collection: FileSystemCollectionDescription;
|
|
readonly description: string;
|
|
readonly schema?: string;
|
|
readonly extends?: string;
|
|
}
|
|
|
|
export interface FileSystemSchematicDescription extends FileSystemSchematicJsonDescription {
|
|
// Processed by the EngineHost.
|
|
readonly path: string;
|
|
readonly schemaJson?: JsonObject;
|
|
// Using `any` here is okay because the type isn't resolved when we read this value,
|
|
// but rather when the Engine asks for it.
|
|
readonly factoryFn: RuleFactory<{}>;
|
|
}
|
|
|
|
/**
|
|
* Used to simplify typings.
|
|
*/
|
|
export declare type FileSystemEngine = Engine<
|
|
FileSystemCollectionDescription,
|
|
FileSystemSchematicDescription
|
|
>;
|
|
export declare type FileSystemEngineHost = EngineHost<
|
|
FileSystemCollectionDescription,
|
|
FileSystemSchematicDescription
|
|
>;
|
|
export declare type FileSystemCollection = Collection<
|
|
FileSystemCollectionDescription,
|
|
FileSystemSchematicDescription
|
|
>;
|
|
export declare type FileSystemSchematic = Schematic<
|
|
FileSystemCollectionDescription,
|
|
FileSystemSchematicDescription
|
|
>;
|
|
export declare type FileSystemCollectionDesc =
|
|
CollectionDescription<FileSystemCollectionDescription>;
|
|
export declare type FileSystemSchematicDesc = SchematicDescription<
|
|
FileSystemCollectionDescription,
|
|
FileSystemSchematicDescription
|
|
>;
|
|
export declare type FileSystemSchematicContext = TypedSchematicContext<
|
|
FileSystemCollectionDescription,
|
|
FileSystemSchematicDescription
|
|
>;
|