unplugin-essor 0.0.14 → 0.0.15-beta.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.
Files changed (53) hide show
  1. package/README.md +37 -0
  2. package/dist/astro.cjs +12 -149
  3. package/dist/astro.cjs.map +1 -1
  4. package/dist/astro.d.cts +2 -7
  5. package/dist/astro.d.ts +1 -6
  6. package/dist/astro.js +6 -7
  7. package/dist/astro.js.map +1 -1
  8. package/dist/{chunk-VVPVCNL5.js → chunk-KCKAO6VH.js} +52 -46
  9. package/dist/chunk-KCKAO6VH.js.map +1 -0
  10. package/dist/chunk-KK7POSQ3.cjs +126 -0
  11. package/dist/chunk-KK7POSQ3.cjs.map +1 -0
  12. package/dist/esbuild.cjs +9 -124
  13. package/dist/esbuild.cjs.map +1 -1
  14. package/dist/esbuild.d.cts +1 -1
  15. package/dist/esbuild.js +1 -1
  16. package/dist/farm.cjs +13 -0
  17. package/dist/farm.cjs.map +1 -0
  18. package/dist/farm.d.cts +6 -0
  19. package/dist/farm.d.ts +6 -0
  20. package/dist/farm.js +11 -0
  21. package/dist/farm.js.map +1 -0
  22. package/dist/index.cjs +10 -130
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +3 -1
  25. package/dist/index.js +3 -3
  26. package/dist/rolldown.cjs +13 -0
  27. package/dist/rolldown.cjs.map +1 -0
  28. package/dist/rolldown.d.cts +7 -0
  29. package/dist/rolldown.d.ts +7 -0
  30. package/dist/rolldown.js +11 -0
  31. package/dist/rolldown.js.map +1 -0
  32. package/dist/rollup.cjs +9 -124
  33. package/dist/rollup.cjs.map +1 -1
  34. package/dist/rollup.d.cts +1 -1
  35. package/dist/rollup.js +1 -1
  36. package/dist/rspack.cjs +9 -124
  37. package/dist/rspack.cjs.map +1 -1
  38. package/dist/rspack.d.cts +1 -1
  39. package/dist/rspack.js +1 -1
  40. package/dist/types.cjs +1 -19
  41. package/dist/types.cjs.map +1 -1
  42. package/dist/types.d.cts +2 -1
  43. package/dist/types.d.ts +2 -1
  44. package/dist/vite.cjs +9 -124
  45. package/dist/vite.cjs.map +1 -1
  46. package/dist/vite.d.cts +1 -1
  47. package/dist/vite.js +1 -1
  48. package/dist/webpack.cjs +9 -124
  49. package/dist/webpack.cjs.map +1 -1
  50. package/dist/webpack.d.cts +1 -1
  51. package/dist/webpack.js +1 -1
  52. package/package.json +32 -13
  53. package/dist/chunk-VVPVCNL5.js.map +0 -1
package/README.md CHANGED
@@ -0,0 +1,37 @@
1
+ # unplugin-essor
2
+
3
+ The unplugin wrapper for **Essor**. It allows you to use the Essor Babel plugin with various build tools like Vite, Webpack, Rollup, and more.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -D unplugin-essor
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### Vite
14
+
15
+ ```ts
16
+ // vite.config.ts
17
+ import Essor from 'unplugin-essor/vite';
18
+
19
+ export default {
20
+ plugins: [Essor()],
21
+ };
22
+ ```
23
+
24
+ ### Webpack
25
+
26
+ ```js
27
+ // webpack.config.js
28
+ const Essor = require('unplugin-essor/webpack');
29
+
30
+ module.exports = {
31
+ plugins: [Essor()],
32
+ };
33
+ ```
34
+
35
+ ## License
36
+
37
+ MIT
package/dist/astro.cjs CHANGED
@@ -1,159 +1,22 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
- var __getProtoOf = Object.getPrototypeOf;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
- var __spreadValues = (a, b) => {
12
- for (var prop in b || (b = {}))
13
- if (__hasOwnProp.call(b, prop))
14
- __defNormalProp(a, prop, b[prop]);
15
- if (__getOwnPropSymbols)
16
- for (var prop of __getOwnPropSymbols(b)) {
17
- if (__propIsEnum.call(b, prop))
18
- __defNormalProp(a, prop, b[prop]);
19
- }
20
- return a;
21
- };
22
- var __export = (target, all) => {
23
- for (var name in all)
24
- __defProp(target, name, { get: all[name], enumerable: true });
25
- };
26
- var __copyProps = (to, from, except, desc) => {
27
- if (from && typeof from === "object" || typeof from === "function") {
28
- for (let key of __getOwnPropNames(from))
29
- if (!__hasOwnProp.call(to, key) && key !== except)
30
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
31
- }
32
- return to;
33
- };
34
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
35
- // If the importer is in node compatibility mode or this is not an ESM
36
- // file that has been converted to a CommonJS file using a Babel-
37
- // compatible transform (i.e. "__esModule" has not been set), then set
38
- // "default" to the CommonJS "module.exports" for node compatibility.
39
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
40
- mod
41
- ));
42
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
43
- var __async = (__this, __arguments, generator) => {
44
- return new Promise((resolve, reject) => {
45
- var fulfilled = (value) => {
46
- try {
47
- step(generator.next(value));
48
- } catch (e) {
49
- reject(e);
50
- }
51
- };
52
- var rejected = (value) => {
53
- try {
54
- step(generator.throw(value));
55
- } catch (e) {
56
- reject(e);
57
- }
58
- };
59
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
60
- step((generator = generator.apply(__this, __arguments)).next());
61
- });
62
- };
63
-
64
- // src/astro.ts
65
- var astro_exports = {};
66
- __export(astro_exports, {
67
- default: () => astro_default
68
- });
69
- module.exports = __toCommonJS(astro_exports);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
70
2
 
