@tanstack/solid-router 1.121.21 → 1.121.24

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.
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const web = require("solid-js/web");
4
4
  const meta = require("@solidjs/meta");
5
+ const Solid = require("solid-js");
5
6
  var _tmpl$ = /* @__PURE__ */ web.template(`<link>`), _tmpl$2 = /* @__PURE__ */ web.template(`<script>`);
6
7
  function Asset({
7
8
  tag,
@@ -26,24 +27,67 @@ function Asset({
26
27
  innerHTML: children
27
28
  }));
28
29
  case "script":
29
- if (attrs && attrs.src) {
30
- return (() => {
31
- var _el$2 = _tmpl$2();
32
- web.spread(_el$2, attrs, false, false);
33
- return _el$2;
34
- })();
35
- }
36
- if (typeof children === "string") return (() => {
37
- var _el$3 = _tmpl$2();
38
- web.spread(_el$3, web.mergeProps(attrs, {
39
- "innerHTML": children
40
- }), false, false);
41
- return _el$3;
42
- })();
43
- return null;
30
+ return web.createComponent(Script, {
31
+ attrs,
32
+ children
33
+ });
44
34
  default:
45
35
  return null;
46
36
  }
47
37
  }
38
+ function Script({
39
+ attrs,
40
+ children
41
+ }) {
42
+ Solid.onMount(() => {
43
+ if (attrs == null ? void 0 : attrs.src) {
44
+ const script = document.createElement("script");
45
+ for (const [key, value] of Object.entries(attrs)) {
46
+ if (value !== void 0 && value !== false) {
47
+ script.setAttribute(key, typeof value === "boolean" ? "" : String(value));
48
+ }
49
+ }
50
+ document.head.appendChild(script);
51
+ Solid.onCleanup(() => {
52
+ if (script.parentNode) {
53
+ script.parentNode.removeChild(script);
54
+ }
55
+ });
56
+ } else if (typeof children === "string") {
57
+ const script = document.createElement("script");
58
+ script.textContent = children;
59
+ if (attrs) {
60
+ for (const [key, value] of Object.entries(attrs)) {
61
+ if (value !== void 0 && value !== false) {
62
+ script.setAttribute(key, typeof value === "boolean" ? "" : String(value));
63
+ }
64
+ }
65
+ }
66
+ document.head.appendChild(script);
67
+ Solid.onCleanup(() => {
68
+ if (script.parentNode) {
69
+ script.parentNode.removeChild(script);
70
+ }
71
+ });
72
+ }
73
+ });
74
+ if ((attrs == null ? void 0 : attrs.src) && typeof attrs.src === "string") {
75
+ return (() => {
76
+ var _el$2 = _tmpl$2();
77
+ web.spread(_el$2, attrs, false, false);
78
+ return _el$2;
79
+ })();
80
+ }
81
+ if (typeof children === "string") {
82
+ return (() => {
83
+ var _el$3 = _tmpl$2();
84
+ web.spread(_el$3, web.mergeProps(attrs, {
85
+ "innerHTML": children
86
+ }), false, false);
87
+ return _el$3;
88
+ })();
89
+ }
90
+ return null;
91
+ }
48
92
  exports.Asset = Asset;
