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

100% Statements 7/7
100% Branches 4/4
100% Functions 3/3
100% Lines 6/6

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        15x 48x 15x 8x   15x             23x              
import ts from 'typescript';
import { type ComponentMetadata } from '@fds-uif/generator-base';
 
export function createLwcImportStatement(metadata: ComponentMetadata) {
  const namedImports = ['LightningElement'];
  const attributeProps = metadata.props.filter((prop) => prop.source !== 'slot' && prop.source !== 'variant');
  if (attributeProps.length) {
    namedImports.push('api');
  }
  return ts.factory.createImportDeclaration(
    undefined, // decorators
    ts.factory.createImportClause(
      undefined, // phaseModifier
      undefined /* name (default import) */,
      ts.factory.createNamedImports(
        namedImports.map((namedImport: string) => {
          return ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier(namedImport));
        }),
      ),
    ),
    ts.factory.createStringLiteral('lwc'),
  );
}