vue-jsx-vapor 2.1.7 → 2.1.8

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/dist/api.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkGY27NIU6cjs = require('./chunk-GY27NIU6.cjs');
3
+ var _chunkVT3G3M3Gcjs = require('./chunk-VT3G3M3G.cjs');
4
4
 
5
5
 
6
- exports.transformVueJsxVapor = _chunkGY27NIU6cjs.transformVueJsxVapor;
6
+ exports.transformVueJsxVapor = _chunkVT3G3M3Gcjs.transformVueJsxVapor;
package/dist/api.d.cts CHANGED
@@ -1,19 +1,9 @@
1
+ import * as _babel_core from '@babel/core';
1
2
  import { Options } from './options.cjs';
2
3
  import '@vue-jsx-vapor/compiler';
3
4
  import '@vue-jsx-vapor/macros';
4
5
  import 'unplugin-utils';
5
6
 
6
- declare function transformVueJsxVapor(code: string, id: string, options?: Options): {
7
- code: string;
8
- map: {
9
- version: number;
10
- sources: string[];
11
- names: string[];
12
- sourceRoot?: string | undefined;
13
- sourcesContent?: string[] | undefined;
14
- mappings: string;
15
- file: string;
16
- } | null | undefined;
17
- } | undefined;
7
+ declare function transformVueJsxVapor(code: string, id: string, options?: Options): _babel_core.BabelFileResult | null;
18
8
 
19
9
  export { Options, transformVueJsxVapor };
package/dist/api.d.ts CHANGED
@@ -1,19 +1,9 @@
1
+ import * as _babel_core from '@babel/core';
1
2
  import { Options } from './options.js';
2
3
  import '@vue-jsx-vapor/compiler';
3
4
  import '@vue-jsx-vapor/macros';
4
5
  import 'unplugin-utils';
5
6
 
6
- declare function transformVueJsxVapor(code: string, id: string, options?: Options): {
7
- code: string;
8
- map: {
9
- version: number;
10
- sources: string[];
11
- names: string[];
12
- sourceRoot?: string | undefined;
13
- sourcesContent?: string[] | undefined;
14
- mappings: string;
15
- file: string;
16
- } | null | undefined;
17
- } | undefined;
7
+ declare function transformVueJsxVapor(code: string, id: string, options?: Options): _babel_core.BabelFileResult | null;
18
8
 
19
9
  export { Options, transformVueJsxVapor };
package/dist/api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  transformVueJsxVapor
3
- } from "./chunk-K7YI4ZKB.js";
3
+ } from "./chunk-XO54BK2I.js";
4
4
  export {
5
5
  transformVueJsxVapor
6
6
  };
package/dist/astro.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkJOQ6HUZ7cjs = require('./chunk-JOQ6HUZ7.cjs');
3
+ var _chunkMVHM4ZACcjs = require('./chunk-MVHM4ZAC.cjs');
4
4
  require('./chunk-GODVM7NB.cjs');
5
- require('./chunk-CVVA3UFV.cjs');
6
- require('./chunk-GY27NIU6.cjs');
5
+ require('./chunk-SM4PMROG.cjs');
6
+ require('./chunk-VT3G3M3G.cjs');
7
7
 
8
8
  // src/astro.ts
9
9
  var astro_default = (options) => ({
@@ -11,7 +11,7 @@ var astro_default = (options) => ({
11
11
  hooks: {
12
12
  "astro:config:setup": (astro) => {
13
13
  astro.config.vite.plugins ||= [];
14
- astro.config.vite.plugins.push(_chunkJOQ6HUZ7cjs.unplugin_default.vite(options));
14
+ astro.config.vite.plugins.push(_chunkMVHM4ZACcjs.unplugin_default.vite(options));
15
15
  }
16
16
  }
17
17
  });
package/dist/astro.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  unplugin_default
3
- } from "./chunk-G5FQVEHY.js";
3
+ } from "./chunk-4OJ67SAP.js";
4
4
  import "./chunk-JNAGPWSX.js";
5
- import "./chunk-MBCYFLIE.js";
6
- import "./chunk-K7YI4ZKB.js";
5
+ import "./chunk-ELIW3YO2.js";
6
+ import "./chunk-XO54BK2I.js";
7
7
 
8
8
  // src/astro.ts
9
9
  var astro_default = (options) => ({
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unplugin_default
3
- } from "./chunk-G5FQVEHY.js";
3
+ } from "./chunk-4OJ67SAP.js";
4
4
 
5
5
  // src/vite.ts
6
6
  var vite_default = unplugin_default.vite;
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkJOQ6HUZ7cjs = require('./chunk-JOQ6HUZ7.cjs');
3
+ var _chunkMVHM4ZACcjs = require('./chunk-MVHM4ZAC.cjs');
4
4
 
5
5
  // src/vite.ts
6
- var vite_default = _chunkJOQ6HUZ7cjs.unplugin_default.vite;
6
+ var vite_default = _chunkMVHM4ZACcjs.unplugin_default.vite;
7
7
 
8
8
 
9
9
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  raw_default
3
- } from "./chunk-MBCYFLIE.js";
3
+ } from "./chunk-ELIW3YO2.js";
4
4
 
5
5
  // src/unplugin.ts
6
6
  import { createUnplugin } from "unplugin";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unplugin_default
3
- } from "./chunk-G5FQVEHY.js";
3
+ } from "./chunk-4OJ67SAP.js";
4
4
 
5
5
  // src/webpack.ts
6
6
  var webpack_default = unplugin_default.webpack;
@@ -1,11 +1,115 @@
1
1
  import {
2
2
  transformVueJsxVapor
3
- } from "./chunk-K7YI4ZKB.js";
3
+ } from "./chunk-XO54BK2I.js";
4
4
 
5
5
  // src/raw.ts
6
6
  import Macros from "@vue-jsx-vapor/macros/raw";
7
7
  import { createFilter, normalizePath } from "unplugin-utils";
8
8
 