49
93
  //# sourceMappingURL=Asset.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Asset.cjs","sources":["../../src/Asset.tsx"],"sourcesContent":["import { Meta, Style, Title } from '@solidjs/meta'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport function Asset({ tag, attrs, children }: RouterManagedTag): any {\n switch (tag) {\n case 'title':\n return <Title {...attrs}>{children}</Title>\n case 'meta':\n return <Meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <Style {...attrs} innerHTML={children} />\n case 'script':\n if ((attrs as any) && (attrs as any).src) {\n return <script {...attrs} />\n }\n if (typeof children === 'string')\n return <script {...attrs} innerHTML={children} />\n return null\n default:\n return null\n }\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_$mergeProps","Meta","_el$","_tmpl$","Style","innerHTML","src","_el$2","_tmpl$2","_el$3"],"mappings":";;;;;AAGO,SAASA,MAAM;AAAA,EAAEC;AAAAA,EAAKC;AAAAA,EAAOC;AAA2B,GAAQ;AACrE,UAAQF,KAAG;AAAA,IACT,KAAK;AACHG,aAAAA,oBAAQC,KAAAA,OAAKC,IAAAA,WAAKJ,OAAK;AAAA,QAAAC;AAAAA,MAAAA,CAAW,CAAA;AAAA,IACpC,KAAK;AACHC,aAAAA,IAAAA,gBAAQG,WAASL,KAAK;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAM,OAAAC,OAAA;AAAAD,YAAAA,OAAAA,MAAiBN,OAAK,OAAA,KAAA;AAAAM,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACHJ,aAAAA,oBAAQM,KAAAA,OAAKJ,IAAAA,WAAKJ,OAAK;AAAA,QAAES,WAAWR;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAC9C,KAAK;AACED,UAAAA,SAAkBA,MAAcU,KAAK;AACxC,gBAAA,MAAA;AAAA,cAAAC,QAAAC,QAAA;AAAAD,cAAAA,OAAAA,OAAmBX,OAAK,OAAA,KAAA;AAAAW,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,MAAA;AAE1B,UAAI,OAAOV,aAAa,SACtB,SAAA,MAAA;AAAA,YAAAY,QAAAD,QAAA;AAAAC,mBAAAA,OAAAT,eAAmBJ,OAAK;AAAA,UAAA,aAAaC;AAAAA,QAAAA,CAAQ,GAAA,OAAA,KAAA;AAAAY,eAAAA;AAAAA,MAAAA,GAAA;AACxC,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EAAA;AAEb;;"}
1
+ {"version":3,"file":"Asset.cjs","sources":["../../src/Asset.tsx"],"sourcesContent":["import { Meta, Style, Title } from '@solidjs/meta'\nimport { onCleanup, onMount } from 'solid-js'\nimport type { RouterManagedTag } from '@tanstack/router-core'\nimport type { JSX } from 'solid-js'\n\nexport function Asset({\n tag,\n attrs,\n children,\n}: RouterManagedTag): JSX.Element | null {\n switch (tag) {\n case 'title':\n return <Title {...attrs}>{children}</Title>\n case 'meta':\n return <Meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <Style {...attrs} innerHTML={children} />\n case 'script':\n return <Script attrs={attrs}>{children}</Script>\n default:\n return null\n }\n}\n\ninterface ScriptAttrs {\n [key: string]: string | boolean | undefined\n src?: string\n}\n\nfunction Script({\n attrs,\n children,\n}: {\n attrs?: ScriptAttrs\n children?: string\n}): JSX.Element | null {\n onMount(() => {\n if (attrs?.src) {\n const script = document.createElement('script')\n\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n\n document.head.appendChild(script)\n\n onCleanup(() => {\n if (script.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n } else if (typeof children === 'string') {\n const script = document.createElement('script')\n script.textContent = children\n\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n }\n\n document.head.appendChild(script)\n\n onCleanup(() => {\n if (script.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n }\n })\n\n if (attrs?.src && typeof attrs.src === 'string') {\n return <script {...attrs} />\n }\n\n if (typeof children === 'string') {\n return <script {...attrs} innerHTML={children} />\n }\n\n return null\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_$mergeProps","Meta","_el$","_tmpl$","Style","innerHTML","Script","onMount","src","script","document","createElement","key","value","Object","entries","undefined","setAttribute","String","head","appendChild","onCleanup","parentNode","removeChild","textContent","_el$2","_tmpl$2","_el$3"],"mappings":";;;;;;AAKO,SAASA,MAAM;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AACgB,GAAuB;AACvC,UAAQF,KAAG;AAAA,IACT,KAAK;AACHG,aAAAA,oBAAQC,KAAAA,OAAKC,IAAAA,WAAKJ,OAAK;AAAA,QAAAC;AAAAA,MAAAA,CAAW,CAAA;AAAA,IACpC,KAAK;AACHC,aAAAA,IAAAA,gBAAQG,WAASL,KAAK;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAM,OAAAC,OAAA;AAAAD,YAAAA,OAAAA,MAAiBN,OAAK,OAAA,KAAA;AAAAM,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACHJ,aAAAA,oBAAQM,KAAAA,OAAKJ,IAAAA,WAAKJ,OAAK;AAAA,QAAES,WAAWR;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAC9C,KAAK;AACH,aAAAC,IAAAA,gBAAQQ,QAAM;AAAA,QAACV;AAAAA,QAAYC;AAAAA,MAAAA,CAAW;AAAA,IACxC;AACS,aAAA;AAAA,EAAA;AAEb;AAOA,SAASS,OAAO;AAAA,EACdV;AAAAA,EACAC;AAIF,GAAuB;AACrBU,QAAAA,QAAQ,MAAM;AACZ,QAAIX,+BAAOY,KAAK;AACRC,YAAAA,SAASC,SAASC,cAAc,QAAQ;AAE9C,iBAAW,CAACC,KAAKC,KAAK,KAAKC,OAAOC,QAAQnB,KAAK,GAAG;AAC5CiB,YAAAA,UAAUG,UAAaH,UAAU,OAAO;AACnCI,iBAAAA,aACLL,KACA,OAAOC,UAAU,YAAY,KAAKK,OAAOL,KAAK,CAChD;AAAA,QAAA;AAAA,MACF;AAGOM,eAAAA,KAAKC,YAAYX,MAAM;AAEhCY,YAAAA,UAAU,MAAM;AACd,YAAIZ,OAAOa,YAAY;AACdA,iBAAAA,WAAWC,YAAYd,MAAM;AAAA,QAAA;AAAA,MACtC,CACD;AAAA,IAAA,WACQ,OAAOZ,aAAa,UAAU;AACjCY,YAAAA,SAASC,SAASC,cAAc,QAAQ;AAC9CF,aAAOe,cAAc3B;AAErB,UAAID,OAAO;AACT,mBAAW,CAACgB,KAAKC,KAAK,KAAKC,OAAOC,QAAQnB,KAAK,GAAG;AAC5CiB,cAAAA,UAAUG,UAAaH,UAAU,OAAO;AACnCI,mBAAAA,aACLL,KACA,OAAOC,UAAU,YAAY,KAAKK,OAAOL,KAAK,CAChD;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAGOM,eAAAA,KAAKC,YAAYX,MAAM;AAEhCY,YAAAA,UAAU,MAAM;AACd,YAAIZ,OAAOa,YAAY;AACdA,iBAAAA,WAAWC,YAAYd,MAAM;AAAA,QAAA;AAAA,MACtC,CACD;AAAA,IAAA;AAAA,EACH,CACD;AAED,OAAIb,+BAAOY,QAAO,OAAOZ,MAAMY,QAAQ,UAAU;AAC/C,YAAA,MAAA;AAAA,UAAAiB,QAAAC,QAAA;AAAAD,UAAAA,OAAAA,OAAmB7B,OAAK,OAAA,KAAA;AAAA6B,aAAAA;AAAAA,IAAAA,GAAA;AAAA,EAAA;AAGtB,MAAA,OAAO5B,aAAa,UAAU;AAChC,YAAA,MAAA;AAAA,UAAA8B,QAAAD,QAAA;AAAAC,iBAAAA,OAAA3B,eAAmBJ,OAAK;AAAA,QAAA,aAAaC;AAAAA,MAAAA,CAAQ,GAAA,OAAA,KAAA;AAAA8B,aAAAA;AAAAA,IAAAA,GAAA;AAAA,EAAA;AAGxC,SAAA;AACT;;"}
@@ -1,2 +1,3 @@
1
1
  import { RouterManagedTag } from '@tanstack/router-core';
