opnet-transform-web
Version:
OP_NET AssemblyScript transformer
41 lines (40 loc) • 1.68 kB
TypeScript
import { Transform } from 'assemblyscript/transform';
import { ClassDeclaration, Parser, Program, Statement } from 'assemblyscript/dist/assemblyscript.js';
import { SimpleParser } from '@btc-vision/visitor-as';
import { Logger } from '@btc-vision/logger';
import { ClassABI, MethodCollection } from './interfaces/Abi.js';
declare const logger: Logger;
export { logger, SimpleParser };
export default class OPNetTransformer extends Transform {
protected methodsByClass: Map<string, MethodCollection[]>;
protected classDeclarations: Map<string, ClassDeclaration>;
private allEvents;
private eventsUsedInClass;
private program;
private currentClassName;
private collectingEvent;
private currentEventName;
private isEventClass;
afterParse(parser: Parser): Promise<void>;
afterInitialize(program: Program): void;
protected buildAbiPerClass(): Map<string, ClassABI>;
protected buildDtsForClass(className: string, abiObj: ClassABI): string;
protected buildExecuteMethod(_className: string, methods: MethodCollection[]): string;
protected checkUnusedEvents(): void;
protected visitStatement(stmt: Statement): void;
private visitClassDeclaration;
private visitMethodDeclaration;
private visitFieldDeclaration;
private parseEventConstructor;
private getInternalNameForMethodDeclaration;
private parseDecoratorArgs;
private parseParamDefs;
private parseParamDefinition;
private isParamDefinition;
/**
* Convert a user-supplied type string into our internal ABIDataTypes enum.
*/
private mapToAbiDataType;
private mapAbiTypeToTypescript;
private toPascalCase;
}