9
+ // src/core/hmr.ts
10
+ import { isFunctionalNode } from "@vue-jsx-vapor/macros/api";
11
+ import getHash from "hash-sum";
12
+ function registerHMR(result, id, defineComponentNames = ["defineComponent", "defineVaporComponent"]) {
13
+ const { ast } = result;
14
+ const declaredComponents = [];
15
+ const hotComponents = [];
16
+ let hasDefaultExport = false;
17
+ const ssr = false;
18
+ for (const node of ast.program.body) {
19
+ if (node.type === "VariableDeclaration") {
20
+ const names = parseComponentDecls(node, defineComponentNames);
21
+ if (names.length) {
22
+ declaredComponents.push(...names);
23
+ }
24
+ }
25
+ if (node.type === "ExportNamedDeclaration") {
26
+ if (node.declaration && node.declaration.type === "VariableDeclaration") {
27
+ hotComponents.push(
28
+ ...parseComponentDecls(node.declaration, defineComponentNames).map(
29
+ (name) => ({
30
+ local: name,
31
+ exported: name,
32
+ id: getHash(id + name)
33
+ })
34
+ )
35
+ );
36
+ } else if (node.specifiers.length) {
37
+ for (const spec of node.specifiers) {
38
+ if (spec.type === "ExportSpecifier" && spec.exported.type === "Identifier") {
39
+ const matched = declaredComponents.find(
40
+ (name) => name === spec.local.name
41
+ );
42
+ if (matched) {
43
+ hotComponents.push({
44
+ local: spec.local.name,
45
+ exported: spec.exported.name,
46
+ id: getHash(id + spec.exported.name)
47
+ });
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ if (node.type === "ExportDefaultDeclaration") {
54
+ if (node.declaration.type === "Identifier") {
55
+ const _name = node.declaration.name;
56
+ const matched = declaredComponents.find((name) => name === _name);
57
+ if (matched) {
58
+ hotComponents.push({
59
+ local: _name,
60
+ exported: "default",
61
+ id: getHash(`${id}default`)
62
+ });
63
+ }
64
+ } else if (isDefineComponentCall(node.declaration, defineComponentNames) || isFunctionalNode(node.declaration)) {
65
+ hasDefaultExport = true;
66
+ hotComponents.push({
67
+ local: "__default__",
68
+ exported: "default",
69
+ id: getHash(`${id}default`)
70
+ });
71
+ }
72
+ }
73
+ }
74
+ if (hotComponents.length) {
75
+ if (hasDefaultExport || ssr) {
76
+ result.code = `${result.code.replaceAll(
77
+ `export default `,
78
+ `const __default__ = `
79
+ )}
80
+ export default __default__`;
81
+ }
82
+ if (!ssr && !/\?vue&type=script/.test(id)) {
83
+ let code = result.code;
84
+ let callbackCode = ``;
85
+ for (const { local, exported, id: id2 } of hotComponents) {
86
+ code += `
87
+ ${local}.__hmrId = "${id2}"
88
+ __VUE_HMR_RUNTIME__.createRecord("${id2}", ${local})`;
89
+ callbackCode += `
90
+ __VUE_HMR_RUNTIME__.rerender(mod['${exported}'].__hmrId, mod['${exported}'].setup || mod['${exported}'])`;
91
+ }
92
+ code += `
93
+ if (import.meta.hot) {
94
+ import.meta.hot.accept((mod) => {${callbackCode}
95
+ })
96
+ }`;
97
+ result.code = code;
98
+ }
99
+ }
100
+ }
101
+ function parseComponentDecls(node, fnNames) {
102
+ const names = [];
103
+ for (const decl of node.declarations) {
104
+ if (decl.id.type === "Identifier" && (isDefineComponentCall(decl.init, fnNames) || isFunctionalNode(decl.init)))
105
+ names.push(decl.id.name);
106
+ }
107
+ return names;
108
+ }
109
+ function isDefineComponentCall(node, names) {
110
+ return !!(node && node.type === "CallExpression" && node.callee.type === "Identifier" && names.includes(node.callee.name));
111
+ }
112
+
9
113
  // src/core/runtime.ts?raw
10
114
  var runtime_default = 'import {\n effectScope,\n insert,\n isFragment,\n remove,\n renderEffect,\n VaporFragment\n} from "vue";\nexport { shallowRef as useRef } from "vue";\nfunction createFragment(nodes, anchor = document.createTextNode("")) {\n const frag = new VaporFragment(nodes);\n frag.anchor = anchor;\n return frag;\n}\nfunction normalizeValue(value, anchor) {\n if (value instanceof Node || isFragment(value)) {\n anchor && (anchor.textContent = "");\n return value;\n } else if (Array.isArray(value)) {\n anchor && (anchor.textContent = "");\n return createFragment(\n value.map((i) => normalizeValue(i)),\n anchor\n );\n } else {\n const result = value == null || typeof value === "boolean" ? "" : String(value);\n if (anchor) {\n anchor.textContent = result;\n return anchor;\n } else {\n return document.createTextNode(result);\n }\n }\n}\nfunction resolveValue(current, value, anchor) {\n const node = normalizeValue(value, anchor);\n if (current) {\n if (isFragment(current)) {\n const { anchor: anchor2 } = current;\n if (anchor2 && anchor2.parentNode) {\n remove(current.nodes, anchor2.parentNode);\n insert(node, anchor2.parentNode, anchor2);\n anchor2.remove();\n }\n } else if (current instanceof Node) {\n if (isFragment(node) && current.parentNode) {\n insert(node, current.parentNode, current);\n current.remove();\n } else if (node instanceof Node) {\n if (current.nodeType === 3 && node.nodeType === 3) {\n current.textContent = node.textContent;\n return current;\n } else if (current.parentNode) {\n current.parentNode.replaceChild(node, current);\n }\n }\n }\n }\n return node;\n}\nfunction resolveValues(values = [], _anchor) {\n const nodes = [];\n const scopes = [];\n for (const [index, value] of values.entries()) {\n const anchor = index === values.length - 1 ? _anchor : void 0;\n if (typeof value === "function") {\n renderEffect(() => {\n if (scopes[index]) scopes[index].stop();\n scopes[index] = effectScope();\n nodes[index] = scopes[index].run(\n () => resolveValue(nodes[index], value(), anchor)\n );\n });\n } else {\n nodes[index] = resolveValue(nodes[index], value, anchor);\n }\n }\n return nodes;\n}\nexport function setNodes(anchor, ...values) {\n const resolvedValues = resolveValues(values, anchor);\n anchor.parentNode && insert(resolvedValues, anchor.parentNode, anchor);\n}\nexport function createNodes(...values) {\n return resolveValues(values);\n}\n';
11
115
 
@@ -15,6 +119,7 @@ var plugin = (options = {}) => {
15
119
  options?.include || /\.[cm]?[jt]sx?$/,
16
120
  options?.exclude
17
121
  );
122
+ let needHMR = false;
18
123
  return [
19
124
  {
20
125
  name: "vue-jsx-vapor",
@@ -32,6 +137,9 @@ var plugin = (options = {}) => {
32
137
  __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: config.define?.__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ ?? false
33
138
  }
34
139
  };
140
+ },
141
+ configResolved(config) {
142
+ needHMR = config.command === "serve";
35
143
  }
36
144
  },
37
145
  resolveId(id) {
@@ -45,7 +153,14 @@ var plugin = (options = {}) => {
45
153
  },
46
154
  transformInclude,
47
155
  transform(code, id) {
48
- return transformVueJsxVapor(code, id, options);
156
+ const result = transformVueJsxVapor(code, id, options);
157
+ if (result?.code) {
158
+ needHMR && registerHMR(result, id);
159
+ return {
160
+ code: result.code,
161
+ map: result.map
162
+ };
163
+ }
49
164
  }
50
165
  },
51
166
  ...options.macros === false ? [] : options.macros ? [Macros(options.macros === true ? void 0 : options.macros)] : []
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkCVVA3UFVcjs = require('./chunk-CVVA3UFV.cjs');
3
+ var _chunkSM4PMROGcjs = require('./chunk-SM4PMROG.cjs');
4
4
 
5
5
  // src/unplugin.ts
6
6
  var _unplugin = require('unplugin');
7
7
  var _vite = require('vite');
8
8
  var unpluginFactory = (options = {}) => {
9
9
  return [
10
- ..._chunkCVVA3UFVcjs.raw_default.call(void 0, options),
10
+ ..._chunkSM4PMROGcjs.raw_default.call(void 0, options),
11
11
  options.interop ? { name: "interop" } : {
12
12
  name: "unplugin-esbuild",
13
13
  transformInclude: _vite.createFilter.call(void 0,
@@ -1,11 +1,115 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkGY27NIU6cjs = require('./chunk-GY27NIU6.cjs');
3
+ var _chunkVT3G3M3Gcjs = require('./chunk-VT3G3M3G.cjs');
4
4
 
5
5
  // src/raw.ts
6
6
  var _raw = require('@vue-jsx-vapor/macros/raw'); var _raw2 = _interopRequireDefault(_raw);
7
7
  var _unpluginutils = require('unplugin-utils');
8
8
 
9
+ // src/core/hmr.ts
10
+ var _api = require('@vue-jsx-vapor/macros/api');
11
+ var _hashsum = require('hash-sum'); var _hashsum2 = _interopRequireDefault(_hashsum);
12
+ function registerHMR(result, id, defineComponentNames = ["defineComponent", "defineVaporComponent"]) {
13
+ const { ast } = result;
14
+ const declaredComponents = [];
15
+ const hotComponents = [];
16
+ let hasDefaultExport = false;
17
+ const ssr = false;
18
+ for (const node of ast.program.body) {
19
+ if (node.type === "VariableDeclaration") {
20
+ const names = parseComponentDecls(node, defineComponentNames);
21
+ if (names.length) {
22
+ declaredComponents.push(...names);
23
+ }
24
+ }
25
+ if (node.type === "ExportNamedDeclaration") {
26
+ if (node.declaration && node.declaration.type === "VariableDeclaration") {
27
+ hotComponents.push(
28
+ ...parseComponentDecls(node.declaration, defineComponentNames).map(
29
+ (name) => ({
30
+ local: name,
31
+ exported: name,
32
+ id: _hashsum2.default.call(void 0, id + name)
33
+ })
34
+ )
35
+ );
36
+ } else if (node.specifiers.length) {
37
+ for (const spec of node.specifiers) {
38
+ if (spec.type === "ExportSpecifier" && spec.exported.type === "Identifier") {
39
+ const matched = declaredComponents.find(
40
+ (name) => name === spec.local.name
41
+ );
42
+ if (matched) {
43
+ hotComponents.push({
44
+ local: spec.local.name,
45
+ exported: spec.exported.name,
46
+ id: _hashsum2.default.call(void 0, id + spec.exported.name)
47
+ });
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ if (node.type === "ExportDefaultDeclaration") {
54
+ if (node.declaration.type === "Identifier") {
55
+ const _name = node.declaration.name;
56
+ const matched = declaredComponents.find((name) => name === _name);
57
+ if (matched) {
58
+ hotComponents.push({
59
+ local: _name,
60
+ exported: "default",
61
+ id: _hashsum2.default.call(void 0, `${id}default`)
62
+ });
63
+ }
64
+ } else if (isDefineComponentCall(node.declaration, defineComponentNames) || _api.isFunctionalNode.call(void 0, node.declaration)) {
65
+ hasDefaultExport = true;
66
+ hotComponents.push({
67
+ local: "__default__",
68
+ exported: "default",
69
+ id: _hashsum2.default.call(void 0, `${id}default`)
70
+ });
71
+ }
72
+ }
73
+ }
74
+ if (hotComponents.length) {
75
+ if (hasDefaultExport || ssr) {
76
+ result.code = `${result.code.replaceAll(
77
+ `export default `,
78
+ `const __default__ = `
79
+ )}
80
+ export default __default__`;
81
+ }
82
+ if (!ssr && !/\?vue&type=script/.test(id)) {
83
+ let code = result.code;
84
+ let callbackCode = ``;
85
+ for (const { local, exported, id: id2 } of hotComponents) {
86
+ code += `
87
+ ${local}.__hmrId = "${id2}"
88
+ __VUE_HMR_RUNTIME__.createRecord("${id2}", ${local})`;
89
+ callbackCode += `
90
+ __VUE_HMR_RUNTIME__.rerender(mod['${exported}'].__hmrId, mod['${exported}'].setup || mod['${exported}'])`;
91
+ }
92
+ code += `
93
+ if (import.meta.hot) {
94
+ import.meta.hot.accept((mod) => {${callbackCode}
95
+ })
96
+ }`;
97
+ result.code = code;
98
+ }
99
+ }
100
+ }
101
+ function parseComponentDecls(node, fnNames) {
102
+ const names = [];
103
+ for (const decl of node.declarations) {
104
+ if (decl.id.type === "Identifier" && (isDefineComponentCall(decl.init, fnNames) || _api.isFunctionalNode.call(void 0, decl.init)))
105
+ names.push(decl.id.name);
106
+ }
107
+ return names;
108
+ }
109
+ function isDefineComponentCall(node, names) {
110
+ return !!(node && node.type === "CallExpression" && node.callee.type === "Identifier" && names.includes(node.callee.name));
111
+ }
112
+
9
113
  // src/core/runtime.ts?raw
10
114
  var runtime_default = 'import {\n effectScope,\n insert,\n isFragment,\n remove,\n renderEffect,\n VaporFragment\n} from "vue";\nexport { shallowRef as useRef } from "vue";\nfunction createFragment(nodes, anchor = document.createTextNode("")) {\n const frag = new VaporFragment(nodes);\n frag.anchor = anchor;\n return frag;\n}\nfunction normalizeValue(value, anchor) {\n if (value instanceof Node || isFragment(value)) {\n anchor && (anchor.textContent = "");\n return value;\n } else if (Array.isArray(value)) {\n anchor && (anchor.textContent = "");\n return createFragment(\n value.map((i) => normalizeValue(i)),\n anchor\n );\n } else {\n const result = value == null || typeof value === "boolean" ? "" : String(value);\n if (anchor) {\n anchor.textContent = result;\n return anchor;\n } else {\n return document.createTextNode(result);\n }\n }\n}\nfunction resolveValue(current, value, anchor) {\n const node = normalizeValue(value, anchor);\n if (current) {\n if (isFragment(current)) {\n const { anchor: anchor2 } = current;\n if (anchor2 && anchor2.parentNode) {\n remove(current.nodes, anchor2.parentNode);\n insert(node, anchor2.parentNode, anchor2);\n anchor2.remove();\n }\n } else if (current instanceof Node) {\n if (isFragment(node) && current.parentNode) {\n insert(node, current.parentNode, current);\n current.remove();\n } else if (node instanceof Node) {\n if (current.nodeType === 3 && node.nodeType === 3) {\n current.textContent = node.textContent;\n return current;\n } else if (current.parentNode) {\n current.parentNode.replaceChild(node, current);\n }\n }\n }\n }\n return node;\n}\nfunction resolveValues(values = [], _anchor) {\n const nodes = [];\n const scopes = [];\n for (const [index, value] of values.entries()) {\n const anchor = index === values.length - 1 ? _anchor : void 0;\n if (typeof value === "function") {\n renderEffect(() => {\n if (scopes[index]) scopes[index].stop();\n scopes[index] = effectScope();\n nodes[index] = scopes[index].run(\n () => resolveValue(nodes[index], value(), anchor)\n );\n });\n } else {\n nodes[index] = resolveValue(nodes[index], value, anchor);\n }\n }\n return nodes;\n}\nexport function setNodes(anchor, ...values) {\n const resolvedValues = resolveValues(values, anchor);\n anchor.parentNode && insert(resolvedValues, anchor.parentNode, anchor);\n}\nexport function createNodes(...values) {\n return resolveValues(values);\n}\n';
11
115
 
@@ -15,6 +119,7 @@ var plugin = (options = {}) => {
15
119
  _optionalChain([options, 'optionalAccess', _ => _.include]) || /\.[cm]?[jt]sx?$/,
16
120
  _optionalChain([options, 'optionalAccess', _2 => _2.exclude])
17
121
  );
122
+ let needHMR = false;
18
123
  return [
19
124
  {
20
125
  name: "vue-jsx-vapor",
@@ -32,6 +137,9 @@ var plugin = (options = {}) => {
32
137
  __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: _nullishCoalesce(_optionalChain([config, 'access', _7 => _7.define, 'optionalAccess', _8 => _8.__VUE_PROD_HYDRATION_MISMATCH_DETAILS__]), () => ( false))
33
138
  }
34
139
  };
140
+ },
141
+ configResolved(config) {
142
+ needHMR = config.command === "serve";
35
143
  }
36
144
  },
37
145
  resolveId(id) {
@@ -45,7 +153,14 @@ var plugin = (options = {}) => {
45
153
  },
46
154
  transformInclude,
47
155
  transform(code, id) {
48
- return _chunkGY27NIU6cjs.transformVueJsxVapor.call(void 0, code, id, options);
156
+ const result = _chunkVT3G3M3Gcjs.transformVueJsxVapor.call(void 0, code, id, options);
157
+ if (_optionalChain([result, 'optionalAccess', _9 => _9.code])) {
158
+ needHMR && registerHMR(result, id);
159
+ return {
160
+ code: result.code,
161
+ map: result.map
162
+ };
163
+ }
49
164
  }
50
165
  },
51
166
  ...options.macros === false ? [] : options.macros ? [_raw2.default.call(void 0, options.macros === true ? void 0 : options.macros)] : []
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkJOQ6HUZ7cjs = require('./chunk-JOQ6HUZ7.cjs');
3
+ var _chunkMVHM4ZACcjs = require('./chunk-MVHM4ZAC.cjs');
4
4
 
5
5
  // src/webpack.ts
6
- var webpack_default = _chunkJOQ6HUZ7cjs.unplugin_default.webpack;
6
+ var webpack_default = _chunkMVHM4ZACcjs.unplugin_default.webpack;
7
7
 
8
8
 
9
9
 
@@ -0,0 +1,22 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/core/index.ts
2
+ var _core = require('@babel/core');
3
+ var _plugintransformtypescript = require('@babel/plugin-transform-typescript'); var _plugintransformtypescript2 = _interopRequireDefault(_plugintransformtypescript);
4
+ var _babel = require('@vue-jsx-vapor/babel'); var _babel2 = _interopRequireDefault(_babel);
5
+ function transformVueJsxVapor(code, id, options) {
6
+ return _core.transformSync.call(void 0, code, {
7
+ plugins: [
8
+ [_babel2.default, { compile: _optionalChain([options, 'optionalAccess', _ => _.compile]), interop: _optionalChain([options, 'optionalAccess', _2 => _2.interop]) }],
9
+ id.endsWith(".tsx") ? [_plugintransformtypescript2.default, { isTSX: true, allowExtensions: true }] : null
10
+ ].filter((i) => i !== null),
11
+ filename: id,
12
+ sourceMaps: true,
13
+ sourceFileName: id,
14
+ babelrc: false,
15
+ configFile: false,
16
+ ast: true
17
+ });
18
+ }
19
+
20
+
21
+
22
+ exports.transformVueJsxVapor = transformVueJsxVapor;
@@ -0,0 +1,22 @@
1
+ // src/core/index.ts
2
+ import { transformSync } from "@babel/core";
3
+ import babelTypescript from "@babel/plugin-transform-typescript";
4
+ import jsx from "@vue-jsx-vapor/babel";
5
+ function transformVueJsxVapor(code, id, options) {
6
+ return transformSync(code, {
7
+ plugins: [
8
+ [jsx, { compile: options?.compile, interop: options?.interop }],
9
+ id.endsWith(".tsx") ? [babelTypescript, { isTSX: true, allowExtensions: true }] : null
10
+ ].filter((i) => i !== null),
11
+ filename: id,
12
+ sourceMaps: true,
13
+ sourceFileName: id,
14
+ babelrc: false,
15
+ configFile: false,
16
+ ast: true
17
+ });
18
+ }
19
+
20
+ export {
21
+ transformVueJsxVapor
22
+ };
package/dist/esbuild.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkJOQ6HUZ7cjs = require('./chunk-JOQ6HUZ7.cjs');
3
+ var _chunkMVHM4ZACcjs = require('./chunk-MVHM4ZAC.cjs');
4
4
  require('./chunk-GODVM7NB.cjs');
5
- require('./chunk-CVVA3UFV.cjs');
6
- require('./chunk-GY27NIU6.cjs');
5
+ require('./chunk-SM4PMROG.cjs');
6
+ require('./chunk-VT3G3M3G.cjs');
7
7
 
8
8
  // src/esbuild.ts
9
- var esbuild_default = _chunkJOQ6HUZ7cjs.unplugin_default.esbuild;
9
+ var esbuild_default = _chunkMVHM4ZACcjs.unplugin_default.esbuild;
10
10
 
11
11
 
12
12
  exports.default = esbuild_default;
package/dist/esbuild.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  unplugin_default
3
- } from "./chunk-G5FQVEHY.js";
3
+ } from "./chunk-4OJ67SAP.js";
4
4
  import "./chunk-JNAGPWSX.js";
5
- import "./chunk-MBCYFLIE.js";
6
- import "./chunk-K7YI4ZKB.js";
5
+ import "./chunk-ELIW3YO2.js";
6
+ import "./chunk-XO54BK2I.js";
7
7
 
8
8
  // src/esbuild.ts
9
9
  var esbuild_default = unplugin_default.esbuild;
package/dist/nuxt.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk4FRXY2W6cjs = require('./chunk-4FRXY2W6.cjs');
3
+ var _chunk47ZAMM2Gcjs = require('./chunk-47ZAMM2G.cjs');
4
4
 
5
5
 
6
- var _chunkWAOMEMCZcjs = require('./chunk-WAOMEMCZ.cjs');
7
- require('./chunk-JOQ6HUZ7.cjs');
6
+ var _chunkSU6A6M56cjs = require('./chunk-SU6A6M56.cjs');
7
+ require('./chunk-MVHM4ZAC.cjs');
8
8
  require('./chunk-GODVM7NB.cjs');
9
- require('./chunk-CVVA3UFV.cjs');
10
- require('./chunk-GY27NIU6.cjs');
9
+ require('./chunk-SM4PMROG.cjs');
10
+ require('./chunk-VT3G3M3G.cjs');
11
11
 
12
12
  // src/nuxt.ts
13
13
  var _kit = require('@nuxt/kit');
@@ -18,8 +18,8 @@ var nuxt_default = _kit.defineNuxtModule.call(void 0, {
18
18
  configKey: "unpluginStarter"
19
19
  },
20
20
  setup(options) {
21
- _kit.addVitePlugin.call(void 0, () => _chunk4FRXY2W6cjs.vite_default.call(void 0, options));
22
- _kit.addWebpackPlugin.call(void 0, () => _chunkWAOMEMCZcjs.webpack_default.call(void 0, options));
21
+ _kit.addVitePlugin.call(void 0, () => _chunk47ZAMM2Gcjs.vite_default.call(void 0, options));
22
+ _kit.addWebpackPlugin.call(void 0, () => _chunkSU6A6M56cjs.webpack_default.call(void 0, options));
23
23
  }
24
24
  });
25
25
 
package/dist/nuxt.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  vite_default
3
- } from "./chunk-WKWVDEIZ.js";
3
+ } from "./chunk-2XE3EMLY.js";
4
4
  import {
5
5
  webpack_default
6
- } from "./chunk-E4OOBQM6.js";
7
- import "./chunk-G5FQVEHY.js";
6
+ } from "./chunk-BBQNTCR7.js";
7
+ import "./chunk-4OJ67SAP.js";
8
8
  import "./chunk-JNAGPWSX.js";
9
- import "./chunk-MBCYFLIE.js";
10
- import "./chunk-K7YI4ZKB.js";
9
+ import "./chunk-ELIW3YO2.js";
10
+ import "./chunk-XO54BK2I.js";
11
11
 
12
12
  // src/nuxt.ts
13
13
  import { addVitePlugin, addWebpackPlugin, defineNuxtModule } from "@nuxt/kit";
package/dist/raw.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkCVVA3UFVcjs = require('./chunk-CVVA3UFV.cjs');
4
- require('./chunk-GY27NIU6.cjs');
3
+ var _chunkSM4PMROGcjs = require('./chunk-SM4PMROG.cjs');
4
+ require('./chunk-VT3G3M3G.cjs');
5
5
 
6
6
 
7
- exports.default = _chunkCVVA3UFVcjs.raw_default;
7
+ exports.default = _chunkSM4PMROGcjs.raw_default;
8
8
 
9
9
  module.exports = exports.default;
package/dist/raw.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  raw_default
3
- } from "./chunk-MBCYFLIE.js";
4
- import "./chunk-K7YI4ZKB.js";
3
+ } from "./chunk-ELIW3YO2.js";
4
+ import "./chunk-XO54BK2I.js";
5
5
  export {
6
6
  raw_default as default
7
7
  };
package/dist/rolldown.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkJOQ6HUZ7cjs = require('./chunk-JOQ6HUZ7.cjs');
3
+ var _chunkMVHM4ZACcjs = require('./chunk-MVHM4ZAC.cjs');
4
4
  require('./chunk-GODVM7NB.cjs');
5
- require('./chunk-CVVA3UFV.cjs');
6
- require('./chunk-GY27NIU6.cjs');
5
+ require('./chunk-SM4PMROG.cjs');
6
+ require('./chunk-VT3G3M3G.cjs');
7
7
 
8
8
  // src/rolldown.ts
9
9
  var _unplugin = require('unplugin');
10
- var rolldown_default = _unplugin.createRollupPlugin.call(void 0, _chunkJOQ6HUZ7cjs.unpluginFactory);
10
+ var rolldown_default = _unplugin.createRollupPlugin.call(void 0, _chunkMVHM4ZACcjs.unpluginFactory);
11
11
 
12
12
 
13
13
  exports.default = rolldown_default;
package/dist/rolldown.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  unpluginFactory
3
- } from "./chunk-G5FQVEHY.js";
3
+ } from "./chunk-4OJ67SAP.js";
4
4
  import "./chunk-JNAGPWSX.js";
5
- import "./chunk-MBCYFLIE.js";
6
- import "./chunk-K7YI4ZKB.js";
5
+ import "./chunk-ELIW3YO2.js";
6
+ import "./chunk-XO54BK2I.js";
7
7
 
8
8
  // src/rolldown.ts
9
9
  import { createRollupPlugin } from "unplugin";
package/dist/rollup.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkJOQ6HUZ7cjs = require('./chunk-JOQ6HUZ7.cjs');
3
+ var _chunkMVHM4ZACcjs = require('./chunk-MVHM4ZAC.cjs');
4
4
  require('./chunk-GODVM7NB.cjs');
5
- require('./chunk-CVVA3UFV.cjs');
6
- require('./chunk-GY27NIU6.cjs');
5
+ require('./chunk-SM4PMROG.cjs');
6
+ require('./chunk-VT3G3M3G.cjs');
7
7
 
8
8
  // src/rollup.ts
9
- var rollup_default = _chunkJOQ6HUZ7cjs.unplugin_default.rollup;
9
+ var rollup_default = _chunkMVHM4ZACcjs.unplugin_default.rollup;
10
10
 
11
11
 
12
12
  exports.default = rollup_default;
package/dist/rollup.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  unplugin_default
3
- } from "./chunk-G5FQVEHY.js";
3
+ } from "./chunk-4OJ67SAP.js";
4
4
  import "./chunk-JNAGPWSX.js";