2
- export declare function Asset({ tag, attrs, children }: RouterManagedTag): any;
2
+ import { JSX } from 'solid-js';
3
+ export declare function Asset({ tag, attrs, children, }: RouterManagedTag): JSX.Element | null;
@@ -1,2 +1,3 @@
1
1
  import { RouterManagedTag } from '@tanstack/router-core';
2
- export declare function Asset({ tag, attrs, children }: RouterManagedTag): any;
2
+ import { JSX } from 'solid-js';
3
+ export declare function Asset({ tag, attrs, children, }: RouterManagedTag): JSX.Element | null;
package/dist/esm/Asset.js CHANGED
@@ -1,5 +1,6 @@
1
- import { template, spread, mergeProps, createComponent } from "solid-js/web";
1
+ import { createComponent, mergeProps, template, spread } from "solid-js/web";
2
2
  import { Style, Meta, Title } from "@solidjs/meta";
3
+ import { onMount, onCleanup } from "solid-js";
3
4
  var _tmpl$ = /* @__PURE__ */ template(`<link>`), _tmpl$2 = /* @__PURE__ */ template(`<script>`);
4
5
  function Asset({
5
6
  tag,
@@ -24,25 +25,68 @@ function Asset({
24
25
  innerHTML: children
25
26
  }));
26
27
  case "script":
27
- if (attrs && attrs.src) {
28
- return (() => {
29
- var _el$2 = _tmpl$2();
30
- spread(_el$2, attrs, false, false);
31
- return _el$2;
32
- })();
33
- }
34
- if (typeof children === "string") return (() => {
35
- var _el$3 = _tmpl$2();
36
- spread(_el$3, mergeProps(attrs, {
37
- "innerHTML": children
38
- }), false, false);
39
- return _el$3;
40
- })();
41
- return null;
28
+ return createComponent(Script, {
29
+ attrs,
30
+ children
31
+ });
42
32
  default:
43
33
  return null;
44
34
  }
