@salty-css/astro 0.1.0-alpha.10 → 0.1.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,12 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const N=require("@salty-css/core/compiler/helpers"),b=require("@salty-css/core/compiler/get-function-range"),k=require("@salty-css/core/compiler/salty-compiler"),O=require("@salty-css/core/server"),P=require("@salty-css/core/util"),g=require("fs/promises"),x=require("path"),q=E=>{const l=new k.SaltyCompiler(E);return{name:"stylegen",configureServer(t){l.importFile=async o=>{const n=Date.now();return t.ssrLoadModule(`${o}?t=${n}`)}},buildStart:async()=>{await l.generateCss()},load:async function(t){var n,d;if(N.isSaltyFile(t)){const m=await l.getDestDir();if(/.+\?configFile=(\w+).+/.test(t)){const h=new URLSearchParams(t.split("?")[1]).get("configFile");if(!h)return;const r=x.join(m,"astro",h);this.addWatchFile(r);const y=await g.readFile(r,"utf-8");if(!y)return;try{const c=JSON.parse(y),{clientProps:F={},classNames:s="",tagIsComponent:w,tagName:i="div"}=c,$=["import { resolveAstroProps } from '@salty-css/astro/element-props';",...c.imports||[]],j=w?i:`__r.element || ${JSON.stringify(F.element||i)}`;return`---
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const S=require("@salty-css/core/compiler/helpers"),G=require("@salty-css/core/compiler/get-function-range"),b=require("@salty-css/core/compiler/salty-compiler"),M=require("@salty-css/core/server"),D=require("@salty-css/core/util"),f=require("fs/promises"),x=require("path"),O=P=>{const c=new b.SaltyCompiler(P);return{name:"stylegen",configureServer:function(t){c.importFile=async e=>{const r=Date.now();return t.ssrLoadModule(`${e}?t=${r}`)}},buildStart:async function(){await c.generateCss()},load:async function(t){var r,g;if(S.isSaltyFile(t)){const p=await c.getDestDir();if(/.+\?configFile=(\w+).+/.test(t)){const y=new URLSearchParams(t.split("?")[1]).get("configFile");if(!y)return;const i=x.join(p,"astro",y);this.addWatchFile(i);const w=await f.readFile(i,"utf-8");if(!w)return;try{const m=JSON.parse(w),{clientProps:F={},classNames:n="",tagIsComponent:N,tagName:a="div"}=m,$=["import { resolveAstroProps } from '@salty-css/astro/element-props';",...m.imports||[]],j=N?a:`__r.element || ${JSON.stringify(F.element||a)}`;return`---
2
2
  ${$.join(`
3
3
  `)}
4
4
  const __gp = ${JSON.stringify(F)};
5
- const __r = resolveAstroProps(Astro.props, __gp, ${JSON.stringify(s)});
5
+ const __r = resolveAstroProps(Astro.props, __gp, ${JSON.stringify(n)});
6
6
  const Element = ${j};
7
7
  ---
8
- <Element class:list={__r.class} style={__r.style} {...__r.rest}><slot/></Element>`}catch(c){console.error("Error parsing config file:",c);return}}const u=["import { classNameInstance } from '@salty-css/core/instances/classname-instance';"],f=[],a=[],S=await g.readFile(t,"utf-8"),J=await l.compileSaltyFile(t,m),R=Object.entries(J.contents);for(const[e,h]of R){const r=await N.resolveExportValue(h,1);if(!r.generator)continue;if(r.isClassName){const v=r.generator._withBuildContext({callerName:e,isProduction:!1,config:{}});f.push(`const ${e} = classNameInstance(${JSON.stringify(v.params)});`),a.push(e);continue}const[y,c]=await b.getFunctionRange(S,e),F=S.slice(y,c),s=(d=(n=/styled\(([^,]+),/.exec(F))==null?void 0:n.at(1))==null?void 0:d.trim();if(!s){console.warn(`Could not determine tag name for ${e} in ${t}`);continue}const w=r.generator._withBuildContext({callerName:e,isProduction:!1,config:{}}),i={componentName:e,tagName:s.replace(/['"`]/g,""),tagIsComponent:!1,classNames:w.classNames,imports:[],clientProps:w.clientProps},C=/^\w+$/.test(s);if(i.tagIsComponent=C,C){const v=R.some(([p])=>p===s),I=S.match(new RegExp(`import[^;]*${s}[^;]*;`));if(v){const p=P.toHash(s),D=`import ${s} from '${t}.astro?configFile=${p}.config';`;i.imports=[D]}else if(I){const p=I.at(0);i.imports=[p]}}const $=x.join(m,"astro");await g.readFile($,"utf-8").catch(()=>!1)||await g.mkdir($,{recursive:!0});const _=P.toHash(e),M=x.join(m,"astro",`${_}.config`);await g.writeFile(M,JSON.stringify(i)),u.push(`import ${e} from '${t}.astro?configFile=${_}.config';`),a.push(e)}return`${u.join(`
8
+ <Element class:list={__r.class} style={__r.style} {...__r.rest}><slot/></Element>`}catch(m){console.error("Error parsing config file:",m);return}}const h=["import { classNameInstance } from '@salty-css/core/instances/classname-instance';"],l=[],o=[],u=await f.readFile(t,"utf-8"),q=await c.compileSaltyFile(t,p),R=Object.entries(q.contents);for(const[s,y]of R){const i=await S.resolveExportValue(y,1);if(!i.generator)continue;if(i.isClassName){const v=i.generator._withBuildContext({callerName:s,isProduction:!1,config:{}});l.push(`const ${s} = classNameInstance(${JSON.stringify(v.params)});`),o.push(s);continue}const[w,m]=await G.getFunctionRange(u,s),F=u.slice(w,m),n=(g=(r=/styled\(([^,]+),/.exec(F))==null?void 0:r.at(1))==null?void 0:g.trim();if(!n){console.warn(`Could not determine tag name for ${s} in ${t}`);continue}const N=i.generator._withBuildContext({callerName:s,isProduction:!1,config:{}}),a={componentName:s,tagName:n.replace(/['"`]/g,""),tagIsComponent:!1,classNames:N.classNames,imports:[],clientProps:N.clientProps},C=/^\w+$/.test(n);if(a.tagIsComponent=C,C){const v=R.some(([d])=>d===n),I=u.match(new RegExp(`import[^;]*${n}[^;]*;`));if(v){const d=D.toHash(n),J=`import ${n} from '${t}.astro?configFile=${d}.config';`;a.imports=[J]}else if(I){const d=I.at(0);a.imports=[d]}}const $=x.join(p,"astro");await f.readFile($,"utf-8").catch(()=>!1)||await f.mkdir($,{recursive:!0});const _=D.toHash(s),E=x.join(p,"astro",`${_}.config`);await f.writeFile(E,JSON.stringify(a)),h.push(`import ${s} from '${t}.astro?configFile=${_}.config';`),o.push(s)}return`${h.join(`
9
9
  `)}
10
- ${f.join(`
10
+ ${l.join(`
11
11
  `)}