5
- import "./chunk-MBCYFLIE.js";
6
- import "./chunk-K7YI4ZKB.js";
5
+ import "./chunk-ELIW3YO2.js";
6
+ import "./chunk-XO54BK2I.js";
7
7
 
8
8
  // src/rollup.ts
9
9
  var rollup_default = unplugin_default.rollup;
package/dist/rspack.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkJOQ6HUZ7cjs = require('./chunk-JOQ6HUZ7.cjs');
3
+ var _chunkMVHM4ZACcjs = require('./chunk-MVHM4ZAC.cjs');
4
4
  require('./chunk-GODVM7NB.cjs');
5
- require('./chunk-CVVA3UFV.cjs');
6
- require('./chunk-GY27NIU6.cjs');
5
+ require('./chunk-SM4PMROG.cjs');
6
+ require('./chunk-VT3G3M3G.cjs');
7
7
 
8
8
  // src/rspack.ts
9
- var rspack_default = _chunkJOQ6HUZ7cjs.unplugin_default.rspack;
9
+ var rspack_default = _chunkMVHM4ZACcjs.unplugin_default.rspack;
10
10
 
11
11
 
12
12
  exports.default = rspack_default;
package/dist/rspack.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  unplugin_default
3
- } from "./chunk-G5FQVEHY.js";
3
+ } from "./chunk-4OJ67SAP.js";
4
4
  import "./chunk-JNAGPWSX.js";