45
35
  }
36
+ function Script({
37
+ attrs,
38
+ children
39
+ }) {
40
+ onMount(() => {
41
+ if (attrs == null ? void 0 : attrs.src) {
42
+ const script = document.createElement("script");
43
+ for (const [key, value] of Object.entries(attrs)) {
44
+ if (value !== void 0 && value !== false) {
45
+ script.setAttribute(key, typeof value === "boolean" ? "" : String(value));
46
+ }
47
+ }
48
+ document.head.appendChild(script);
49
+ onCleanup(() => {
50
+ if (script.parentNode) {
51
+ script.parentNode.removeChild(script);
52
+ }
53
+ });
54
+ } else if (typeof children === "string") {
55
+ const script = document.createElement("script");
56
+ script.textContent = children;
57
+ if (attrs) {
58
+ for (const [key, value] of Object.entries(attrs)) {
59
+ if (value !== void 0 && value !== false) {
60
+ script.setAttribute(key, typeof value === "boolean" ? "" : String(value));
61
+ }
62
+ }
63
+ }
64
+ document.head.appendChild(script);
65
+ onCleanup(() => {
66
+ if (script.parentNode) {
67
+ script.parentNode.removeChild(script);
68
+ }
69
+ });
70
+ }
71
+ });
72
+ if ((attrs == null ? void 0 : attrs.src) && typeof attrs.src === "string") {
73
+ return (() => {
74
+ var _el$2 = _tmpl$2();
75
+ spread(_el$2, attrs, false, false);
76
+ return _el$2;
77
+ })();
78
+ }
79
+ if (typeof children === "string") {
80
+ return (() => {
81
+ var _el$3 = _tmpl$2();
82
+ spread(_el$3, mergeProps(attrs, {
83
+ "innerHTML": children
84
+ }), false, false);
85
+ return _el$3;
86
+ })();
87
+ }
88
+ return null;
89
+ }
46
90
  export {
47
91
  Asset
48
92
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Asset.js","sources":["../../src/Asset.tsx"],"sourcesContent":["import { Meta, Style, Title } from '@solidjs/meta'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport function Asset({ tag, attrs, children }: RouterManagedTag): any {\n switch (tag) {\n case 'title':\n return <Title {...attrs}>{children}</Title>\n case 'meta':\n return <Meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <Style {...attrs} innerHTML={children} />\n case 'script':\n if ((attrs as any) && (attrs as any).src) {\n return <script {...attrs} />\n }\n if (typeof children === 'string')\n return <script {...attrs} innerHTML={children} />\n return null\n default:\n return null\n }\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_$mergeProps","Meta","_el$","_tmpl$","Style","innerHTML","src","_el$2","_tmpl$2","_el$3"],"mappings":";;;AAGO,SAASA,MAAM;AAAA,EAAEC;AAAAA,EAAKC;AAAAA,EAAOC;AAA2B,GAAQ;AACrE,UAAQF,KAAG;AAAA,IACT,KAAK;AACHG,aAAAA,gBAAQC,OAAKC,WAAKJ,OAAK;AAAA,QAAAC;AAAAA,MAAAA,CAAW,CAAA;AAAA,IACpC,KAAK;AACHC,aAAAA,gBAAQG,MAASL,KAAK;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAM,OAAAC,OAAA;AAAAD,eAAAA,MAAiBN,OAAK,OAAA,KAAA;AAAAM,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACHJ,aAAAA,gBAAQM,OAAKJ,WAAKJ,OAAK;AAAA,QAAES,WAAWR;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAC9C,KAAK;AACED,UAAAA,SAAkBA,MAAcU,KAAK;AACxC,gBAAA,MAAA;AAAA,cAAAC,QAAAC,QAAA;AAAAD,iBAAAA,OAAmBX,OAAK,OAAA,KAAA;AAAAW,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,MAAA;AAE1B,UAAI,OAAOV,aAAa,SACtB,SAAA,MAAA;AAAA,YAAAY,QAAAD,QAAA;AAAAC,eAAAA,OAAAT,WAAmBJ,OAAK;AAAA,UAAA,aAAaC;AAAAA,QAAAA,CAAQ,GAAA,OAAA,KAAA;AAAAY,eAAAA;AAAAA,MAAAA,GAAA;AACxC,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EAAA;AAEb;"}
1
+ {"version":3,"file":"Asset.js","sources":["../../src/Asset.tsx"],"sourcesContent":["import { Meta, Style, Title } from '@solidjs/meta'\nimport { onCleanup, onMount } from 'solid-js'\nimport type { RouterManagedTag } from '@tanstack/router-core'\nimport type { JSX } from 'solid-js'\n\nexport function Asset({\n tag,\n attrs,\n children,\n}: RouterManagedTag): JSX.Element | null {\n switch (tag) {\n case 'title':\n return <Title {...attrs}>{children}</Title>\n case 'meta':\n return <Meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <Style {...attrs} innerHTML={children} />\n case 'script':\n return <Script attrs={attrs}>{children}</Script>\n default:\n return null\n }\n}\n\ninterface ScriptAttrs {\n [key: string]: string | boolean | undefined\n src?: string\n}\n\nfunction Script({\n attrs,\n children,\n}: {\n attrs?: ScriptAttrs\n children?: string\n}): JSX.Element | null {\n onMount(() => {\n if (attrs?.src) {\n const script = document.createElement('script')\n\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n\n document.head.appendChild(script)\n\n onCleanup(() => {\n if (script.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n } else if (typeof children === 'string') {\n const script = document.createElement('script')\n script.textContent = children\n\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n }\n\n document.head.appendChild(script)\n\n onCleanup(() => {\n if (script.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n }\n })\n\n if (attrs?.src && typeof attrs.src === 'string') {\n return <script {...attrs} />\n }\n\n if (typeof children === 'string') {\n return <script {...attrs} innerHTML={children} />\n }\n\n return null\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_$mergeProps","Meta","_el$","_tmpl$","Style","innerHTML","Script","onMount","src","script","document","createElement","key","value","Object","entries","undefined","setAttribute","String","head","appendChild","onCleanup","parentNode","removeChild","textContent","_el$2","_tmpl$2","_el$3"],"mappings":";;;;AAKO,SAASA,MAAM;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AACgB,GAAuB;AACvC,UAAQF,KAAG;AAAA,IACT,KAAK;AACHG,aAAAA,gBAAQC,OAAKC,WAAKJ,OAAK;AAAA,QAAAC;AAAAA,MAAAA,CAAW,CAAA;AAAA,IACpC,KAAK;AACHC,aAAAA,gBAAQG,MAASL,KAAK;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAM,OAAAC,OAAA;AAAAD,eAAAA,MAAiBN,OAAK,OAAA,KAAA;AAAAM,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACHJ,aAAAA,gBAAQM,OAAKJ,WAAKJ,OAAK;AAAA,QAAES,WAAWR;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAC9C,KAAK;AACH,aAAAC,gBAAQQ,QAAM;AAAA,QAACV;AAAAA,QAAYC;AAAAA,MAAAA,CAAW;AAAA,IACxC;AACS,aAAA;AAAA,EAAA;AAEb;AAOA,SAASS,OAAO;AAAA,EACdV;AAAAA,EACAC;AAIF,GAAuB;AACrBU,UAAQ,MAAM;AACZ,QAAIX,+BAAOY,KAAK;AACRC,YAAAA,SAASC,SAASC,cAAc,QAAQ;AAE9C,iBAAW,CAACC,KAAKC,KAAK,KAAKC,OAAOC,QAAQnB,KAAK,GAAG;AAC5CiB,YAAAA,UAAUG,UAAaH,UAAU,OAAO;AACnCI,iBAAAA,aACLL,KACA,OAAOC,UAAU,YAAY,KAAKK,OAAOL,KAAK,CAChD;AAAA,QAAA;AAAA,MACF;AAGOM,eAAAA,KAAKC,YAAYX,MAAM;AAEhCY,gBAAU,MAAM;AACd,YAAIZ,OAAOa,YAAY;AACdA,iBAAAA,WAAWC,YAAYd,MAAM;AAAA,QAAA;AAAA,MACtC,CACD;AAAA,IAAA,WACQ,OAAOZ,aAAa,UAAU;AACjCY,YAAAA,SAASC,SAASC,cAAc,QAAQ;AAC9CF,aAAOe,cAAc3B;AAErB,UAAID,OAAO;AACT,mBAAW,CAACgB,KAAKC,KAAK,KAAKC,OAAOC,QAAQnB,KAAK,GAAG;AAC5CiB,cAAAA,UAAUG,UAAaH,UAAU,OAAO;AACnCI,mBAAAA,aACLL,KACA,OAAOC,UAAU,YAAY,KAAKK,OAAOL,KAAK,CAChD;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAGOM,eAAAA,KAAKC,YAAYX,MAAM;AAEhCY,gBAAU,MAAM;AACd,YAAIZ,OAAOa,YAAY;AACdA,iBAAAA,WAAWC,YAAYd,MAAM;AAAA,QAAA;AAAA,MACtC,CACD;AAAA,IAAA;AAAA,EACH,CACD;AAED,OAAIb,+BAAOY,QAAO,OAAOZ,MAAMY,QAAQ,UAAU;AAC/C,YAAA,MAAA;AAAA,UAAAiB,QAAAC,QAAA;AAAAD,aAAAA,OAAmB7B,OAAK,OAAA,KAAA;AAAA6B,aAAAA;AAAAA,IAAAA,GAAA;AAAA,EAAA;AAGtB,MAAA,OAAO5B,aAAa,UAAU;AAChC,YAAA,MAAA;AAAA,UAAA8B,QAAAD,QAAA;AAAAC,aAAAA,OAAA3B,WAAmBJ,OAAK;AAAA,QAAA,aAAaC;AAAAA,MAAAA,CAAQ,GAAA,OAAA,KAAA;AAAA8B,aAAAA;AAAAA,IAAAA,GAAA;AAAA,EAAA;AAGxC,SAAA;AACT;"}
@@ -1,2 +1,3 @@
1
1
  import type { RouterManagedTag } from '@tanstack/router-core';
2
- export declare function Asset({ tag, attrs, children }: RouterManagedTag): any;
2
+ import type { JSX } from 'solid-js';
3
+ export declare function Asset({ tag, attrs, children, }: RouterManagedTag): JSX.Element | null;
@@ -1,5 +1,6 @@
1
1
  import { Meta, Style, Title } from '@solidjs/meta';
2
- export function Asset({ tag, attrs, children }) {
2
+ import { onCleanup, onMount } from 'solid-js';
3
+ export function Asset({ tag, attrs, children, }) {
3
4
  switch (tag) {
4
5
  case 'title':
5
6
  return <Title {...attrs}>{children}</Title>;
@@ -10,14 +11,51 @@ export function Asset({ tag, attrs, children }) {
10
11
  case 'style':
11
12
  return <Style {...attrs} innerHTML={children}/>;
12
13
  case 'script':
13
- if (attrs && attrs.src) {
14
- return <script {...attrs}/>;
15
- }
16
- if (typeof children === 'string')
17
- return <script {...attrs} innerHTML={children}/>;
18
- return null;
14
+ return <Script attrs={attrs}>{children}</Script>;
19
15
  default:
20
16
  return null;
21
17
  }
22
18
  }
19
+ function Script({ attrs, children, }) {
20
+ onMount(() => {
21
+ if (attrs?.src) {
22
+ const script = document.createElement('script');
23
+ for (const [key, value] of Object.entries(attrs)) {
24
+ if (value !== undefined && value !== false) {
25
+ script.setAttribute(key, typeof value === 'boolean' ? '' : String(value));
26
+ }
27
+ }
28
+ document.head.appendChild(script);
29
+ onCleanup(() => {
30
+ if (script.parentNode) {
31
+ script.parentNode.removeChild(script);
32
+ }
33
+ });
34
+ }
35
+ else if (typeof children === 'string') {
36
+ const script = document.createElement('script');
37
+ script.textContent = children;
38
+ if (attrs) {
39
+ for (const [key, value] of Object.entries(attrs)) {
40
+ if (value !== undefined && value !== false) {
41
+ script.setAttribute(key, typeof value === 'boolean' ? '' : String(value));
42
+ }
43
+ }
44
+ }
45
+ document.head.appendChild(script);
46
+ onCleanup(() => {
47
+ if (script.parentNode) {
48
+ script.parentNode.removeChild(script);
49
+ }
50
+ });
51
+ }
52
+ });
53
+ if (attrs?.src && typeof attrs.src === 'string') {
54
+ return <script {...attrs}/>;
55
+ }
56
+ if (typeof children === 'string') {
57
+ return <script {...attrs} innerHTML={children}/>;
58
+ }
59
+ return null;
60
+ }
23
61
  //# sourceMappingURL=Asset.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"Asset.jsx","sourceRoot":"","sources":["../../src/Asset.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAGlD,MAAM,UAAU,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAoB;IAC9D,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAA;QAC7C,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAG,CAAA;QAC5B,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAG,CAAA;QAC5B,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAG,CAAA;QAClD,KAAK,QAAQ;YACX,IAAK,KAAa,IAAK,KAAa,CAAC,GAAG,EAAE,CAAC;gBACzC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAG,CAAA;YAC9B,CAAC;YACD,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAG,CAAA;YACnD,OAAO,IAAI,CAAA;QACb;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"Asset.jsx","sourceRoot":"","sources":["../../src/Asset.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/solid-router",
3
- "version": "1.121.21",
3
+ "version": "1.121.24",
4
4
  "description": "Modern and scalable routing for Solid applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
package/src/Asset.tsx CHANGED
@@ -1,7 +1,13 @@
1
1
  import { Meta, Style, Title } from '@solidjs/meta'
2
+ import { onCleanup, onMount } from 'solid-js'
2
3
  import type { RouterManagedTag } from '@tanstack/router-core'
4
+ import type { JSX } from 'solid-js'
3
5
 
4
- export function Asset({ tag, attrs, children }: RouterManagedTag): any {
6
+ export function Asset({
7
+ tag,
8
+ attrs,
9
+ children,
10
+ }: RouterManagedTag): JSX.Element | null {
5
11
  switch (tag) {
6
12
  case 'title':
7
13
  return <Title {...attrs}>{children}</Title>
@@ -12,13 +18,76 @@ export function Asset({ tag, attrs, children }: RouterManagedTag): any {
12
18
  case 'style':
13
19
  return <Style {...attrs} innerHTML={children} />
14
20
  case 'script':
15
- if ((attrs as any) && (attrs as any).src) {
16
- return <script {...attrs} />
17
- }
18
- if (typeof children === 'string')
19
- return <script {...attrs} innerHTML={children} />
20
- return null
21
+ return <Script attrs={attrs}>{children}</Script>
21
22
  default:
22
23
  return null
23
24
  }
24
25
  }
26
+
27
+ interface ScriptAttrs {
28
+ [key: string]: string | boolean | undefined
29
+ src?: string
30
+ }
31
+
32
+ function Script({
33
+ attrs,
34
+ children,
35
+ }: {
36
+ attrs?: ScriptAttrs
37
+ children?: string
38
+ }): JSX.Element | null {
39
+ onMount(() => {
40
+ if (attrs?.src) {
41
+ const script = document.createElement('script')
42
+
43
+ for (const [key, value] of Object.entries(attrs)) {
44
+ if (value !== undefined && value !== false) {
45
+ script.setAttribute(
46
+ key,
47
+ typeof value === 'boolean' ? '' : String(value),
48
+ )
49
+ }
50
+ }
51
+
52
+ document.head.appendChild(script)
53
+
54
+ onCleanup(() => {
55
+ if (script.parentNode) {
56
+ script.parentNode.removeChild(script)
57
+ }
58
+ })
59
+ } else if (typeof children === 'string') {
60
+ const script = document.createElement('script')
61
+ script.textContent = children
62
+
63
+ if (attrs) {
64
+ for (const [key, value] of Object.entries(attrs)) {
65
+ if (value !== undefined && value !== false) {
66
+ script.setAttribute(
67
+ key,
68
+ typeof value === 'boolean' ? '' : String(value),
69
+ )
70
+ }
71
+ }
72
+ }
73
+
74
+ document.head.appendChild(script)
75
+
76
+ onCleanup(() => {
77
+ if (script.parentNode) {
78
+ script.parentNode.removeChild(script)
79
+ }
80
+ })
81
+ }
82
+ })
83
+
84
+ if (attrs?.src && typeof attrs.src === 'string') {
85
+ return <script {...attrs} />
86
+ }
87
+
88
+ if (typeof children === 'string') {
89
+ return <script {...attrs} innerHTML={children} />
90
+ }
91
+
92
+ return null
93
+ }