UNPKG

@nlighten/json-transform-core

Version:

Core types and utilities for handling JSON transformers

45 lines 2.22 kB
import { FunctionDefinition, FunctionDescriptor } from "./types"; import { HandleFunctionMethod } from "../ParseContext"; import { TokenizedInlineFunction } from "./tokenizeInlineFunction"; type ObjectFunctionMatchResult = { name: string; func: FunctionDescriptor; value: any; args: Record<string, any>; }; export declare const getFunctionInlineSignature: (name: string, func: FunctionDescriptor, requiredOnly?: boolean) => string; export declare const getFunctionObjectSignature: (name: string, func: FunctionDescriptor) => string; declare class FunctionsParser { private clientFunctions; private allFunctionsNames; private objectFunctionRegex; private inlineFunctionRegex; private clientDocsUrlResolver; handleClientFunction?: HandleFunctionMethod; /** * Match Groups: DO NOT CHANGE * 0 - Everything * 1 - Function name (no $$) * 2 - Args with parenthesis * 3 - Args without parenthesis * 4 - Colon (or something else) * 5 - What comes after the colon (value) -- only when 'noArgs' = false */ private inlineFunctionRegexFactory; private objectFunctionRegexFactory; constructor(); setClientFunctions(clientFunctions: Record<string, FunctionDefinition>, handler?: HandleFunctionMethod, docsUrlResolver?: (funcName: string) => string): void; get(name: string, args?: Record<string, any>): FunctionDescriptor; getNames(): Set<string>; resolveDocsUrl(funcName: string, functionDescriptor?: FunctionDescriptor): string; matchInline(data: any, callback?: (funcName: string, func: FunctionDescriptor, value: any, args: Record<string, any>) => any): FunctionDescriptor | null; matchObject(data: any, extractOutputTypeRecursively?: boolean): ObjectFunctionMatchResult | undefined; matchAllObjectFunctionsInLine(line: string): IterableIterator<RegExpExecArray>; matchAllInlineFunctionsInLine(line: string): ({ index: number; } & TokenizedInlineFunction)[]; } export declare const functionsParser: FunctionsParser; export declare const getSubfunction: (func: FunctionDescriptor, args?: Record<string, any>) => FunctionDescriptor; export {}; //# sourceMappingURL=functionsParser.d.ts.map