5
- import "./chunk-MBCYFLIE.js";
6
- import "./chunk-K7YI4ZKB.js";
5
+ import "./chunk-ELIW3YO2.js";
6
+ import "./chunk-XO54BK2I.js";
7
7
 
8
8
  // src/rspack.ts
9
9
  var rspack_default = unplugin_default.rspack;
package/dist/unplugin.cjs CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkJOQ6HUZ7cjs = require('./chunk-JOQ6HUZ7.cjs');
5
+ var _chunkMVHM4ZACcjs = require('./chunk-MVHM4ZAC.cjs');
6
6
  require('./chunk-GODVM7NB.cjs');
7
- require('./chunk-CVVA3UFV.cjs');
8
- require('./chunk-GY27NIU6.cjs');
7
+ require('./chunk-SM4PMROG.cjs');
8
+ require('./chunk-VT3G3M3G.cjs');
9
9
 
10
10
 
11
11
 
12
12
 
13
- exports.default = _chunkJOQ6HUZ7cjs.unplugin_default; exports.unplugin = _chunkJOQ6HUZ7cjs.unplugin; exports.unpluginFactory = _chunkJOQ6HUZ7cjs.unpluginFactory;
13
+ exports.default = _chunkMVHM4ZACcjs.unplugin_default; exports.unplugin = _chunkMVHM4ZACcjs.unplugin; exports.unpluginFactory = _chunkMVHM4ZACcjs.unpluginFactory;
package/dist/unplugin.js CHANGED
@@ -2,10 +2,10 @@ import {
2
2
  unplugin,
3
3
  unpluginFactory,
4
4
  unplugin_default
5
- } from "./chunk-G5FQVEHY.js";
5
+ } from "./chunk-4OJ67SAP.js";
6
6
  import "./chunk-JNAGPWSX.js";
