UNPKG

ppu-ocv

Version:

A type-safe, modular, chainable image processing library built on top of OpenCV.js with a fluent API leveraging pipeline processing.

1 lines 946 B
export class OperationRegistry{operations=new Map;defaultOptions=new Map;register(name,operation,defaultOptions){this.operations.set(name,operation);if(defaultOptions){this.defaultOptions.set(name,defaultOptions)}}getOperation(name){return this.operations.get(name)}getDefaultOptionsGenerator(name){return this.defaultOptions.get(name)||{}}hasOperation(name){return this.operations.has(name)}getOperationNames(){return Array.from(this.operations.keys())}}export let registry=new OperationRegistry;export function executeOperation(operationName,img,options){let operation=registry.getOperation(operationName);if(!operation){throw new Error(`Operation "${operationName}" not found in registry`)}let maybeGenerator=registry.getDefaultOptionsGenerator(operationName);let defaultOptionsGenerator=typeof maybeGenerator==="function"?maybeGenerator:()=>({});let mergedOptions={...defaultOptionsGenerator(),...options};return operation(img,mergedOptions)}