2020-07-27 17:34:25 +08:00

22 lines
622 B
TypeScript

import { CodeGeneratorError, NodeGenerator, IJSSlot } from '../types';
export function isJsSlot(value: unknown): boolean {
return value && typeof value === 'object' && (value as IJSSlot).type === 'JSSlot';
}
export function generateJsSlot(value: any, generator: NodeGenerator): string {
if (isJsSlot(value)) {
const slotCfg = value as IJSSlot;
if (!slotCfg.value) {
return 'null';
}
const results = slotCfg.value.map((n) => generator(n));
if (results.length === 1) {
return results[0];
}
return `[${results.join(',')}]`;
}
throw new CodeGeneratorError('Not a JSSlot');
}