- Notifications
You must be signed in to change notification settings - Fork3
Snapshots for @angular-devkit/core
License
angular/angular-devkit-core-builds
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This repository is a snapshot of a commit on the original repository. The original code used togenerate this is located athttp://github.com/angular/angular-cli.
We do not accept PRs or Issues opened on this repository. You should not use this over a tested andreleased version of this package.
To test this snapshot in your own project, use
npm install git+https://github.com/angular/angular-devkit-core-builds.git
Shared utilities for Angular DevKit.
export interface SchemaValidatorResult { success: boolean; errors?: string[];}
export interface SchemaValidator { (data: any): Observable<SchemaValidatorResult>;}
export interface SchemaFormatter { readonly async: boolean; validate(data: any): boolean | Observable<boolean>;}
export interface SchemaRegistry { compile(schema: Object): Observable<SchemaValidator>; addFormat(name: string, formatter: SchemaFormatter): void;}
SchemaRegistry
implementation usinghttps://github.com/epoberezkin/ajv.Constructor accepts object containingSchemaFormatter
that will be added automatically.
export class CoreSchemaRegistry implements SchemaRegistry { constructor(formats: { [name: string]: SchemaFormatter} = {}) {}}
Theworkspaces
namespace provides an API for interacting with the workspace file formats.It provides an abstraction of the underlying storage format of the workspace and providessupport for both reading and writing. Currently, the only supported format is the JSON-basedformat used by the Angular CLI. For this format, the API provides internal change tracking of values whichenables fine-grained updates to the underlying storage of the workspace. This allows for theretention of existing formatting and comments.
A workspace is defined via the following object model. Definition collection objects are specializedJavascriptMap
objects with an additionaladd
method to simplify addition and provide more localizederror checking of the newly added values.
exportinterfaceWorkspaceDefinition{readonlyextensions:Record<string,JsonValue|undefined>;readonlyprojects:ProjectDefinitionCollection;}exportinterfaceProjectDefinition{readonlyextensions:Record<string,JsonValue|undefined>;readonlytargets:TargetDefinitionCollection;root:string;prefix?:string;sourceRoot?:string;}exportinterfaceTargetDefinition{options?:Record<string,JsonValue|undefined>;configurations?:Record<string,Record<string,JsonValue|undefined>|undefined>;builder:string;}
The API is asynchronous and has two main functions to facilitate reading, creation, and modifyinga workspace:readWorkspace
andwriteWorkspace
.
exportenumWorkspaceFormat{JSON,}
exportfunctionreadWorkspace(path:string,host:WorkspaceHost,format?:WorkspaceFormat,):Promise<{workspace:WorkspaceDefinition}>;
exportfunctionwriteWorkspace(workspace:WorkspaceDefinition,host:WorkspaceHost,path?:string,format?:WorkspaceFormat,):Promise<void>;
AWorkspaceHost
abstracts the underlying data access methods from the functions. It providesmethods to read, write, and analyze paths. A utility function is provided to createan instance of aWorkspaceHost
from the Angular DevKit's virtual filesystem host abstraction.
exportinterfaceWorkspaceHost{readFile(path:string):Promise<string>;writeFile(path:string,data:string):Promise<void>;isDirectory(path:string):Promise<boolean>;isFile(path:string):Promise<boolean>;}exportfunctioncreateWorkspaceHost(host:virtualFs.Host):WorkspaceHost;
To demonstrate the usage of the API, the following code will show how to add a option propertyto a build target for an application.
import{NodeJsSyncHost}from'@angular-devkit/core/node';import{workspaces}from'@angular-devkit/core';asyncfunctiondemonstrate(){consthost=workspaces.createWorkspaceHost(newNodeJsSyncHost());const{ workspace}=awaitworkspaces.readWorkspace('path/to/workspace/directory/',host);constproject=workspace.projects.get('my-app');if(!project){thrownewError('my-app does not exist');}constbuildTarget=project.targets.get('build');if(!buildTarget){thrownewError('build target does not exist');}buildTarget.options.optimization=true;awaitworkspaces.writeWorkspace(workspace,host);}demonstrate();
About
Snapshots for @angular-devkit/core
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.