UNPKG

@el3um4s/svelte-get-component-info

Version:
45 lines (44 loc) 1.99 kB
"use strict"; 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;