init
This commit is contained in:
commit
d295c7f139
1527 files changed
+270726
No files matched your search
@@ -0,0 +1,21 @@
|
||||
// Zero-network smoke test: the entry imports cleanly and exposes only valid
|
||||
// hooks that match the manifest. Run by `plugins.mjs add` + the registry CI.
|
||||
import assert from 'node:assert';
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import path from 'node:path';
|
||||
|
||||
const here = path.dirname(fileURLToPath(import.meta.url));
|
||||
const KINDS = ['provider', 'ingest', 'search', 'notify', 'export'];
|
||||
|
||||
const manifest = JSON.parse(readFileSync(path.join(here, '..', 'manifest.json'), 'utf8'));
|
||||
const mod = await import(path.join(here, '..', manifest.entry || 'index.mjs'));
|
||||
const hooks = mod.default;
|
||||
|
||||
assert(hooks && typeof hooks === 'object', 'default export must be an object of hooks');
|
||||
const keys = Object.keys(hooks);
|
||||
assert(keys.length > 0, 'declare at least one hook');
|
||||
for (const k of keys) assert(KINDS.includes(k), `unknown hook "${k}"`);
|
||||
for (const h of manifest.hooks) assert(keys.includes(h), `manifest declares hook "${h}" but index.mjs does not export it`);
|
||||
|
||||
console.log('✓ smoke ok:', keys.join(', '));
|
||||
Reference in new issue
Block a user