UNPKG

babel-plugin-typescript-to-proptypes

Version:
54 lines (42 loc) 1.44 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const core = require('@babel/core'); function upsertImport(imp, options = {}) { const checkForDefault = options.checkForDefault, checkForNamed = options.checkForNamed; const response = { defaultImport: '', namedImport: '', namedImports: [] }; let hasDefault = false; let hasNamed = false; response.namedImports = imp.specifiers.filter(spec => { if (core.types.isImportDefaultSpecifier(spec) || core.types.isImportNamespaceSpecifier(spec)) { response.defaultImport = spec.local.name; hasDefault = true; return false; } return true; }).map(spec => { const name = spec.local.name; if (name === checkForNamed) { response.namedImport = name; hasNamed = true; } return name; }); // Add default import if it doesn't exist if (checkForDefault && !hasDefault) { imp.specifiers.unshift(core.types.importDefaultSpecifier(core.types.identifier(checkForDefault))); response.defaultImport = checkForDefault; } // Add named import if it doesn't exist if (checkForNamed && !hasNamed) { imp.specifiers.push(core.types.importSpecifier(core.types.identifier(checkForNamed), core.types.identifier(checkForNamed))); response.namedImport = checkForNamed; } return response; } exports.upsertImport = upsertImport; //# sourceMappingURL=upsertImport.js.map