12
- export { ${a.join(", ")} };`}},handleHotUpdate:async({file:t,server:o,modules:n})=>{if(await O.checkShouldRestart(t))return o.restart();if(!N.isSaltyFile(t))return;const u=[];for(const[f,a]of o.moduleGraph.idToModuleMap)f.startsWith(t+".astro?configFile=")&&(o.moduleGraph.invalidateModule(a),u.push(a));return[...n,...u]},watchChange:{handler:async(t,o)=>{N.isSaltyFile(t)&&o.event!=="delete"&&(await O.checkShouldRestart(t)||await l.generateFile(t))}}}};exports.default=q;exports.saltyPlugin=q;
12
+ export { ${o.join(", ")} };`}},handleHotUpdate:async function({file:t,server:e,modules:r}){if(await M.checkShouldRestart(t))return e.restart();if(!S.isSaltyFile(t))return;const h=await c.getDestDir(),l=[];for(const[o,u]of e.moduleGraph.idToModuleMap)o.startsWith(t+".astro?configFile=")&&(e.moduleGraph.invalidateModule(u),l.push(u));for(const o of e.moduleGraph.urlToModuleMap.values())o.file&&o.file.startsWith(h)&&(e.moduleGraph.invalidateModule(o),l.push(o));return e.ws.send({type:"update",updates:[]}),[...r,...l]},watchChange:{handler:async function(t,e){S.isSaltyFile(t)&&e.event!=="delete"&&(await M.checkShouldRestart(t)||await c.generateFile(t))}}}};exports.default=O;exports.saltyPlugin=O;
@@ -1,112 +1,114 @@
1
- import { isSaltyFile as S, resolveExportValue as A } from "@salty-css/core/compiler/helpers";
2
- import { getFunctionRange as b } from "@salty-css/core/compiler/get-function-range";
3
- import { SaltyCompiler as k } from "@salty-css/core/compiler/salty-compiler";
4
- import { checkShouldRestart as O } from "@salty-css/core/server";
5
- import { toHash as j } from "@salty-css/core/util";
6
- import { readFile as v, mkdir as B, writeFile as G } from "fs/promises";
7
- import { join as x } from "path";
8
- const K = (J) => {
9
- const l = new k(J);
1
+ import { isSaltyFile as S, resolveExportValue as G } from "@salty-css/core/compiler/helpers";
2
+ import { getFunctionRange as A } from "@salty-css/core/compiler/get-function-range";
3
+ import { SaltyCompiler as H } from "@salty-css/core/compiler/salty-compiler";
4
+ import { checkShouldRestart as E } from "@salty-css/core/server";
5
+ import { toHash as M } from "@salty-css/core/util";
6
+ import { readFile as x, mkdir as W, writeFile as b } from "fs/promises";
7
+ import { join as v } from "path";
8
+ const K = (O) => {
9
+ const c = new H(O);
10
10
  return {
11
11
  name: "stylegen",
12
- configureServer(t) {
13
- l.importFile = async (e) => {
14
- const n = Date.now();
15
- return t.ssrLoadModule(`${e}?t=${n}`);
12
+ configureServer: function(t) {
13
+ c.importFile = async (o) => {
14
+ const r = Date.now();
15
+ return t.ssrLoadModule(`${o}?t=${r}`);
16
16
  };
17
17
  },
18
- buildStart: async () => {
19
- await l.generateCss();
18
+ buildStart: async function() {
19
+ await c.generateCss();
20
20
  },
21
21
  load: async function(t) {
22
- var n, u;
22
+ var r, d;
23
23
  if (S(t)) {
24
- const m = await l.getDestDir();
24
+ const u = await c.getDestDir();
25
25
  if (/.+\?configFile=(\w+).+/.test(t)) {
26
- const d = new URLSearchParams(t.split("?")[1]).get("configFile");
27
- if (!d) return;
28
- const r = x(m, "astro", d);
29
- this.addWatchFile(r);
30
- const h = await v(r, "utf-8");
26
+ const h = new URLSearchParams(t.split("?")[1]).get("configFile");
31
27
  if (!h) return;
28
+ const i = v(u, "astro", h);
29
+ this.addWatchFile(i);
30
+ const y = await x(i, "utf-8");
31
+ if (!y) return;
32
32
  try {
33
- const c = JSON.parse(h), { clientProps: y = {}, classNames: s = "", tagIsComponent: w, tagName: a = "div" } = c, $ = ["import { resolveAstroProps } from '@salty-css/astro/element-props';", ...c.imports || []], R = w ? a : `__r.element || ${JSON.stringify(y.element || a)}`;
33
+ const p = JSON.parse(y), { clientProps: w = {}, classNames: n = "", tagIsComponent: $, tagName: a = "div" } = p, F = ["import { resolveAstroProps } from '@salty-css/astro/element-props';", ...p.imports || []], D = $ ? a : `__r.element || ${JSON.stringify(w.element || a)}`;
34
34
  return `---
35
- ${$.join(`
35
+ ${F.join(`
36
36
  `)}
37
- const __gp = ${JSON.stringify(y)};
38
- const __r = resolveAstroProps(Astro.props, __gp, ${JSON.stringify(s)});
39
- const Element = ${R};
37
+ const __gp = ${JSON.stringify(w)};
38
+ const __r = resolveAstroProps(Astro.props, __gp, ${JSON.stringify(n)});
39
+ const Element = ${D};
40
40
  ---
41
41
  <Element class:list={__r.class} style={__r.style} {...__r.rest}><slot/></Element>`;
42
- } catch (c) {
43
- console.error("Error parsing config file:", c);
42
+ } catch (p) {
43
+ console.error("Error parsing config file:", p);
44
44
  return;
45
45
  }
46
46
  }
47
- const p = ["import { classNameInstance } from '@salty-css/core/instances/classname-instance';"], g = [], i = [], F = await v(t, "utf-8"), P = await l.compileSaltyFile(t, m), I = Object.entries(P.contents);
48
- for (const [o, d] of I) {
49
- const r = await A(d, 1);
50
- if (!r.generator) continue;
51
- if (r.isClassName) {
52
- const _ = r.generator._withBuildContext({
53
- callerName: o,
47
+ const g = ["import { classNameInstance } from '@salty-css/core/instances/classname-instance';"], l = [], e = [], m = await x(t, "utf-8"), j = await c.compileSaltyFile(t, u), I = Object.entries(j.contents);
48
+ for (const [s, h] of I) {
49
+ const i = await G(h, 1);
50
+ if (!i.generator) continue;
51
+ if (i.isClassName) {
52
+ const _ = i.generator._withBuildContext({
53
+ callerName: s,
54
54
  isProduction: !1,
55
55
  config: {}
56
56
  });
57
- g.push(`const ${o} = classNameInstance(${JSON.stringify(_.params)});`), i.push(o);
57
+ l.push(`const ${s} = classNameInstance(${JSON.stringify(_.params)});`), e.push(s);
58
58
  continue;
59
59
  }
60
- const [h, c] = await b(F, o), y = F.slice(h, c), s = (u = (n = /styled\(([^,]+),/.exec(y)) == null ? void 0 : n.at(1)) == null ? void 0 : u.trim();
61
- if (!s) {
62
- console.warn(`Could not determine tag name for ${o} in ${t}`);
60
+ const [y, p] = await A(m, s), w = m.slice(y, p), n = (d = (r = /styled\(([^,]+),/.exec(w)) == null ? void 0 : r.at(1)) == null ? void 0 : d.trim();
61
+ if (!n) {
62
+ console.warn(`Could not determine tag name for ${s} in ${t}`);
63
63
  continue;
64
64
  }
65
- const w = r.generator._withBuildContext({
66
- callerName: o,
65
+ const $ = i.generator._withBuildContext({
66
+ callerName: s,
67
67
  isProduction: !1,
68
68
  config: {}
69
69
  }), a = {
70
- componentName: o,
71
- tagName: s.replace(/['"`]/g, ""),
70
+ componentName: s,
71
+ tagName: n.replace(/['"`]/g, ""),
72
72
  tagIsComponent: !1,
73
- classNames: w.classNames,
73
+ classNames: $.classNames,
74
74
  imports: [],
75
- clientProps: w.clientProps
76
- }, N = /^\w+$/.test(s);
75
+ clientProps: $.clientProps
76
+ }, N = /^\w+$/.test(n);
77
77
  if (a.tagIsComponent = N, N) {
78
- const _ = I.some(([f]) => f === s), E = F.match(new RegExp(`import[^;]*${s}[^;]*;`));
78
+ const _ = I.some(([f]) => f === n), R = m.match(new RegExp(`import[^;]*${n}[^;]*;`));
79
79
  if (_) {
80
- const f = j(s), M = `import ${s} from '${t}.astro?configFile=${f}.config';`;
81
- a.imports = [M];
82
- } else if (E) {
83
- const f = E.at(0);
80
+ const f = M(n), P = `import ${n} from '${t}.astro?configFile=${f}.config';`;
81
+ a.imports = [P];
82
+ } else if (R) {
83
+ const f = R.at(0);
84
84
  a.imports = [f];
85
85
  }
86
86
  }
87
- const $ = x(m, "astro");
88
- await v($, "utf-8").catch(() => !1) || await B($, { recursive: !0 });
89
- const C = j(o), D = x(m, "astro", `${C}.config`);
90
- await G(D, JSON.stringify(a)), p.push(`import ${o} from '${t}.astro?configFile=${C}.config';`), i.push(o);
87
+ const F = v(u, "astro");
88
+ await x(F, "utf-8").catch(() => !1) || await W(F, { recursive: !0 });
89
+ const C = M(s), J = v(u, "astro", `${C}.config`);
90
+ await b(J, JSON.stringify(a)), g.push(`import ${s} from '${t}.astro?configFile=${C}.config';`), e.push(s);
91
91
  }
92
- return `${p.join(`
92
+ return `${g.join(`
93
93
  `)}
94
- ${g.join(`
94
+ ${l.join(`
95
95
  `)}
96
- export { ${i.join(", ")} };`;
96
+ export { ${e.join(", ")} };`;
97
97
  }
98
98
  },
99
- handleHotUpdate: async ({ file: t, server: e, modules: n }) => {
100
- if (await O(t)) return e.restart();
99
+ handleHotUpdate: async function({ file: t, server: o, modules: r }) {
100
+ if (await E(t)) return o.restart();
101
101
  if (!S(t)) return;
102
- const p = [];
103
- for (const [g, i] of e.moduleGraph.idToModuleMap)
104
- g.startsWith(t + ".astro?configFile=") && (e.moduleGraph.invalidateModule(i), p.push(i));
105
- return [...n, ...p];
102
+ const g = await c.getDestDir(), l = [];
103
+ for (const [e, m] of o.moduleGraph.idToModuleMap)
104
+ e.startsWith(t + ".astro?configFile=") && (o.moduleGraph.invalidateModule(m), l.push(m));
105
+ for (const e of o.moduleGraph.urlToModuleMap.values())
106
+ e.file && e.file.startsWith(g) && (o.moduleGraph.invalidateModule(e), l.push(e));
107
+ return o.ws.send({ type: "update", updates: [] }), [...r, ...l];
106
108
  },
107
109
  watchChange: {
108
- handler: async (t, e) => {
109
- S(t) && e.event !== "delete" && (await O(t) || await l.generateFile(t));
110
+ handler: async function(t, o) {
111
+ S(t) && o.event !== "delete" && (await E(t) || await c.generateFile(t));
110
112
  }
111
113
  }
112
114
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salty-css/astro",
3
- "version": "0.1.0-alpha.10",
3
+ "version": "0.1.0-alpha.11",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "typings": "./dist/index.d.ts",
@@ -78,7 +78,7 @@
78
78
  }
79
79
  },
80
80
  "dependencies": {
81
- "@salty-css/core": "^0.1.0-alpha.10",
81
+ "@salty-css/core": "^0.1.0-alpha.11",
82
82
  "astro": "^5.13.2",
83
83
  "vite": "^6.3.5"
84
84
  }