@asimojs/asimo
Version:
Asynchronous dependency manager for Typescript projects
22 lines (17 loc) • 657 B
text/typescript
import { asm, interfaceId } from "../asimo";
export interface Multiplier {
numberOfCalls: number;
multiply(a: number, b?: number): number;
}
export class _MultiplierImpl implements Multiplier {
defaultArg = 2;
numberOfCalls = 0;
multiply(a: number, b?: number) {
b = (b === undefined) ? this.defaultArg : b;
this.numberOfCalls++;
return a * b;
}
}
// NB: interface and registration should be defined in separate files to benefit from on-demand module load
export const MultiplierIID = interfaceId<Multiplier>("asimo.src.tests.Multiplier");
asm.registerFactory(MultiplierIID, () => new _MultiplierImpl());