@nlighten/json-transform-core
Version:
Core types and utilities for handling JSON transformers
45 lines • 2.22 kB
TypeScript
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