How to use the @tslab/typescript-for-tslab.isNamespaceImport function in @tslab/typescript-for-tslab

To help you get started, we’ve selected a few @tslab/typescript-for-tslab examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github yunabe / tslab / src / converter.ts View on Github external
export function keepNamesInImport(
  im: ts.ImportDeclaration,
  names: Set
) {
  if (!names || !names.size) {
    throw new Error("names is empty of null");
  }
  let imc = im.importClause;
  if (imc.name && !names.has(imc.name.escapedText)) {
    delete imc.name;
  }
  if (imc.namedBindings) {
    if (ts.isNamespaceImport(imc.namedBindings)) {
      if (!names.has(imc.namedBindings.name.escapedText)) {
        delete imc.namedBindings;
      }
    } else {
      let elms: ts.ImportSpecifier[] = [];
      imc.namedBindings.elements.forEach(elm => {
        if (names.has(elm.name.escapedText)) {
          elms.push(elm);
        }
      });
      if (elms.length) {
        imc.namedBindings.elements = ts.createNodeArray(elms);
      } else {
        delete imc.namedBindings;
      }
    }