shadcn-svelte
Version:
Add components to your apps.
2 lines • 1.37 kB
JavaScript
import{t as e}from"./libraries-tdyxKhrQ.mjs";import{t}from"./src-D1e-SXHI.mjs";import{t as n}from"./magic-string.es-Ze7NMroB.mjs";import{parse as r}from"svelte/compiler";function i(e,t){return new a(e,{cause:t})}var a=class extends Error{constructor(...e){super(...e),this.name=`CLI Error`}},o=class extends Error{constructor(...e){super(...e),this.name=`Config Error`}};const s=async({content:a,filePath:o,config:s})=>{if(!o.endsWith(`.svelte`))return{};let c=new n(a),l=r(a,{filename:o,modern:!0}),u=e[s.iconLibrary],d=[],f=null;if(t(l,{enter:t=>{if(t.type===`Component`&&t.name===`IconPlaceholder`){let n=t.attributes.filter(t=>!Object.keys(e).includes(t.name)),r=t.attributes.find(e=>e.name===s.iconLibrary)?.value[0]?.data;if(!r)throw i(`Couldn't find icon name attribute for ${s.iconLibrary} in ${o}. This is a bug please report it here: https://github.com/huntabyte/shadcn-svelte/issues`);let a=n.map(e=>c.slice(e.start,e.end)).join(` `),l=u.usage({name:r},a);c.overwrite(t.start,t.end,l),d.push({name:r})}else if(t.type===`ImportDeclaration`){let e=t.specifiers[0];e?.type===`ImportDefaultSpecifier`&&e.local.name===`IconPlaceholder`&&(f=t)}}}),f){let e=u.getAdditionalImports?.()??[];for(let t of d)e.push(u.import(t));c.overwrite(f.start,f.end,e.join(`
`))}return{content:c.toString(),devDependencies:f===null?[]:[...u.packages]}};export{i,a as n,o as r,s as t};