feat: unify hooks installs and webhooks
This commit is contained in:
30
src/hooks/installs.ts
Normal file
30
src/hooks/installs.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import type { ClawdbotConfig } from "../config/config.js";
|
||||
import type { HookInstallRecord } from "../config/types.hooks.js";
|
||||
|
||||
export type HookInstallUpdate = HookInstallRecord & { hookId: string };
|
||||
|
||||
export function recordHookInstall(cfg: ClawdbotConfig, update: HookInstallUpdate): ClawdbotConfig {
|
||||
const { hookId, ...record } = update;
|
||||
const installs = {
|
||||
...cfg.hooks?.internal?.installs,
|
||||
[hookId]: {
|
||||
...cfg.hooks?.internal?.installs?.[hookId],
|
||||
...record,
|
||||
installedAt: record.installedAt ?? new Date().toISOString(),
|
||||
},
|
||||
};
|
||||
|
||||
return {
|
||||
...cfg,
|
||||
hooks: {
|
||||
...cfg.hooks,
|
||||
internal: {
|
||||
...cfg.hooks?.internal,
|
||||
installs: {
|
||||
...installs,
|
||||
[hookId]: installs[hookId],
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user