defuss-astro 1.4.3 → 1.4.5

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.
package/README.md CHANGED
@@ -94,6 +94,6 @@ All commands are run from the root of the project, from a terminal:
94
94
 
95
95
  ---
96
96
 
97
- <img src="assets/defuss_comic.png" />
97
+ <img src="https://raw.githubusercontent.com/kyr0/defuss/refs/heads/main/assets/defuss_comic.png" />
98
98
 
99
99
  <caption><i><b>Come visit us on defuss island!</b></i></caption>
package/dist/client.cjs CHANGED
@@ -146,7 +146,10 @@ var client = (element) => async (Component, props, { default: children, ...slott
146
146
  client$1.hydrate(roots, Array.from(element.childNodes));
147
147
  } else {
148
148
  element.innerHTML = "";
149
- let roots = client$1.renderSync(Component(componentProps), element);
149
+ let roots = client$1.renderSync(
150
+ Component(componentProps),
151
+ element
152
+ );
150
153
  if (!Array.isArray(roots)) {
151
154
  roots = [roots];
152
155
  }
@@ -158,24 +161,33 @@ var client = (element) => async (Component, props, { default: children, ...slott
158
161
  }
159
162
  Object.entries(attrs).forEach(([key, value]) => {
160
163
  if (typeof value === "undefined") return;
161
- if (key === "dangerouslySetInnerHTML") return;
162
- if (key === "ref" && typeof value === "object") {
164
+ if (key === client$1.DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE) return;
165
+ if (key === client$1.REF_ATTRIBUTE_NAME && typeof value === "object") {
163
166
  value.current = element;
167
+ element._defussRef = value;
164
168
  return;
165
169
  }
166
170
  element.setAttribute(key, String(value));
167
171
  });
168
- element.addEventListener("astro:unmount", () => {
169
- roots.forEach((root) => {
170
- if (root.parentNode) {
171
- root.parentNode.removeChild(root);
172
- }
173
- });
174
- }, { once: true });
172
+ element.addEventListener(
173
+ "astro:unmount",
174
+ () => {
175
+ roots.forEach((root) => {
176
+ if (root.parentNode) {
177
+ root.parentNode.removeChild(root);
178
+ }
179
+ });
180
+ },
181
+ { once: true }
182
+ );
175
183
  }
176
- element.addEventListener("astro:unmount", () => {
177
- element.innerHTML = "";
178
- }, { once: true });
184
+ element.addEventListener(
185
+ "astro:unmount",
186
+ () => {
187
+ element.innerHTML = "";
188
+ },
189
+ { once: true }
190
+ );
179
191
  };
180
192
 
181
193
  exports.Img = Img;
package/dist/client.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { createRef, hydrate, renderSync } from 'defuss/client';
1
+ import { createRef, hydrate, renderSync, DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, REF_ATTRIBUTE_NAME } from 'defuss/client';
2
2
  import { S as StaticHtml } from './render-viAgneG-.mjs';
3
3
  import { jsx } from 'defuss/jsx-runtime';
4
4
  import 'defuss';
@@ -142,7 +142,10 @@ var client = (element) => async (Component, props, { default: children, ...slott
142
142
  hydrate(roots, Array.from(element.childNodes));
143
143
  } else {
144
144
  element.innerHTML = "";
145
- let roots = renderSync(Component(componentProps), element);
145
+ let roots = renderSync(
146
+ Component(componentProps),
147
+ element
148
+ );
146
149
  if (!Array.isArray(roots)) {
147
150
  roots = [roots];
148
151
  }
@@ -154,24 +157,33 @@ var client = (element) => async (Component, props, { default: children, ...slott
154
157
  }
155
158
  Object.entries(attrs).forEach(([key, value]) => {
156
159
  if (typeof value === "undefined") return;
157
- if (key === "dangerouslySetInnerHTML") return;
158
- if (key === "ref" && typeof value === "object") {
160
+ if (key === DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE) return;
161
+ if (key === REF_ATTRIBUTE_NAME && typeof value === "object") {
159
162
  value.current = element;
163
+ element._defussRef = value;
160
164
  return;
161
165
  }
162
166
  element.setAttribute(key, String(value));
163
167
  });
164
- element.addEventListener("astro:unmount", () => {
165
- roots.forEach((root) => {
166
- if (root.parentNode) {
167
- root.parentNode.removeChild(root);
168
- }
169
- });
170
- }, { once: true });
168
+ element.addEventListener(
169
+ "astro:unmount",
170
+ () => {
171
+ roots.forEach((root) => {
172
+ if (root.parentNode) {
173
+ root.parentNode.removeChild(root);
174
+ }
175
+ });
176
+ },
177
+ { once: true }
178
+ );
171
179
  }
172
- element.addEventListener("astro:unmount", () => {
173
- element.innerHTML = "";
174
- }, { once: true });
180
+ element.addEventListener(
181
+ "astro:unmount",
182
+ () => {
183
+ element.innerHTML = "";
184
+ },
185
+ { once: true }
186
+ );
175
187
  };
176
188
 
177
189
  export { Img, client as default };
File without changes
File without changes
package/dist/index.cjs CHANGED
@@ -63,6 +63,8 @@ const minifyAndWriteFile = async (cwd, filename, type) => {
63
63
  }
64
64
  };
65
65
  function index({
66
+ disableSvgOptimization = false,
67
+ disableCssOptimization = false,
66
68
  include,
67
69
  exclude,
68
70
  devtools
@@ -112,20 +114,28 @@ function index({
112
114
  glob("**/*.svg", { cwd })
113
115
  ]);
114
116
  if (htmlFiles.length === 0 && svgFiles.length === 0) return;
115
- logMessage(`\u2734\uFE0F Optimizing ${cssFiles.length} CSS stylesheets`);
116
117
  const minifyAndWritePromises = [];
117
- for (const filename of cssFiles) {
118
- minifyAndWritePromises.push(minifyAndWriteFile(cwd, filename, "css"));
118
+ if (!disableCssOptimization) {
119
+ logMessage(`\u26A1 Optimizing ${cssFiles.length} CSS stylesheets`);
120
+ for (const filename of cssFiles) {
121
+ minifyAndWritePromises.push(
122
+ minifyAndWriteFile(cwd, filename, "css")
123
+ );
124
+ }
119
125
  }
120
- logMessage(`\u2734\uFE0F Optimizing ${svgFiles.length} SVG vector graphics`);
121
- for (const filename of svgFiles) {
122
- minifyAndWritePromises.push(minifyAndWriteFile(cwd, filename, "svg"));
126
+ if (!disableSvgOptimization) {
127
+ logMessage(`\u26A1 Optimizing ${svgFiles.length} SVG vector graphics`);
128
+ for (const filename of svgFiles) {
129
+ minifyAndWritePromises.push(
130
+ minifyAndWriteFile(cwd, filename, "svg")
131
+ );
132
+ }
123
133
  }
124
134
  await Promise.all(minifyAndWritePromises);
125
135
  const end = node_perf_hooks.performance.now();
126
136
  const deltaT = end - start;
127
137
  const humanTime = deltaT < 1e3 ? `${deltaT.toFixed(0)}ms` : `${(deltaT / 1e3).toFixed(1)}s`;
128
- logMessage(`\u2734\uFE0F Optimization completed in ${humanTime}`);
138
+ logMessage(`\u26A1 Optimization completed in ${humanTime}`);
129
139
  }
130
140
  }
131
141
  };
package/dist/index.d.cts CHANGED
@@ -3,9 +3,11 @@ import { DefussVitePluginOptions } from 'defuss-vite';
3
3
 
4
4
  interface Options extends Pick<DefussVitePluginOptions, "exclude" | "include"> {
5
5
  devtools?: boolean;
6
+ disableSvgOptimization?: boolean;
7
+ disableCssOptimization?: boolean;
6
8
  }
7
9
 
8
10
  declare const getContainerRenderer: () => ContainerRenderer;
9
- declare function export_default({ include, exclude, devtools, }?: Options): AstroIntegration;
11
+ declare function export_default({ disableSvgOptimization, disableCssOptimization, include, exclude, devtools, }?: Options): AstroIntegration;
10
12
 
11
13
  export { export_default as default, getContainerRenderer };
package/dist/index.d.mts CHANGED
@@ -3,9 +3,11 @@ import { DefussVitePluginOptions } from 'defuss-vite';
3
3
 
4
4
  interface Options extends Pick<DefussVitePluginOptions, "exclude" | "include"> {
5
5
  devtools?: boolean;
6
+ disableSvgOptimization?: boolean;
7
+ disableCssOptimization?: boolean;
6
8
  }
7
9
 
8
10
  declare const getContainerRenderer: () => ContainerRenderer;
9
- declare function export_default({ include, exclude, devtools, }?: Options): AstroIntegration;
11
+ declare function export_default({ disableSvgOptimization, disableCssOptimization, include, exclude, devtools, }?: Options): AstroIntegration;
10
12
 
11
13
  export { export_default as default, getContainerRenderer };
package/dist/index.mjs CHANGED
@@ -59,6 +59,8 @@ const minifyAndWriteFile = async (cwd, filename, type) => {
59
59
  }
60
60
  };
61
61
  function index({
62
+ disableSvgOptimization = false,
63
+ disableCssOptimization = false,
62
64
  include,
63
65
  exclude,
64
66
  devtools
@@ -108,20 +110,28 @@ function index({
108
110
  glob("**/*.svg", { cwd })
109
111
  ]);
110
112
  if (htmlFiles.length === 0 && svgFiles.length === 0) return;
111
- logMessage(`\u2734\uFE0F Optimizing ${cssFiles.length} CSS stylesheets`);
112
113
  const minifyAndWritePromises = [];
113
- for (const filename of cssFiles) {
114
- minifyAndWritePromises.push(minifyAndWriteFile(cwd, filename, "css"));
114
+ if (!disableCssOptimization) {
115
+ logMessage(`\u26A1 Optimizing ${cssFiles.length} CSS stylesheets`);
116
+ for (const filename of cssFiles) {
117
+ minifyAndWritePromises.push(
118
+ minifyAndWriteFile(cwd, filename, "css")
119
+ );
120
+ }
115
121
  }
116
- logMessage(`\u2734\uFE0F Optimizing ${svgFiles.length} SVG vector graphics`);
117
- for (const filename of svgFiles) {
118
- minifyAndWritePromises.push(minifyAndWriteFile(cwd, filename, "svg"));
122
+ if (!disableSvgOptimization) {
123
+ logMessage(`\u26A1 Optimizing ${svgFiles.length} SVG vector graphics`);
124
+ for (const filename of svgFiles) {
125
+ minifyAndWritePromises.push(
126
+ minifyAndWriteFile(cwd, filename, "svg")
127
+ );
128
+ }
119
129
  }
120
130
  await Promise.all(minifyAndWritePromises);
121
131
  const end = performance.now();
122
132
  const deltaT = end - start;
123
133
  const humanTime = deltaT < 1e3 ? `${deltaT.toFixed(0)}ms` : `${(deltaT / 1e3).toFixed(1)}s`;
124
- logMessage(`\u2734\uFE0F Optimization completed in ${humanTime}`);
134
+ logMessage(`\u26A1 Optimization completed in ${humanTime}`);
125
135
  }
126
136
  }
127
137
  };
package/dist/server.cjs CHANGED
File without changes
package/dist/server.mjs CHANGED
File without changes
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "defuss-astro",
3
- "version": "1.4.3",
3
+ "version": "1.4.5",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "license": "MIT",
9
9
  "description": "Defuss Integration for Astro with WASM-based built-in image conversion support.",
10
- "keywords": [
11
- "jsx",
12
- "render",
13
- "ssr",
14
- "isomorphic",
15
- "astro"
16
- ],
10
+ "keywords": ["jsx", "render", "ssr", "isomorphic", "astro"],
17
11
  "repository": {
18
12
  "url": "git+https://github.com/kyr0/defuss.git",
19
13
  "type": "git"
20
14
  },
15
+ "scripts": {
16
+ "clean": "rm -rf ./dist && rm -rf ./node_modules/.pnpm",
17
+ "prebuild": "pnpm run clean",
18
+ "build": "pkgroll",
19
+ "postbuild": "tsx ./scripts/finalize-build.ts"
20
+ },
21
21
  "author": "Aron Homberg <info@aron-homberg.de>",
22
22
  "sideEffects": false,
23
23
  "exports": {
@@ -59,9 +59,7 @@
59
59
  "main": "./dist/index.cjs",
60
60
  "module": "./dist/index.mjs",
61
61
  "types": "./dist/index.d.cts",
62
- "files": [
63
- "dist"
64
- ],
62
+ "files": ["dist"],
65
63
  "devDependencies": {
66
64
  "pkgroll": "^2.5.1",
67
65
  "typescript": "^5.6.3",
@@ -71,20 +69,14 @@
71
69
  "node": "^18.17.1 || ^20.3.0 || >=21.0.0"
72
70
  },
73
71
  "dependencies": {
74
- "astro": "^5.8.1",
75
- "vite": "^6.3.5",
72
+ "defuss": "workspace:*",
73
+ "defuss-vite": "workspace:*",
74
+ "astro": "^5.13.7",
75
+ "vite": "^7.1.5",
76
76
  "fast-glob": "^3.3.2",
77
77
  "svgo": "^3.3.2",
78
78
  "lightningimg": "^1.0.3",
79
79
  "purgecss": "^7.0.2",
80
- "file-type": "^19.6.0",
81
- "defuss": "2.0.7",
82
- "defuss-vite": "1.1.3"
83
- },
84
- "scripts": {
85
- "clean": "rm -rf ./dist && rm -rf ./node_modules/.pnpm",
86
- "prebuild": "pnpm run clean",
87
- "build": "pkgroll",
88
- "postbuild": "tsx ./scripts/finalize-build.ts"
80
+ "file-type": "^19.6.0"
89
81
  }
90
- }
82
+ }