@themost/jspa
Version:
MOST Web Framework Persistence API
18 lines (17 loc) • 762 B
TypeScript
import { DataContextBase, DataModelBase } from '@themost/common';
import { ColumnAnnotation } from './Column';
declare interface FormulaArgs {
context: DataContextBase;
model: DataModelBase;
target: any;
}
declare interface FormulaAnnotation {
closure: (event: FormulaArgs) => unknown;
}
declare interface FormulaColumnAnnotation extends ColumnAnnotation {
formula?: FormulaAnnotation;
}
declare type FormulaClosure<T> = (event?: FormulaArgs) => Promise<T>;
declare type FormulaSimpleClosure<T> = (event?: FormulaArgs) => T;
declare function Formula<T>(closure: FormulaClosure<T> | FormulaSimpleClosure<T>): PropertyDecorator;
export { FormulaArgs, FormulaClosure, FormulaSimpleClosure, FormulaAnnotation, FormulaColumnAnnotation, Formula };