From 1b30de32b5fc55a89f38505aea10abbf04cc026e Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Thu, 23 Apr 2026 23:56:48 +0100 Subject: [PATCH] feat(base-formula): add function registry register helper --- packages/base-formula/src/functions/registry.ts | 7 +++++++ packages/base-formula/src/index.server.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/base-formula/src/functions/registry.ts b/packages/base-formula/src/functions/registry.ts index c4e18248d..16adc63b6 100644 --- a/packages/base-formula/src/functions/registry.ts +++ b/packages/base-formula/src/functions/registry.ts @@ -12,3 +12,10 @@ export type FormulaFn = { }; export const registry: Map = new Map(); + +export function register(fn: FormulaFn): void { + if (registry.has(fn.name)) { + throw new Error(`Duplicate formula function: ${fn.name}`); + } + registry.set(fn.name, fn); +} diff --git a/packages/base-formula/src/index.server.ts b/packages/base-formula/src/index.server.ts index 4e5037118..4dcc81e51 100644 --- a/packages/base-formula/src/index.server.ts +++ b/packages/base-formula/src/index.server.ts @@ -7,6 +7,6 @@ export * from "./parser"; export * from "./resolver"; export * from "./typecheck"; export * from "./format"; -export { registry } from "./functions/registry"; +export { registry, register } from "./functions/registry"; export type { FormulaFn } from "./functions/registry"; export * from "./graph";