magicast
Version:
Modify a JS/TS file and write back magically just like JSON!
57 lines (56 loc) • 2.97 kB
TypeScript
import { C as ProxifiedObject, D as CodeFormatOptions, E as ProxyType, O as detectCodeFormat, S as ProxifiedNewExpression, T as ProxyBase, _ as ProxifiedImportItem, a as Token, b as ProxifiedMemberExpression, c as Proxified, d as ProxifiedAwaitExpression, f as ProxifiedBinaryExpression, g as ProxifiedIdentifier, h as ProxifiedFunctionExpression, i as ParsedFileNode, k as Options, l as ProxifiedArray, m as ProxifiedFunctionCall, n as GenerateOptions, o as BinaryOperator, p as ProxifiedBlockStatement, r as Loc, s as ImportItemInput, t as ASTNode, u as ProxifiedArrowFunctionExpression, v as ProxifiedImportsMap, w as ProxifiedValue, x as ProxifiedModule, y as ProxifiedLogicalExpression } from "./types-D5FmR3uJ.js";
//#region src/code.d.ts
declare function parseModule<Exports extends object = any>(code: string, options?: Options): ProxifiedModule<Exports>;
declare function parseExpression<T>(code: string, options?: Options): Proxified<T>;
declare function generateCode(node: {
$ast: ASTNode;
} | ASTNode | ProxifiedModule<any>, options?: GenerateOptions): {
code: string;
map?: any;
};
//#endregion
//#region src/error.d.ts
interface MagicastErrorOptions {
ast?: ASTNode;
code?: string;
}
declare class MagicastError extends Error {
rawMessage: string;
options?: MagicastErrorOptions;
constructor(message: string, options?: MagicastErrorOptions);
}
//#endregion
//#region src/builders.d.ts
declare const builders: {
/**
* Create a function call node.
*/
functionCall(callee: string, ...args: any[]): Proxified;
/**
* Create a new expression node.
*/
newExpression(callee: string, ...args: any[]): Proxified;
/**
* Create a binary expression node.
*/
binaryExpression(left: any, operator: "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "&" | "|" | "^" | "in" | "instanceof" | "**", right: any): Proxified;
/**
* Create an await expression node.
*/
awaitExpression(argument: any): Proxified;
/**
* Create a proxified version of a literal value.
*/
literal(value: any): Proxified;
/**
* Parse a raw expression and return a proxified version of it.
*
* ```ts
* const obj = builders.raw("{ foo: 1 }");
* console.log(obj.foo); // 1
* ```
*/
raw(code: string): Proxified;
};
//#endregion
export { ASTNode, BinaryOperator, CodeFormatOptions, GenerateOptions, ImportItemInput, Loc, MagicastError, MagicastErrorOptions, ParsedFileNode, Proxified, ProxifiedArray, ProxifiedArrowFunctionExpression, ProxifiedAwaitExpression, ProxifiedBinaryExpression, ProxifiedBlockStatement, ProxifiedFunctionCall, ProxifiedFunctionExpression, ProxifiedIdentifier, ProxifiedImportItem, ProxifiedImportsMap, ProxifiedLogicalExpression, ProxifiedMemberExpression, ProxifiedModule, ProxifiedNewExpression, ProxifiedObject, ProxifiedValue, ProxyBase, ProxyType, Token, builders, detectCodeFormat, generateCode, parseExpression, parseModule };