mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
This commit adds the `AstHost` interface, along with implementations for both Babel and TS. It also implements the Babel vesion of the `AstFactory` interface, along with a linker specific implementation of the `ImportGenerator` interface. These classes will be used by the new "ng-linker" to transform prelinked library code using a Babel plugin. PR Close #38866
18 lines
593 B
TypeScript
18 lines
593 B
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 {FatalLinkerError} from '../fatal_linker_error';
|
|
|
|
/**
|
|
* Assert that the given `node` is of the type guarded by the `predicate` function.
|
|
*/
|
|
export function assert<T, K extends T>(
|
|
node: T, predicate: (node: T) => node is K, expected: string): asserts node is K {
|
|
if (!predicate(node)) {
|
|
throw new FatalLinkerError(node, `Unsupported syntax, expected ${expected}.`);
|
|
}
|
|
}
|