@builder.io/mitosis
Version:
Write components once, run everywhere. Compiles to Vue, React, Solid, and Liquid. Import code from Figma and Builder.io
27 lines (26 loc) • 991 B
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getChildComponents = void 0;
const is_mitosis_node_1 = require("../helpers/is-mitosis-node");
const legacy_1 = __importDefault(require("neotraverse/legacy"));
const getChildComponents = (json) => {
const nodes = [];
const childComponents = [json.name]; // a component can be recursively used in itself
(0, legacy_1.default)(json).forEach(function (item) {
if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
nodes.push(item.name);
}
});
for (const { imports } of json.imports) {
for (const key of Object.keys(imports)) {
if (nodes.includes(key)) {
childComponents.push(key);
}
}
}
return childComponents;
};
exports.getChildComponents = getChildComponents;
;