71
- // src/index.ts
72
- var import_unplugin = require("unplugin");
73
- var babel = __toESM(require("@babel/core"), 1);
74
- var import_babel_plugin_essor = __toESM(require("babel-plugin-essor"), 1);
75
- var import_vite = require("vite");
76
- var CSS_EXTENSIONS = [".css", ".scss", ".sass"];
77
- var DEFAULT_OPTIONS = {
78
- symbol: "$",
79
- props: true,
80
- server: false
81
- };
82
- var unpluginFactory = (options = {}) => {
83
- const filter = (0, import_vite.createFilter)(options.include, options.exclude);
84
- return {
85
- name: "unplugin-essor",
86
- // enforce: 'pre',
87
- config() {
88
- return {
89
- esbuild: {
90
- jsx: "preserve"
91
- }
92
- };
93
- },
94
- transform(code, id) {
95
- if (["node_modules", "dist", "public"].some((p) => id.includes(p))) {
96
- return;
97
- }
98
- if (!filter(id) || !/.[cm]?[jt]sx?$/i.test(id)) {
99
- return null;
100
- }
101
- const result = babel.transformSync(code, {
102
- filename: id,
103
- sourceMaps: true,
104
- sourceType: "module",
105
- plugins: [[import_babel_plugin_essor.default, __spreadValues(__spreadValues({}, DEFAULT_OPTIONS), options)]]
106
- });
107
- if (result == null ? void 0 : result.code) {
108
- return {
109
- code: result.code,
110
- map: result.map
111
- };
112
- }
113
- return code;
114
- },
115
- handleHotUpdate(ctx) {
116
- var _a, _b;
117
- for (const mod of ctx.modules) {
118
- const deps = (_b = (_a = mod.info) == null ? void 0 : _a.meta) == null ? void 0 : _b.deps;
119
- if (deps && deps.length > 0) {
120
- for (const dep of deps) {
121
- const mod2 = ctx.server.moduleGraph.getModuleById(dep);
122
- if (mod2) {
123
- ctx.server.moduleGraph.invalidateModule(mod2);
124
- }
125
- }
126
- } else if (mod.type === "js" && Array.from(mod.importers).every(
127
- (m) => m.type === "css" || CSS_EXTENSIONS.some((ext) => {
128
- var _a2;
129
- return (_a2 = m.file) == null ? void 0 : _a2.endsWith(ext);
130
- })
131
- )) {
132
- ctx.server.moduleGraph.invalidateAll();
133
- }
134
- }
135
- if (CSS_EXTENSIONS.some((ext) => ctx.file.endsWith(ext))) {
136
- ctx.server.ws.send({
137
- type: "full-reload"
138
- });
139
- return [];
140
- }
141
- }
142
- };
143
- };
144
- var unplugin = /* @__PURE__ */ (0, import_unplugin.createUnplugin)(unpluginFactory);
145
- var src_default = unplugin;
3
+ var _chunkKK7POSQ3cjs = require('./chunk-KK7POSQ3.cjs');
146
4
 
147
5
  // src/astro.ts
148
6
  var astro_default = (options) => ({
149
- name: "unplugin-essor-astro",
7
+ name: "unplugin-starter",
150
8
  hooks: {
151
9
  // eslint-disable-next-line require-await
152
- "astro:config:setup": (astro) => __async(void 0, null, function* () {
10
+ "astro:config:setup": async (astro) => {
153
11
  var _a;
154
12
  (_a = astro.config.vite).plugins || (_a.plugins = []);
155
- astro.config.vite.plugins.push(src_default.vite(options));
156
- })
13
+ astro.config.vite.plugins.push(_chunkKK7POSQ3cjs.index_default.vite(options));
14
+ }
157
15
  }
158
16
  });
