Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 9x 9x 1x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 18x 1x 1x 1x | import {checkSubject, type PrimitiveDescriptor} from '../engine.ts';
/** `adapter` — the integration point with an external system. */
const adapter: PrimitiveDescriptor = {
id: 'adapter',
title: 'Adapter',
skill: 'blong-adapter',
summary: 'Integration point with an external system (HTTP, TCP, SQL, webhook, …).',
kinds: ['http', 'tcp', 'knex', 'webhook', 'mongodb', 'k8s', 's3', 'mock', 'base'],
defaultKind: 'http',
roots: ['adapter'],
check(ctx) {
return checkSubject(ctx.subject);
},
files(ctx) {
const name = ctx.object;
const kind = ctx.kind;
return [
{
path: `adapter/${name}.ts`,
content: `import {adapter} from '@feasibleone/blong';
export default adapter(blong => ({
extends: 'adapter.${kind}',
validation: blong.type.Object({config: blong.type.Any()}),
activation: {
default: {namespace: '${ctx.subject}', imports: [/\\.${name}$/]},
${ctx.platform}: {},
},
}));
`,
},
];
},
};
export default adapter;
|