7
- import "./chunk-MBCYFLIE.js";
8
- import "./chunk-K7YI4ZKB.js";
7
+ import "./chunk-ELIW3YO2.js";
8
+ import "./chunk-XO54BK2I.js";
9
9
  export {
10
10
  unplugin_default as default,
11
11
  unplugin,
package/dist/vite.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk4FRXY2W6cjs = require('./chunk-4FRXY2W6.cjs');
4
- require('./chunk-JOQ6HUZ7.cjs');
3
+ var _chunk47ZAMM2Gcjs = require('./chunk-47ZAMM2G.cjs');
4
+ require('./chunk-MVHM4ZAC.cjs');
5
5
  require('./chunk-GODVM7NB.cjs');
6
- require('./chunk-CVVA3UFV.cjs');
7
- require('./chunk-GY27NIU6.cjs');
6
+ require('./chunk-SM4PMROG.cjs');
7
+ require('./chunk-VT3G3M3G.cjs');
8
8
 
9
9
 
10
- exports.default = _chunk4FRXY2W6cjs.vite_default;
10
+ exports.default = _chunk47ZAMM2Gcjs.vite_default;
11
11
 
12
12
  module.exports = exports.default;
package/dist/vite.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  vite_default
3
- } from "./chunk-WKWVDEIZ.js";
4
- import "./chunk-G5FQVEHY.js";
3
+ } from "./chunk-2XE3EMLY.js";
4
+ import "./chunk-4OJ67SAP.js";
5
5
  import "./chunk-JNAGPWSX.js";