159
- //# sourceMappingURL=astro.cjs.mapexports.default = module.exports;
17
+
18
+
19
+ exports.default = astro_default;
20
+
21
+ module.exports = exports.default;
22
+ //# sourceMappingURL=astro.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/astro.ts","../src/index.ts"],"sourcesContent":["import unplugin from '.';\nimport type { Options } from './types';\n\nexport default (options: Options) => ({\n name: 'unplugin-essor-astro',\n hooks: {\n // eslint-disable-next-line require-await\n 'astro:config:setup': async (astro: any) => {\n astro.config.vite.plugins ||= [];\n astro.config.vite.plugins.push(unplugin.vite(options));\n },\n },\n});\n","import { createUnplugin } from 'unplugin';\nimport * as babel from '@babel/core';\nimport essorBabelPlugin from 'babel-plugin-essor';\nimport { createFilter } from 'vite';\nimport type { UnpluginFactory } from 'unplugin';\nimport type { Options } from './types';\n\nconst CSS_EXTENSIONS = ['.css', '.scss', '.sass'];\n\nconst DEFAULT_OPTIONS = {\n symbol: '$',\n props: true,\n server: false,\n};\n\nexport const unpluginFactory: UnpluginFactory<Options | undefined> = (options = {}) => {\n const filter = createFilter(options.include, options.exclude);\n\n return {\n name: 'unplugin-essor',\n // enforce: 'pre',\n config() {\n return {\n esbuild: {\n jsx: 'preserve',\n },\n };\n },\n\n transform(code, id) {\n if (['node_modules', 'dist', 'public'].some(p => id.includes(p))) {\n return;\n }\n //\n if (!filter(id) || !/.[cm]?[jt]sx?$/i.test(id)) {\n return null;\n }\n\n const result = babel.transformSync(code, {\n filename: id,\n sourceMaps: true,\n sourceType: 'module',\n plugins: [[essorBabelPlugin, { ...DEFAULT_OPTIONS, ...options }]],\n });\n if (result?.code) {\n return {\n code: result.code,\n map: result.map,\n };\n }\n return code;\n },\n handleHotUpdate(ctx: any) {\n for (const mod of ctx.modules) {\n const deps = mod.info?.meta?.deps;\n if (deps && deps.length > 0) {\n for (const dep of deps) {\n const mod = ctx.server.moduleGraph.getModuleById(dep);\n if (mod) {\n ctx.server.moduleGraph.invalidateModule(mod);\n }\n }\n } else if (\n mod.type === 'js' &&\n Array.from(mod.importers).every(\n (m: any) => m.type === 'css' || CSS_EXTENSIONS.some(ext => m.file?.endsWith(ext)),\n )\n ) {\n // invalidate all modules that import this module\n ctx.server.moduleGraph.invalidateAll();\n }\n }\n\n if (CSS_EXTENSIONS.some(ext => ctx.file.endsWith(ext))) {\n ctx.server.ws.send({\n type: 'full-reload',\n });\n return [];\n }\n },\n };\n};\n\nexport const unplugin = /* #__PURE__ */ createUnplugin(unpluginFactory);\n\nexport default unplugin;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,sBAA+B;AAC/B,YAAuB;AACvB,gCAA6B;AAC7B,kBAA6B;AAI7B,IAAM,iBAAiB,CAAC,QAAQ,SAAS,OAAO;AAEhD,IAAM,kBAAkB;AAAA,EACtB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,IAAM,kBAAwD,CAAC,UAAU,CAAC,MAAM;AACrF,QAAM,aAAS,0BAAa,QAAQ,SAAS,QAAQ,OAAO;AAE5D,SAAO;AAAA,IACL,MAAM;AAAA;AAAA,IAEN,SAAS;AACP,aAAO;AAAA,QACL,SAAS;AAAA,UACP,KAAK;AAAA,QACP;AAAA,MACF;AAAA,IACF;AAAA,IAEA,UAAU,MAAM,IAAI;AAClB,UAAI,CAAC,gBAAgB,QAAQ,QAAQ,EAAE,KAAK,OAAK,GAAG,SAAS,CAAC,CAAC,GAAG;AAChE;AAAA,MACF;AAEA,UAAI,CAAC,OAAO,EAAE,KAAK,CAAC,kBAAkB,KAAK,EAAE,GAAG;AAC9C,eAAO;AAAA,MACT;AAEA,YAAM,SAAe,oBAAc,MAAM;AAAA,QACvC,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,SAAS,CAAC,CAAC,0BAAAA,SAAkB,kCAAK,kBAAoB,QAAS,CAAC;AAAA,MAClE,CAAC;AACD,UAAI,iCAAQ,MAAM;AAChB,eAAO;AAAA,UACL,MAAM,OAAO;AAAA,UACb,KAAK,OAAO;AAAA,QACd;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,gBAAgB,KAAU;AApD9B;AAqDM,iBAAW,OAAO,IAAI,SAAS;AAC7B,cAAM,QAAO,eAAI,SAAJ,mBAAU,SAAV,mBAAgB;AAC7B,YAAI,QAAQ,KAAK,SAAS,GAAG;AAC3B,qBAAW,OAAO,MAAM;AACtB,kBAAMC,OAAM,IAAI,OAAO,YAAY,cAAc,GAAG;AACpD,gBAAIA,MAAK;AACP,kBAAI,OAAO,YAAY,iBAAiBA,IAAG;AAAA,YAC7C;AAAA,UACF;AAAA,QACF,WACE,IAAI,SAAS,QACb,MAAM,KAAK,IAAI,SAAS,EAAE;AAAA,UACxB,CAAC,MAAW,EAAE,SAAS,SAAS,eAAe,KAAK,SAAI;AAjEpE,gBAAAC;AAiEuE,oBAAAA,MAAA,EAAE,SAAF,gBAAAA,IAAQ,SAAS;AAAA,WAAI;AAAA,QAClF,GACA;AAEA,cAAI,OAAO,YAAY,cAAc;AAAA,QACvC;AAAA,MACF;AAEA,UAAI,eAAe,KAAK,SAAO,IAAI,KAAK,SAAS,GAAG,CAAC,GAAG;AACtD,YAAI,OAAO,GAAG,KAAK;AAAA,UACjB,MAAM;AAAA,QACR,CAAC;AACD,eAAO,CAAC;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,WAA2B,oDAAe,eAAe;AAEtE,IAAO,cAAQ;;;ADlFf,IAAO,gBAAQ,CAAC,aAAsB;AAAA,EACpC,MAAM;AAAA,EACN,OAAO;AAAA;AAAA,IAEL,sBAAsB,CAAO,UAAe;AAPhD;AAQM,kBAAM,OAAO,MAAK,YAAlB,GAAkB,UAAY,CAAC;AAC/B,YAAM,OAAO,KAAK,QAAQ,KAAK,YAAS,KAAK,OAAO,CAAC;AAAA,IACvD;AAAA,EACF;AACF;","names":["essorBabelPlugin","mod","_a"]}
1
+ {"version":3,"sources":["/home/runner/work/essor/essor/packages/unplugin/dist/astro.cjs","../src/astro.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAAA;AACA;AACA;ACDA,IAAO,cAAA,EAAQ,CAAC,OAAA,EAAA,GAAA,CAA2B;AAAA,EACzC,IAAA,EAAM,kBAAA;AAAA,EACN,KAAA,EAAO;AAAA;AAAA,IAEL,oBAAA,EAAsB,MAAA,CAAO,KAAA,EAAA,GAAe;AAPhD,MAAA,IAAA,EAAA;AAQM,MAAA,CAAA,GAAA,EAAA,KAAA,CAAM,MAAA,CAAO,IAAA,CAAA,CAAK,QAAA,GAAA,CAAlB,EAAA,CAAkB,QAAA,EAAY,CAAC,CAAA,CAAA;AAC/B,MAAA,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,+BAAA,CAAS,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,IACvD;AAAA,EACF;AACF,CAAA,CAAA;ADIA;AACE;AACF,gCAAA","file":"/home/runner/work/essor/essor/packages/unplugin/dist/astro.cjs","sourcesContent":[null,"import unplugin from '.';\nimport type { Options } from './types';\n\nexport default (options: Options): any => ({\n name: 'unplugin-starter',\n hooks: {\n // eslint-disable-next-line require-await\n 'astro:config:setup': async (astro: any) => {\n astro.config.vite.plugins ||= [];\n astro.config.vite.plugins.push(unplugin.vite(options));\n },\n },\n});\n"]}
package/dist/astro.d.cts CHANGED
@@ -1,11 +1,6 @@
1
1
  import { Options } from './types.cjs';
2
2
  import 'vite';
3
3
 
4
- declare const _default: (options: Options) => {
5
- name: string;
6
- hooks: {
7
- 'astro:config:setup': (astro: any) => Promise<void>;
8
- };
9
- };
4
+ declare const _default: (options: Options) => any;
10
5
 
11
- export { _default as default };
6
+ export = _default;
package/dist/astro.d.ts CHANGED
@@ -1,11 +1,6 @@
1
1
  import { Options } from './types.js';
2
2
  import 'vite';
3
3
 
4
- declare const _default: (options: Options) => {
5
- name: string;
6
- hooks: {
7
- 'astro:config:setup': (astro: any) => Promise<void>;
8
- };
9
- };
4
+ declare const _default: (options: Options) => any;
10
5
 
11
6
  export { _default as default };
package/dist/astro.js CHANGED
@@ -1,18 +1,17 @@
1
1
  import {
2
- __async,
3
- src_default
4
- } from "./chunk-VVPVCNL5.js";
2
+ index_default
3
+ } from "./chunk-KCKAO6VH.js";
5
4
 
