Sample module definition
TypeScript entry point pattern used by first-party modules in modules/.
import type { ModuleContext, ModuleDefinition, ModuleManifest } from '@avanora/module-sdk';
import manifestJson from '../module.manifest.json';
const manifest = manifestJson as unknown as ModuleManifest;
export const definition: ModuleDefinition = {
manifest,
lifecycle: {
install: async (ctx: ModuleContext) => {
await ctx.audit.log({ action: 'module.install', moduleKey: manifest.key });
},
upgrade: async (ctx: ModuleContext, fromVersion: string) => {
await ctx.migrations.run({ fromVersion });
},
uninstall: async (_ctx: ModuleContext) => {},
},
};