diff --git a/etc/api/BUILD b/etc/api/BUILD index fb66f90a6a..3e8f83d9be 100644 --- a/etc/api/BUILD +++ b/etc/api/BUILD @@ -30,6 +30,8 @@ load("@angular//tools/ts-api-guardian:index.bzl", "ts_api_guardian_test") # We don't want to analyse these exports nor add them to the golden files # in most cases it's because Ts API Guardian doesn't support Symbol Aliases. strip_export_pattern = [ + # @angular-devkit/architect + "^BuilderProgressState$", # @angular-devkit/schematics "^workflow$", "^formats$", diff --git a/etc/api/angular_devkit/architect/src/_golden-api.d.ts b/etc/api/angular_devkit/architect/src/_golden-api.d.ts deleted file mode 100644 index 5b09b41068..0000000000 --- a/etc/api/angular_devkit/architect/src/_golden-api.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export declare class Architect { - constructor(_host: ArchitectHost, _registry?: json.schema.SchemaRegistry, additionalJobRegistry?: experimental.jobs.Registry); - has(name: experimental.jobs.JobName): Observable; - scheduleBuilder(name: string, options: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise; - scheduleTarget(target: Target, overrides?: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise; -} - -export declare function createBuilder(fn: BuilderHandlerFn): Builder; - -export interface ScheduleOptions { - analytics?: analytics.Analytics; - logger?: logging.Logger; -} diff --git a/etc/api/angular_devkit/architect/src/index.d.ts b/etc/api/angular_devkit/architect/src/index.d.ts new file mode 100644 index 0000000000..db5ff0a7f9 --- /dev/null +++ b/etc/api/angular_devkit/architect/src/index.d.ts @@ -0,0 +1,89 @@ +export declare class Architect { + constructor(_host: ArchitectHost, _registry?: json.schema.SchemaRegistry, additionalJobRegistry?: experimental.jobs.Registry); + has(name: experimental.jobs.JobName): Observable; + scheduleBuilder(name: string, options: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise; + scheduleTarget(target: Target, overrides?: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise; +} + +export interface BuilderContext { + readonly analytics: analytics.Analytics; + builder: BuilderInfo; + currentDirectory: string; + id: number; + logger: logging.LoggerApi; + target?: Target; + workspaceRoot: string; + addTeardown(teardown: () => (Promise | void)): void; + getBuilderNameForTarget(target: Target): Promise; + getTargetOptions(target: Target): Promise; + reportProgress(current: number, total?: number, status?: string): void; + reportRunning(): void; + reportStatus(status: string): void; + scheduleBuilder(builderName: string, options?: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise; + scheduleTarget(target: Target, overrides?: json.JsonObject, scheduleOptions?: ScheduleOptions): Promise; + validateOptions(options: json.JsonObject, builderName: string): Promise; +} + +export interface BuilderHandlerFn { + (input: A, context: BuilderContext): BuilderOutputLike; +} + +export declare type BuilderInfo = json.JsonObject & { + builderName: string; + description: string; + optionSchema: json.schema.JsonSchema; +}; + +export declare type BuilderInput = json.JsonObject & RealBuilderInput; + +export declare type BuilderOutput = json.JsonObject & RealBuilderOutput; + +export declare type BuilderOutputLike = Observable | Promise | BuilderOutput; + +export declare type BuilderProgress = json.JsonObject & RealBuilderProgress & TypedBuilderProgress; + +export declare type BuilderProgressReport = BuilderProgress & ({ + target?: Target; + builder: BuilderInfo; +}); + +export declare type BuilderRegistry = experimental.jobs.Registry; + +export interface BuilderRun { + id: number; + info: BuilderInfo; + output: Observable; + progress: Observable; + result: Promise; + stop(): Promise; +} + +export declare function createBuilder(fn: BuilderHandlerFn): Builder; + +export interface ScheduleOptions { + analytics?: analytics.Analytics; + logger?: logging.Logger; +} + +export declare function scheduleTargetAndForget(context: BuilderContext, target: Target, overrides?: json.JsonObject, scheduleOptions?: ScheduleOptions): Observable; + +export declare type Target = json.JsonObject & RealTarget; + +export declare function targetFromTargetString(str: string): Target; + +export declare function targetStringFromTarget({ project, target, configuration }: Target): string; + +export declare type TypedBuilderProgress = ({ + state: BuilderProgressState.Stopped; +} | { + state: BuilderProgressState.Error; + error: json.JsonValue; +} | { + state: BuilderProgressState.Waiting; + status?: string; +} | { + state: BuilderProgressState.Running; + status?: string; + current: number; + total?: number; +}); diff --git a/packages/angular_devkit/architect/src/_golden-api.d.ts b/packages/angular_devkit/architect/src/_golden-api.d.ts deleted file mode 100644 index 759ed24866..0000000000 --- a/packages/angular_devkit/architect/src/_golden-api.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @license - * Copyright Google Inc. 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 - */ -export { Architect, ScheduleOptions } from './architect'; -export { createBuilder } from './create-builder';