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

100% Statements 6/6
100% Branches 2/2
100% Functions 2/2
100% Lines 5/5

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            9x 31x   4x   9x             13x                    
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')
  );
}