@el3um4s/svelte-get-component-info
Version:
Typescript NPM Package Starter
45 lines (44 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getInfo = void 0;
const readFileSvelte_1 = require("./readFileSvelte");
const parseFileSvelte_1 = require("./parseFileSvelte");
const parseProps_1 = require("./parseProps");
const parseActions_1 = require("./parseActions");
const parseSlots_1 = require("./parseSlots");
const parseCSS_1 = require("./parseCSS");
function getInfo(source) {
const file = (0, readFileSvelte_1.readFileSvelte)(source);
const propsAsInFile = (0, parseFileSvelte_1.getProps_asInFile)(file.content.content);
const props = [];
propsAsInFile.forEach(p => props.push((0, parseProps_1.getPropInfo)(p)));
const actionsAsInFile = (0, parseFileSvelte_1.getActions_asInFile)(file.content.content);
const actionsWithDuplicates = [];
actionsAsInFile.forEach(a => actionsWithDuplicates.push((0, parseActions_1.getActionInfo)(a)));
const act = new Set();
const actions = actionsWithDuplicates.filter(el => {
const duplicate = act.has(el.name);
act.add(el.name);
return !duplicate;
});
const slotsInFile = (0, parseFileSvelte_1.getSlots_asInFile)(file.content.content);
const slotsWithDuplicates = [];
slotsInFile.forEach(s => slotsWithDuplicates.push((0, parseSlots_1.getSlotInfo)(s)));
const slot = new Set();
const slots = slotsWithDuplicates.filter(el => {
const duplicate = slot.has(el.name);
slot.add(el.name);
return !duplicate;
});
const cssInFile = (0, parseFileSvelte_1.getCSS_asInFile)(file.content.content);
const cssWithDuplicates = [];
cssInFile.forEach(s => cssWithDuplicates.push((0, parseCSS_1.getCSSInfo)(s)));
const c = new Set();
const css = cssWithDuplicates.filter(el => {
const duplicate = c.has(el.name);
c.add(el.name);
return !duplicate;
});
return { props, actions, slots, css };
}
exports.getInfo = getInfo;