@ibyar/expressions
Version:
Aurora expression, an template expression and evaluation, An 100% spec compliant ES2022 JavaScript toolchain,
123 lines • 5.5 kB
TypeScript
import type { NodeDeserializer, ExpressionNode, ExpressionEventPath, VisitNodeType, SourceLocation } from '../expression.js';
import type { ModuleScope } from '../../scope/scope.js';
import type { Stack } from '../../scope/stack.js';
import { AbstractExpressionNode } from '../abstract.js';
import { Identifier, Literal } from '../definition/values.js';
import { ImportAttribute, ModuleSpecifier } from './common.js';
/**
* An imported variable binding,
*
* e.g., {foo} in import {foo} from "mod"
* or {foo as bar} in import {foo as bar} from "mod".
*
* The imported field refers to the name of the export imported from the module.
*
* The local field refers to the binding imported into the local module scope.
*
* If it is a basic named import, such as in import {foo} from "mod",
* both imported and local are equivalent Identifier nodes; in this case an Identifier node representing foo.
*
* If it is an aliased import, such as in import {foo as bar} from "mod",
* the imported field is an Identifier node representing foo,
* and the local field is an Identifier node representing bar.
*/
export declare class ImportSpecifier extends ModuleSpecifier {
private imported;
static fromJSON(node: ImportSpecifier, deserializer: NodeDeserializer): ImportSpecifier;
static visit(node: ImportSpecifier, visitNode: VisitNodeType): void;
constructor(local: Identifier, imported: Identifier, range?: [number, number], loc?: SourceLocation);
getImported(): Identifier;
getImportedName(): string | number;
set(stack: Stack, value: any): void;
get(stack: Stack, thisContext?: any): void;
dependency(computed?: true): ExpressionNode[];
dependencyPath(computed?: true): ExpressionEventPath[];
toString(): string;
toJson(): object;
}
/**
* A default import specifier, e.g., `foo` in `import foo from "mod.js";`.
*/
export declare class ImportDefaultSpecifier extends ModuleSpecifier {
static fromJSON(node: ImportDefaultSpecifier, deserializer: NodeDeserializer): ImportDefaultSpecifier;
static visit(node: ImportDefaultSpecifier, visitNode: VisitNodeType): void;
set(stack: Stack, value: any): void;
get(stack: Stack, thisContext?: any): void;
dependency(computed?: true): ExpressionNode[];
dependencyPath(computed?: true): ExpressionEventPath[];
toString(): string;
}
/**
* A namespace import specifier, e.g., `* as foo` in `import * as foo from "mod.js";`.
*/
export declare class ImportNamespaceSpecifier extends ModuleSpecifier {
static fromJSON(node: ImportNamespaceSpecifier, deserializer: NodeDeserializer): ImportNamespaceSpecifier;
static visit(node: ImportNamespaceSpecifier, visitNode: VisitNodeType): void;
set(stack: Stack, value: any): void;
get(stack: Stack, thisContext?: any): void;
dependency(computed?: true): ExpressionNode[];
dependencyPath(computed?: true): ExpressionEventPath[];
toString(): string;
}
/**
* An import declaration, e.g., import foo from "mod";.
*
* import defaultExport from "module-name";
*
* import * as name from "module-name";
*
* import { export1 } from "module-name";
*
* import { export1 as alias1 } from "module-name";
*
* import { export1 , export2 } from "module-name";
*
* import { foo , bar } from "module-name/path/to/specific/un-exported/file";
*
* import { export1 , export2 as alias2 , [...] } from "module-name";
*
* import defaultExport, { export1 [ , [...] ] } from "module-name";
*
* import defaultExport, * as name from "module-name";
*
* import "module-name";
*
*/
export declare class ImportDeclaration extends AbstractExpressionNode {
private source;
private specifiers?;
private attributes?;
static fromJSON(node: ImportDeclaration, deserializer: NodeDeserializer): ImportDeclaration;
static visit(node: ImportDeclaration, visitNode: VisitNodeType): void;
constructor(source: Literal<string>, specifiers?: (ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier)[] | undefined, attributes?: ImportAttribute[] | undefined, range?: [number, number], loc?: SourceLocation);
getSource(): Literal<string>;
getSpecifiers(): (ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier)[] | undefined;
getAttributes(): ImportAttribute[] | undefined;
set(stack: Stack): void;
get(stack: Stack): void;
dependency(computed?: true): ExpressionNode[];
dependencyPath(computed?: true): ExpressionEventPath[];
toString(): string;
toJson(): object;
}
/**
* `ImportExpression` node represents Dynamic Imports such as `import(source)`.
* The `source` property is the importing source as similar to ImportDeclaration node,
* but it can be an arbitrary expression node.
* var promise = import("module-name");
*/
export declare class ImportExpression extends AbstractExpressionNode {
private source;
private attributes?;
static fromJSON(node: ImportExpression, deserializer: NodeDeserializer): ImportExpression;
static visit(node: ImportExpression, visitNode: VisitNodeType): void;
constructor(source: Literal<string>, attributes?: ExpressionNode | undefined, range?: [number, number], loc?: SourceLocation);
getSource(): Literal<string>;
set(stack: Stack): void;
get(stack: Stack): Promise<ModuleScope>;
dependency(computed?: true): ExpressionNode[];
dependencyPath(computed?: true): ExpressionEventPath[];
toString(): string;
toJson(): object;
}
//# sourceMappingURL=import.d.ts.map