babel-plugin-typescript-to-proptypes
Version:
Generate React PropTypes from TypeScript prop interfaces.
31 lines (23 loc) • 849 B
JavaScript
Object.defineProperty(exports, '__esModule', {
value: true
});
const core = require('@babel/core');
const getTypeName = require('./getTypeName.js');
function extractGenericTypeNames(node) {
const names = []; // <Foo>
if (core.types.isTSTypeParameterInstantiation(node)) {
node.params.forEach(param => {
names.push(...extractGenericTypeNames(param));
}); // Foo
} else if (core.types.isTSTypeReference(node)) {
names.push(getTypeName.getTypeName(node.typeName)); // Foo & Bar, Foo | Bar
} else if (core.types.isTSIntersectionType(node) || core.types.isTSUnionType(node)) {
node.types.forEach(param => {
names.push(...extractGenericTypeNames(param));
});
}
return names;
}
exports.extractGenericTypeNames = extractGenericTypeNames;
//# sourceMappingURL=extractGenericTypeNames.js.map
;