///
import { cell, derive, pattern, patternTool, type PatternToolResult } from "commontools";
const multiplier = cell(2);
const offset = cell(10);
type Output = {
tool: PatternToolResult<{ offset: number }>;
};
// Test: patternTool with an existing extraParam, and a new capture
// The function has { value: number, offset: number } as input type
// We provide offset via extraParams, and the transformer should capture multiplier
export default pattern, Output>(() => {
const tool = patternTool(
({ value, offset }: { value: number; offset: number }) => {
return derive({ value, offset }, ({ value, offset }) => {
return value * multiplier.get() + offset;
});
},
{ offset },
);
return { tool };
});