6
5
  // src/astro.ts
7
6
  var astro_default = (options) => ({
8
- name: "unplugin-essor-astro",
7
+ name: "unplugin-starter",
9
8
  hooks: {
10
9
  // eslint-disable-next-line require-await
11
- "astro:config:setup": (astro) => __async(void 0, null, function* () {
10
+ "astro:config:setup": async (astro) => {
12
11
  var _a;
13
12
  (_a = astro.config.vite).plugins || (_a.plugins = []);
14
- astro.config.vite.plugins.push(src_default.vite(options));
15
- })
13
+ astro.config.vite.plugins.push(index_default.vite(options));
14
+ }
16
15
  }
17
16
  });
18
17
  export {
package/dist/astro.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/astro.ts"],"sourcesContent":["import unplugin from '.';\nimport type { Options } from './types';\n\nexport default (options: Options) => ({\n name: 'unplugin-essor-astro',\n hooks: {\n // eslint-disable-next-line require-await\n 'astro:config:setup': async (astro: any) => {\n astro.config.vite.plugins ||= [];\n astro.config.vite.plugins.push(unplugin.vite(options));\n },\n },\n});\n"],"mappings":";;;;;;AAGA,IAAO,gBAAQ,CAAC,aAAsB;AAAA,EACpC,MAAM;AAAA,EACN,OAAO;AAAA;AAAA,IAEL,sBAAsB,CAAO,UAAe;AAPhD;AAQM,kBAAM,OAAO,MAAK,YAAlB,GAAkB,UAAY,CAAC;AAC/B,YAAM,OAAO,KAAK,QAAQ,KAAK,YAAS,KAAK,OAAO,CAAC;AAAA,IACvD;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/astro.ts"],"sourcesContent":["import unplugin from '.';\nimport type { Options } from './types';\n\nexport default (options: Options): any => ({\n name: 'unplugin-starter',\n hooks: {\n // eslint-disable-next-line require-await\n 'astro:config:setup': async (astro: any) => {\n astro.config.vite.plugins ||= [];\n astro.config.vite.plugins.push(unplugin.vite(options));\n },\n },\n});\n"],"mappings":";;;;;AAGA,IAAO,gBAAQ,CAAC,aAA2B;AAAA,EACzC,MAAM;AAAA,EACN,OAAO;AAAA;AAAA,IAEL,sBAAsB,OAAO,UAAe;AAPhD;AAQM,kBAAM,OAAO,MAAK,YAAlB,GAAkB,UAAY,CAAC;AAC/B,YAAM,OAAO,KAAK,QAAQ,KAAK,cAAS,KAAK,OAAO,CAAC;AAAA,IACvD;AAAA,EACF;AACF;","names":[]}
@@ -14,26 +14,6 @@ var __spreadValues = (a, b) => {
14
14
  }
15
15
  return a;
16
16
  };
17
- var __async = (__this, __arguments, generator) => {
18
- return new Promise((resolve, reject) => {
19
- var fulfilled = (value) => {
20
- try {
21
- step(generator.next(value));
22
- } catch (e) {
23
- reject(e);
24
- }
25
- };
26
- var rejected = (value) => {
27
- try {
28
- step(generator.throw(value));
29
- } catch (e) {
30
- reject(e);
31
- }
32
- };
33
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
34
- step((generator = generator.apply(__this, __arguments)).next());
35
- });
36
- };
37
17
 
38
18
  // src/index.ts
39
19
  import { createUnplugin } from "unplugin";
@@ -41,16 +21,17 @@ import * as babel from "@babel/core";
41
21
  import essorBabelPlugin from "babel-plugin-essor";
42
22
  import { createFilter } from "vite";
43
23
  var CSS_EXTENSIONS = [".css", ".scss", ".sass"];
24
+ var JSX_EXTENSIONS = [".jsx", ".tsx"];
44
25
  var DEFAULT_OPTIONS = {
45
26
  symbol: "$",
27
+ mode: "client",
46
28
  props: true,
47
- server: false
29
+ hmr: true
48
30
  };
49
31
  var unpluginFactory = (options = {}) => {
50
32
  const filter = createFilter(options.include, options.exclude);
51
33
  return {
52
34
  name: "unplugin-essor",
53
- // enforce: 'pre',
54
35
  config() {
55
36
  return {
56
37
  esbuild: {
@@ -81,40 +62,65 @@ var unpluginFactory = (options = {}) => {
81
62
  },
82
63
  handleHotUpdate(ctx) {
83
64
  var _a, _b;
84
- for (const mod of ctx.modules) {
85
- const deps = (_b = (_a = mod.info) == null ? void 0 : _a.meta) == null ? void 0 : _b.deps;
86
- if (deps && deps.length > 0) {
87
- for (const dep of deps) {
88
- const mod2 = ctx.server.moduleGraph.getModuleById(dep);
89
- if (mod2) {
90
- ctx.server.moduleGraph.invalidateModule(mod2);
65
+ const { file, modules, server } = ctx;
66
+ if (CSS_EXTENSIONS.some((ext) => file.endsWith(ext))) {
67
+ return modules;
68
+ }
69
+ if (JSX_EXTENSIONS.some((ext) => file.endsWith(ext))) {
70
+ const updatedModules = /* @__PURE__ */ new Set();
71
+ for (const mod of modules) {
72
+ const deps = ((_b = (_a = mod.info) == null ? void 0 : _a.meta) == null ? void 0 : _b.deps) || [];
73
+ const importers = Array.from(mod.importers || []);
74
+ const isComponent = JSX_EXTENSIONS.some((ext) => {
75
+ var _a2;
76
+ return (_a2 = mod.file) == null ? void 0 : _a2.endsWith(ext);
77
+ });
78
+ if (isComponent) {
79
+ updatedModules.add(mod);
80
+ for (const dep of deps) {
81
+ const depMod = server.moduleGraph.getModuleById(dep);
82
+ if (depMod) {
83
+ updatedModules.add(depMod);
84
+ }
85
+ }
86
+ for (const importer of importers) {
87
+ if (importer.type === "js") {
88
+ updatedModules.add(importer);
89
+ }
90
+ }
91
+ server.ws.send({
92
+ type: "custom",
93
+ event: "essor:hmr",
94
+ data: {
95
+ id: mod.id,
96
+ timestamp: Date.now()
97
+ }
98
+ });
99
+ } else {
100
+ updatedModules.add(mod);
101
+ server.moduleGraph.invalidateModule(mod);
102
+ const stack = [...importers];
103
+ while (stack.length) {
104
+ const current = stack.pop();
105
+ if (current && !updatedModules.has(current)) {
106
+ updatedModules.add(current);
107
+ stack.push(...Array.from(current.importers || []));
108
+ }
91
109
  }
92
110
  }
93
- } else if (mod.type === "js" && Array.from(mod.importers).every(
94
- (m) => m.type === "css" || CSS_EXTENSIONS.some((ext) => {
95
- var _a2;
96
- return (_a2 = m.file) == null ? void 0 : _a2.endsWith(ext);
97
- })
98
- )) {
99
- ctx.server.moduleGraph.invalidateAll();
100
111
  }
112
+ return Array.from(updatedModules);
101
113
  }
102
- if (CSS_EXTENSIONS.some((ext) => ctx.file.endsWith(ext))) {
103
- ctx.server.ws.send({
104
- type: "full-reload"
105
- });
106
- return [];
107
- }
114
+ return modules;
108
115
  }
109
116
  };
110
117
  };
111
118
  var unplugin = /* @__PURE__ */ createUnplugin(unpluginFactory);
112
- var src_default = unplugin;
119
+ var index_default = unplugin;
113
120
 
114
121
  export {
115
- __async,
116
122
  unpluginFactory,
117
123
  unplugin,
118
- src_default
124
+ index_default
119
125
  };
120
- //# sourceMappingURL=chunk-VVPVCNL5.js.map
126
+ //# sourceMappingURL=chunk-KCKAO6VH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { createUnplugin } from 'unplugin';\nimport * as babel from '@babel/core';\nimport essorBabelPlugin from 'babel-plugin-essor';\nimport { createFilter } from 'vite';\nimport type { UnpluginFactory } from 'unplugin';\nimport type { Options } from './types';\nimport type { ModuleNode, ViteDevServer } from 'vite';\n\nconst CSS_EXTENSIONS = ['.css', '.scss', '.sass'];\nconst JSX_EXTENSIONS = ['.jsx', '.tsx'];\n\nconst DEFAULT_OPTIONS = {\n symbol: '$',\n mode: 'client',\n props: true,\n hmr: true,\n};\nexport const unpluginFactory: UnpluginFactory<Options | undefined> = (options: Options = {}) => {\n const filter = createFilter(options.include, options.exclude);\n\n return {\n name: 'unplugin-essor',\n config() {\n return {\n esbuild: {\n jsx: 'preserve',\n },\n };\n },\n\n transform(code, id) {\n if (['node_modules', 'dist', 'public'].some(p => id.includes(p))) {\n return;\n }\n //\n if (!filter(id) || !/.[cm]?[jt]sx?$/i.test(id)) {\n return null;\n }\n\n const result = babel.transformSync(code, {\n filename: id,\n sourceMaps: true,\n sourceType: 'module',\n plugins: [[essorBabelPlugin, { ...DEFAULT_OPTIONS, ...options }]],\n });\n if (result?.code) {\n return {\n code: result.code,\n map: result.map,\n };\n }\n return code;\n },\n\n handleHotUpdate(ctx: { file: string; modules: ModuleNode[]; server: ViteDevServer }) {\n const { file, modules, server } = ctx;\n\n // 1. Handle style file hot updates\n if (CSS_EXTENSIONS.some(ext => file.endsWith(ext))) {\n // Only update style modules, no need for full page refresh\n return modules;\n }\n\n // 2. Handle JSX/TSX component files\n if (JSX_EXTENSIONS.some(ext => file.endsWith(ext))) {\n const updatedModules = new Set<ModuleNode>();\n\n for (const mod of modules) {\n // Get module dependency information\n const deps = mod.info?.meta?.deps || [];\n const importers = Array.from(mod.importers || []);\n\n // Check if it's a component file\n const isComponent = JSX_EXTENSIONS.some(ext => mod.file?.endsWith(ext));\n\n if (isComponent) {\n // For component files, we only update the component itself and modules that directly depend on it\n updatedModules.add(mod);\n\n // Process direct dependencies\n for (const dep of deps) {\n const depMod = server.moduleGraph.getModuleById(dep);\n if (depMod) {\n updatedModules.add(depMod);\n }\n }\n\n // Process modules that import this component\n for (const importer of importers) {\n if ((importer as ModuleNode).type === 'js') {\n updatedModules.add(importer as ModuleNode);\n }\n }\n\n // Send HMR update event\n server.ws.send({\n type: 'custom',\n event: 'essor:hmr',\n data: {\n id: mod.id,\n timestamp: Date.now(),\n },\n });\n } else {\n // For non-component files, we need to update all modules that depend on it\n updatedModules.add(mod);\n server.moduleGraph.invalidateModule(mod);\n\n // Recursively process all dependencies\n const stack = [...importers];\n while (stack.length) {\n const current = stack.pop() as ModuleNode;\n if (current && !updatedModules.has(current)) {\n updatedModules.add(current);\n stack.push(...Array.from(current.importers || []));\n }\n }\n }\n }\n\n return Array.from(updatedModules);\n }\n\n // 3. Other file types, maintain default behavior\n return modules;\n },\n };\n};\n\nexport const unplugin = /* #__PURE__ */ createUnplugin(unpluginFactory);\n\nexport default unplugin;\n"],"mappings":"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","names":["_a"]}
@@ -0,0 +1,126 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+
18
+ // src/index.ts
19
+ var _unplugin = require('unplugin');
20
+ var _core = require('@babel/core'); var babel = _interopRequireWildcard(_core);
21
+ var _babelpluginessor = require('babel-plugin-essor'); var _babelpluginessor2 = _interopRequireDefault(_babelpluginessor);
22
+ var _vite = require('vite');
23
+ var CSS_EXTENSIONS = [".css", ".scss", ".sass"];
24
+ var JSX_EXTENSIONS = [".jsx", ".tsx"];
25
+ var DEFAULT_OPTIONS = {
26
+ symbol: "$",
27
+ mode: "client",
28
+ props: true,
29
+ hmr: true
30
+ };
31
+ var unpluginFactory = (options = {}) => {
32
+ const filter = _vite.createFilter.call(void 0, options.include, options.exclude);
33
+ return {
34
+ name: "unplugin-essor",
35
+ config() {
36
+ return {
37
+ esbuild: {
38
+ jsx: "preserve"
39
+ }
40
+ };
41
+ },
42
+ transform(code, id) {
43
+ if (["node_modules", "dist", "public"].some((p) => id.includes(p))) {
44
+ return;
45
+ }
46
+ if (!filter(id) || !/.[cm]?[jt]sx?$/i.test(id)) {
47
+ return null;
48
+ }
49
+ const result = babel.transformSync(code, {
50
+ filename: id,
51
+ sourceMaps: true,
52
+ sourceType: "module",
53
+ plugins: [[_babelpluginessor2.default, __spreadValues(__spreadValues({}, DEFAULT_OPTIONS), options)]]
54
+ });
55
+ if (result == null ? void 0 : result.code) {
56
+ return {
57
+ code: result.code,
58
+ map: result.map
59
+ };
60
+ }
61
+ return code;
62
+ },
63
+ handleHotUpdate(ctx) {
64
+ var _a, _b;
65
+ const { file, modules, server } = ctx;
66
+ if (CSS_EXTENSIONS.some((ext) => file.endsWith(ext))) {
67
+ return modules;
68
+ }
69
+ if (JSX_EXTENSIONS.some((ext) => file.endsWith(ext))) {
70
+ const updatedModules = /* @__PURE__ */ new Set();
71
+ for (const mod of modules) {
72
+ const deps = ((_b = (_a = mod.info) == null ? void 0 : _a.meta) == null ? void 0 : _b.deps) || [];
73
+ const importers = Array.from(mod.importers || []);
74
+ const isComponent = JSX_EXTENSIONS.some((ext) => {
75
+ var _a2;
76
+ return (_a2 = mod.file) == null ? void 0 : _a2.endsWith(ext);
77
+ });
78
+ if (isComponent) {
79
+ updatedModules.add(mod);
80
+ for (const dep of deps) {
81
+ const depMod = server.moduleGraph.getModuleById(dep);
82
+ if (depMod) {
83
+ updatedModules.add(depMod);
84
+ }
85
+ }
86
+ for (const importer of importers) {
87
+ if (importer.type === "js") {
88
+ updatedModules.add(importer);
89
+ }
90
+ }
91
+ server.ws.send({
92
+ type: "custom",
93
+ event: "essor:hmr",
94
+ data: {
95
+ id: mod.id,
96
+ timestamp: Date.now()
97
+ }
98
+ });
99
+ } else {
100
+ updatedModules.add(mod);
101
+ server.moduleGraph.invalidateModule(mod);
102
+ const stack = [...importers];
103
+ while (stack.length) {
104
+ const current = stack.pop();
105
+ if (current && !updatedModules.has(current)) {
106
+ updatedModules.add(current);
107
+ stack.push(...Array.from(current.importers || []));
108
+ }
109
+ }
110
+ }
111
+ }
112
+ return Array.from(updatedModules);
113
+ }
114
+ return modules;
115
+ }
116
+ };
117
+ };
118
+ var unplugin = /* @__PURE__ */ _unplugin.createUnplugin.call(void 0, unpluginFactory);
119
+ var index_default = unplugin;
120
+
121
+
122
+
123
+
124
+
125
+ exports.unpluginFactory = unpluginFactory; exports.unplugin = unplugin; exports.index_default = index_default;
126
+ //# sourceMappingURL=chunk-KK7POSQ3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/essor/essor/packages/unplugin/dist/chunk-KK7POSQ3.cjs","../src/index.ts"],"names":["_a"],"mappings":"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","file":"/home/runner/work/essor/essor/packages/unplugin/dist/chunk-KK7POSQ3.cjs","sourcesContent":[null,"import { createUnplugin } from 'unplugin';\nimport * as babel from '@babel/core';\nimport essorBabelPlugin from 'babel-plugin-essor';\nimport { createFilter } from 'vite';\nimport type { UnpluginFactory } from 'unplugin';\nimport type { Options } from './types';\nimport type { ModuleNode, ViteDevServer } from 'vite';\n\nconst CSS_EXTENSIONS = ['.css', '.scss', '.sass'];\nconst JSX_EXTENSIONS = ['.jsx', '.tsx'];\n\nconst DEFAULT_OPTIONS = {\n symbol: '$',\n mode: 'client',\n props: true,\n hmr: true,\n};\nexport const unpluginFactory: UnpluginFactory<Options | undefined> = (options: Options = {}) => {\n const filter = createFilter(options.include, options.exclude);\n\n return {\n name: 'unplugin-essor',\n config() {\n return {\n esbuild: {\n jsx: 'preserve',\n },\n };\n },\n\n transform(code, id) {\n if (['node_modules', 'dist', 'public'].some(p => id.includes(p))) {\n return;\n }\n //\n if (!filter(id) || !/.[cm]?[jt]sx?$/i.test(id)) {\n return null;\n }\n\n const result = babel.transformSync(code, {\n filename: id,\n sourceMaps: true,\n sourceType: 'module',\n plugins: [[essorBabelPlugin, { ...DEFAULT_OPTIONS, ...options }]],\n });\n if (result?.code) {\n return {\n code: result.code,\n map: result.map,\n };\n }\n return code;\n },\n\n handleHotUpdate(ctx: { file: string; modules: ModuleNode[]; server: ViteDevServer }) {\n const { file, modules, server } = ctx;\n\n // 1. Handle style file hot updates\n if (CSS_EXTENSIONS.some(ext => file.endsWith(ext))) {\n // Only update style modules, no need for full page refresh\n return modules;\n }\n\n // 2. Handle JSX/TSX component files\n if (JSX_EXTENSIONS.some(ext => file.endsWith(ext))) {\n const updatedModules = new Set<ModuleNode>();\n\n for (const mod of modules) {\n // Get module dependency information\n const deps = mod.info?.meta?.deps || [];\n const importers = Array.from(mod.importers || []);\n\n // Check if it's a component file\n const isComponent = JSX_EXTENSIONS.some(ext => mod.file?.endsWith(ext));\n\n if (isComponent) {\n // For component files, we only update the component itself and modules that directly depend on it\n updatedModules.add(mod);\n\n // Process direct dependencies\n for (const dep of deps) {\n const depMod = server.moduleGraph.getModuleById(dep);\n if (depMod) {\n updatedModules.add(depMod);\n }\n }\n\n // Process modules that import this component\n for (const importer of importers) {\n if ((importer as ModuleNode).type === 'js') {\n updatedModules.add(importer as ModuleNode);\n }\n }\n\n // Send HMR update event\n server.ws.send({\n type: 'custom',\n event: 'essor:hmr',\n data: {\n id: mod.id,\n timestamp: Date.now(),\n },\n });\n } else {\n // For non-component files, we need to update all modules that depend on it\n updatedModules.add(mod);\n server.moduleGraph.invalidateModule(mod);\n\n // Recursively process all dependencies\n const stack = [...importers];\n while (stack.length) {\n const current = stack.pop() as ModuleNode;\n if (current && !updatedModules.has(current)) {\n updatedModules.add(current);\n stack.push(...Array.from(current.importers || []));\n }\n }\n }\n }\n\n return Array.from(updatedModules);\n }\n\n // 3. Other file types, maintain default behavior\n return modules;\n },\n };\n};\n\nexport const unplugin = /* #__PURE__ */ createUnplugin(unpluginFactory);\n\nexport default unplugin;\n"]}