6
- import "./chunk-MBCYFLIE.js";
7
- import "./chunk-K7YI4ZKB.js";
6
+ import "./chunk-ELIW3YO2.js";
7
+ import "./chunk-XO54BK2I.js";
8
8
  export {
9
9
  vite_default as default
10
10
  };
package/dist/webpack.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkWAOMEMCZcjs = require('./chunk-WAOMEMCZ.cjs');
4
- require('./chunk-JOQ6HUZ7.cjs');
3
+ var _chunkSU6A6M56cjs = require('./chunk-SU6A6M56.cjs');
4
+ require('./chunk-MVHM4ZAC.cjs');
5
5
  require('./chunk-GODVM7NB.cjs');
6
- require('./chunk-CVVA3UFV.cjs');
7
- require('./chunk-GY27NIU6.cjs');
6
+ require('./chunk-SM4PMROG.cjs');
7
+ require('./chunk-VT3G3M3G.cjs');
8
8
 
9
9
 
10
- exports.default = _chunkWAOMEMCZcjs.webpack_default;
10
+ exports.default = _chunkSU6A6M56cjs.webpack_default;
11
11
 
12
12
  module.exports = exports.default;
package/dist/webpack.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  webpack_default
3
- } from "./chunk-E4OOBQM6.js";
4
- import "./chunk-G5FQVEHY.js";
3
+ } from "./chunk-BBQNTCR7.js";
4
+ import "./chunk-4OJ67SAP.js";
5
5
  import "./chunk-JNAGPWSX.js";
