UNPKG

opnet-transform-web

Version:

OP_NET AssemblyScript transformer

41 lines (40 loc) 1.68 kB
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; }