All files / packages/fds-uif/generator-lwc/src index.ts

100% Statements 3/3
100% Branches 0/0
100% Functions 0/0
100% Lines 3/3

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                        9x     9x                                 9x    
import {
  analyzeUif,
  formatGeneratedCode,
  type ResolvedUIF,
  type GeneratedCode,
} from '@fds-uif/generator-base';
import { generateClass } from './generateClass.js';
import { generateTemplate } from './generateTemplate.js';
import { lowercaseFirstChar } from './utils/lowercaseFirstChar.js';
 
export async function generateComponent(uif: ResolvedUIF): Promise<GeneratedCode> {
  // 1. Analyze
  const metadata = analyzeUif(uif);
 
  // 2. Generate
  const code: GeneratedCode = {
    files: [
      {
        path: `${lowercaseFirstChar(metadata.name)}.ts`,
        content: generateClass(metadata),
        type: 'typescript',
      },
      {
        path: `${lowercaseFirstChar(metadata.name)}.html`,
        content: generateTemplate(metadata),
        type: 'lwc'
      }
    ],
    metadata,
  };
 
  // 3. Format
  return formatGeneratedCode(code);
}