import { type Pattern } from "acorn"; import type { DeepOmit } from "./src/utils/deepOmit.js"; /** * Options for `parseParamNamesFromString` and `parseParamNamesFromFunction`. */ export type Options = { /** * If true, the identifier for assignment expressions will be returned, instead of the entire parameter expression. * * @example With `returnIdentifierForParamAssignmentExpressions` set to `true`: * ```ts * import { assertEquals } from "@std/assert"; * import { parseParamNamesFromString } from "@bcheidemann/parse-params"; * * const params = parseParamNamesFromString( * "function example(arg0 = 'default') {}", * { returnIdentifierForParamAssignmentExpressions: true } * ); * * assertEquals(params[0], "arg0"); * ``` * * @example With `returnIdentifierForParamAssignmentExpressions` set to `false`: * ```ts * import { assertEquals } from "@std/assert"; * import { parseParamNamesFromString } from "@bcheidemann/parse-params"; * * const params = parseParamNamesFromString( * "function example(arg0 = 'default') {}", * { returnIdentifierForParamAssignmentExpressions: false }, * ); * * assertEquals(params[0], "arg0 = 'default'"); * ``` * * @default false */ returnIdentifierForParamAssignmentExpressions?: boolean; }; /** * The parameter node */ export type ParamNode = DeepOmit & { /** * The raw text of the parameter. */ rawText: string; }; /** * Parses the parameters for the provided function reference. * * @example * ```ts * import { assertEquals } from "@std/assert"; * import { parseParamNamesFromFunction } from "@bcheidemann/parse-params"; * * function example(arg0: string) {} * * const params = parseParamNamesFromFunction(example); * * assertEquals(params[0], "arg0"); * ``` * * @param fn The function for which to parse the parameters * @returns Array of stringified parameters */ export declare function parseParamNamesFromFunction(fn: (...args: any[]) => any, options?: Options): string[]; /** * Parses the parameter AST nodes for the provided function reference. * * @example * ```ts * import { assertEquals } from "@std/assert"; * import { parseParamNodesFromFunction } from "@bcheidemann/parse-params"; * * function example(arg0: string) {} * * const params = parseParamNodesFromFunction(example); * * assertEquals(params[0], { type: "Identifier", name: "arg0" }); * ``` * * @param fn The function for which to parse the parameters * @returns Array of parameter AST nodes */ export declare function parseParamNodesFromFunction(fn: (...args: any[]) => any): ParamNode[]; /** * Parses the parameters for the provided stringified function. * * @example * ```ts * import { assertEquals } from "@std/assert"; * import { parseParamNamesFromString } from "@bcheidemann/parse-params"; * * function example(arg0: string) {} * * const params = parseParamNamesFromString(example.toString()); * * assertEquals(params[0], "arg0"); * ``` * * @param fn The stringified function for which to parse the parameters * @returns Array of stringified parameters */ export declare function parseParamNamesFromString(fn: string, options?: Options): string[]; /** * Converts a function parameter node into it's name. * * @param param The parameter node * @param options * @returns The parameter name */ export declare function paramNodeToParamName(param: ParamNode, options?: Options): string; /** * Parses the parameter AST nodes for the provided stringified function. * * @example * ```ts * import { assertEquals } from "@std/assert"; * import { parseParamNodesFromString } from "@bcheidemann/parse-params"; * * function example(arg0: string) {} * * const params = parseParamNodesFromString(example.toString()); * * assertEquals(params[0], { type: "Identifier", name: "arg0" }); * ``` * * @param fn The stringified function for which to parse the parameters * @returns Array of parameter AST nodes */ export declare function parseParamNodesFromString(fn: string): ParamNode[]; //# sourceMappingURL=mod.d.ts.map