6
- import "./chunk-MBCYFLIE.js";
7
- import "./chunk-K7YI4ZKB.js";
6
+ import "./chunk-ELIW3YO2.js";
7
+ import "./chunk-XO54BK2I.js";
8
8
  export {
9
9
  webpack_default as default
10
10
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-jsx-vapor",
3
- "version": "2.1.7",
3
+ "version": "2.1.8",
4
4
  "description": "Convert Vue JSX to Vapor",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -214,9 +214,9 @@
214
214
  "ts-macro": "^0.1.25",
215
215
  "unplugin": "^1.16.1",
216
216
  "unplugin-utils": "^0.2.4",
217
- "@vue-jsx-vapor/babel": "2.1.7",
218
- "@vue-jsx-vapor/compiler": "2.1.7",
219
- "@vue-jsx-vapor/macros": "2.1.7"
217
+ "@vue-jsx-vapor/babel": "2.1.8",
218
+ "@vue-jsx-vapor/macros": "2.1.8",
219
+ "@vue-jsx-vapor/compiler": "2.1.8"
220
220
  },
221
221
  "devDependencies": {
222
222
  "@nuxt/kit": "^3.16.0",
@@ -1,134 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/core/index.ts
2
- var _core = require('@babel/core');
3
- var _plugintransformtypescript = require('@babel/plugin-transform-typescript'); var _plugintransformtypescript2 = _interopRequireDefault(_plugintransformtypescript);
4
- var _babel = require('@vue-jsx-vapor/babel'); var _babel2 = _interopRequireDefault(_babel);
5
-
6
- // src/core/hmr.ts
7
- var _api = require('@vue-jsx-vapor/macros/api');
8
- var _hashsum = require('hash-sum'); var _hashsum2 = _interopRequireDefault(_hashsum);
9
- function registerHMR(result, id, defineComponentNames = ["defineComponent", "defineVaporComponent"]) {
10
- const { ast } = result;
11
- const declaredComponents = [];
12
- const hotComponents = [];
13
- let hasDefaultExport = false;
14
- const ssr = false;
15
- for (const node of ast.program.body) {
16
- if (node.type === "VariableDeclaration") {
17
- const names = parseComponentDecls(node, defineComponentNames);
18
- if (names.length) {
19
- declaredComponents.push(...names);
20
- }
21
- }
22
- if (node.type === "ExportNamedDeclaration") {
23
- if (node.declaration && node.declaration.type === "VariableDeclaration") {
24
- hotComponents.push(
25
- ...parseComponentDecls(node.declaration, defineComponentNames).map(
26
- (name) => ({
27
- local: name,
28
- exported: name,
29
- id: _hashsum2.default.call(void 0, id + name)
30
- })
31
- )
32
- );
33
- } else if (node.specifiers.length) {
34
- for (const spec of node.specifiers) {
35
- if (spec.type === "ExportSpecifier" && spec.exported.type === "Identifier") {
36
- const matched = declaredComponents.find(
37
- (name) => name === spec.local.name
38
- );
39
- if (matched) {
40
- hotComponents.push({
41
- local: spec.local.name,
42
- exported: spec.exported.name,
43
- id: _hashsum2.default.call(void 0, id + spec.exported.name)
44
- });
45
- }
46
- }
47
- }
48
- }
49
- }
50
- if (node.type === "ExportDefaultDeclaration") {
51
- if (node.declaration.type === "Identifier") {
52
- const _name = node.declaration.name;
53
- const matched = declaredComponents.find((name) => name === _name);
54
- if (matched) {
55
- hotComponents.push({
56
- local: _name,
57
- exported: "default",
58
- id: _hashsum2.default.call(void 0, `${id}default`)
59
- });
60
- }
61
- } else if (isDefineComponentCall(node.declaration, defineComponentNames) || _api.isFunctionalNode.call(void 0, node.declaration)) {
62
- hasDefaultExport = true;
63
- hotComponents.push({
64
- local: "__default__",
65
- exported: "default",
66
- id: _hashsum2.default.call(void 0, `${id}default`)
67
- });
68
- }
69
- }
70
- }
71
- if (hotComponents.length) {
72
- if (hasDefaultExport || ssr) {
73
- result.code = `${result.code.replaceAll(
74
- `export default `,
75
- `const __default__ = `
76
- )}
77
- export default __default__`;
78
- }
79
- if (!ssr && !/\?vue&type=script/.test(id)) {
80
- let code = result.code;
81
- let callbackCode = ``;
82
- for (const { local, exported, id: id2 } of hotComponents) {
83
- code += `
84
- ${local}.__hmrId = "${id2}"
85
- __VUE_HMR_RUNTIME__.createRecord("${id2}", ${local})`;
86
- callbackCode += `
87
- __VUE_HMR_RUNTIME__.rerender(mod['${exported}'].__hmrId, mod['${exported}'].setup || mod['${exported}'])`;
88
- }
89
- code += `
90
- if (import.meta.hot) {
91
- import.meta.hot.accept((mod) => {${callbackCode}
92
- })
93
- }`;
94
- result.code = code;
95
- }
96
- }
97
- }
98
- function parseComponentDecls(node, fnNames) {
99
- const names = [];
100
- for (const decl of node.declarations) {
101
- if (decl.id.type === "Identifier" && (isDefineComponentCall(decl.init, fnNames) || _api.isFunctionalNode.call(void 0, decl.init)))
102
- names.push(decl.id.name);
103
- }
104
- return names;
105
- }
106
- function isDefineComponentCall(node, names) {
107
- return !!(node && node.type === "CallExpression" && node.callee.type === "Identifier" && names.includes(node.callee.name));
108
- }
109
-
110
- // src/core/index.ts
111
- function transformVueJsxVapor(code, id, options) {
112
- const result = _core.transformSync.call(void 0, code, {
113
- plugins: [
114
- [_babel2.default, { compile: _optionalChain([options, 'optionalAccess', _ => _.compile]), interop: _optionalChain([options, 'optionalAccess', _2 => _2.interop]) }],
115
- id.endsWith(".tsx") ? [_plugintransformtypescript2.default, { isTSX: true, allowExtensions: true }] : null
116
- ].filter((i) => i !== null),
117
- filename: id,
118
- sourceMaps: true,
119
- sourceFileName: id,
120
- babelrc: false,
121
- configFile: false,
122
- ast: true
123
- });
124
- if (result) registerHMR(result, id);
125
- if (_optionalChain([result, 'optionalAccess', _3 => _3.code]))
126
- return {
127
- code: result.code,
128
- map: result.map
129
- };
130
- }
131
-
132
-
133
-
134
- exports.transformVueJsxVapor = transformVueJsxVapor;
@@ -1,134 +0,0 @@
1
- // src/core/index.ts
2
- import { transformSync } from "@babel/core";
3
- import babelTypescript from "@babel/plugin-transform-typescript";
4
- import jsx from "@vue-jsx-vapor/babel";
5
-
6
- // src/core/hmr.ts
7
- import { isFunctionalNode } from "@vue-jsx-vapor/macros/api";
8
- import getHash from "hash-sum";
9
- function registerHMR(result, id, defineComponentNames = ["defineComponent", "defineVaporComponent"]) {
10
- const { ast } = result;
11
- const declaredComponents = [];
12
- const hotComponents = [];
13
- let hasDefaultExport = false;
14
- const ssr = false;
15
- for (const node of ast.program.body) {
16
- if (node.type === "VariableDeclaration") {
17
- const names = parseComponentDecls(node, defineComponentNames);
18
- if (names.length) {
19
- declaredComponents.push(...names);
20
- }
21
- }
22
- if (node.type === "ExportNamedDeclaration") {
23
- if (node.declaration && node.declaration.type === "VariableDeclaration") {
24
- hotComponents.push(
25
- ...parseComponentDecls(node.declaration, defineComponentNames).map(
26
- (name) => ({
27
- local: name,
28
- exported: name,
29
- id: getHash(id + name)
30
- })
31
- )
32
- );
33
- } else if (node.specifiers.length) {
34
- for (const spec of node.specifiers) {
35
- if (spec.type === "ExportSpecifier" && spec.exported.type === "Identifier") {
36
- const matched = declaredComponents.find(
37
- (name) => name === spec.local.name
38
- );
39
- if (matched) {
40
- hotComponents.push({
41
- local: spec.local.name,
42
- exported: spec.exported.name,
43
- id: getHash(id + spec.exported.name)
44
- });
45
- }
46
- }
47
- }
48
- }
49
- }
50
- if (node.type === "ExportDefaultDeclaration") {
51
- if (node.declaration.type === "Identifier") {
52
- const _name = node.declaration.name;
53
- const matched = declaredComponents.find((name) => name === _name);
54
- if (matched) {
55
- hotComponents.push({
56
- local: _name,
57
- exported: "default",
58
- id: getHash(`${id}default`)
59
- });
60
- }
61
- } else if (isDefineComponentCall(node.declaration, defineComponentNames) || isFunctionalNode(node.declaration)) {
62
- hasDefaultExport = true;
63
- hotComponents.push({
64
- local: "__default__",
65
- exported: "default",
66
- id: getHash(`${id}default`)
67
- });
68
- }
69
- }
70
- }
71
- if (hotComponents.length) {
72
- if (hasDefaultExport || ssr) {
73
- result.code = `${result.code.replaceAll(
74
- `export default `,
75
- `const __default__ = `
76
- )}
77
- export default __default__`;
78
- }
79
- if (!ssr && !/\?vue&type=script/.test(id)) {
80
- let code = result.code;
81
- let callbackCode = ``;
82
- for (const { local, exported, id: id2 } of hotComponents) {
83
- code += `
84
- ${local}.__hmrId = "${id2}"
85
- __VUE_HMR_RUNTIME__.createRecord("${id2}", ${local})`;
86
- callbackCode += `
87
- __VUE_HMR_RUNTIME__.rerender(mod['${exported}'].__hmrId, mod['${exported}'].setup || mod['${exported}'])`;
88
- }
89
- code += `
90
- if (import.meta.hot) {
91
- import.meta.hot.accept((mod) => {${callbackCode}
92
- })
93
- }`;
94
- result.code = code;
95
- }
96
- }
97
- }
98
- function parseComponentDecls(node, fnNames) {
99
- const names = [];
100
- for (const decl of node.declarations) {
101
- if (decl.id.type === "Identifier" && (isDefineComponentCall(decl.init, fnNames) || isFunctionalNode(decl.init)))
102
- names.push(decl.id.name);
103
- }
104
- return names;
105
- }
106
- function isDefineComponentCall(node, names) {
107
- return !!(node && node.type === "CallExpression" && node.callee.type === "Identifier" && names.includes(node.callee.name));
108
- }
109
-
110
- // src/core/index.ts
111
- function transformVueJsxVapor(code, id, options) {
112
- const result = transformSync(code, {
113
- plugins: [
114
- [jsx, { compile: options?.compile, interop: options?.interop }],
115
- id.endsWith(".tsx") ? [babelTypescript, { isTSX: true, allowExtensions: true }] : null
116
- ].filter((i) => i !== null),
117
- filename: id,
118
- sourceMaps: true,
119
- sourceFileName: id,
120
- babelrc: false,
121
- configFile: false,
122
- ast: true
123
- });
124
- if (result) registerHMR(result, id);
125
- if (result?.code)
126
- return {
127
- code: result.code,
128
- map: result.map
129
- };
130
- }
131
-
132
- export {
133
- transformVueJsxVapor
134
- };