@wuchale/vite-plugin 0.13.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # `@wuchale/vite-plugin`
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/@wuchale/vite-plugin)](https://www.npmjs.com/package/@wuchale/vite-plugin) ![License](https://img.shields.io/github/license/wuchalejs/wuchale)
3
+ [![npm version](https://img.shields.io/npm/v/@wuchale/vite-plugin?logo=npm&logoColor=red&color=blue)](https://www.npmjs.com/package/@wuchale/vite-plugin) ![License](https://img.shields.io/github/license/wuchalejs/wuchale)
4
4
 
5
5
  The official Vite plugin for `wuchale`.
6
6
 
package/dist/index.d.ts CHANGED
@@ -26,7 +26,9 @@ declare class Plugin {
26
26
  load: (id: string) => string;
27
27
  transform: {
28
28
  order: "pre";
29
- handler: (code: string, id: string) => Promise<{
29
+ handler: (code: string, id: string, options: {
30
+ ssr?: boolean;
31
+ }) => Promise<{
30
32
  code?: string;
31
33
  map?: any;
32
34
  }>;
@@ -34,4 +36,3 @@ declare class Plugin {
34
36
  }
35
37
  export declare const wuchale: (configPath?: string) => Plugin;
36
38
  export {};
37
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  // $$ cd ../.. && npm run test
2
2
  import { relative, resolve } from "node:path";
3
3
  import { getConfig as getConfig, Logger, AdapterHandler } from "wuchale";
4
- import { catalogVarName } from "wuchale/runtime";
5
4
  const pluginName = 'wuchale';
6
5
  const virtualPrefix = `virtual:${pluginName}/`;
7
6
  const virtualResolvedPrefix = '\0';
@@ -10,7 +9,6 @@ class Plugin {
10
9
  #config;
11
10
  #locales = [];
12
11
  #projectRoot = '';
13
- #mode;
14
12
  #adapters = {};
15
13
  #adaptersByLoaderPath = {};
16
14
  #adaptersByCatalogPath = {};
@@ -25,7 +23,6 @@ class Plugin {
25
23
  this.#config = await getConfig(this.#configPath);
26
24
  this.#locales = [this.#config.sourceLocale, ...this.#config.otherLocales];
27
25
  this.#log = new Logger(this.#config.messages);
28
- this.#mode = mode;
29
26
  if (Object.keys(this.#config.adapters).length === 0) {
30
27
  throw Error('At least one adapter is needed.');
31
28
  }
@@ -34,15 +31,22 @@ class Plugin {
34
31
  const handler = new AdapterHandler(adapter, key, this.#config, mode, virtualPrefix, this.#projectRoot, this.#log);
35
32
  await handler.init(sharedState);
36
33
  this.#adapters[key] = handler;
37
- const loaderPath = resolve(handler.loaderPath);
38
- if (loaderPath in this.#adaptersByLoaderPath) {
39
- throw new Error([
40
- 'While catalogs can be shared, the same loader cannot be used by multiple adapters',
41
- `Conflicting: ${key} and ${this.#adaptersByLoaderPath[loaderPath].key}`,
42
- 'Specify a different loaderPath for one of them.'
43
- ].join('\n'));
34
+ for (const path of Object.values(handler.loaderPath)) {
35
+ const loaderPath = resolve(path);
36
+ if (loaderPath in this.#adaptersByLoaderPath) {
37
+ const otherKey = this.#adaptersByLoaderPath[loaderPath].key;
38
+ if (otherKey === key) {
39
+ // same loader for both ssr and client, no problem
40
+ continue;
41
+ }
42
+ throw new Error([
43
+ 'While catalogs can be shared, the same loader cannot be used by multiple adapters',
44
+ `Conflicting: ${key} and ${otherKey}`,
45
+ 'Specify a different loaderPath for one of them.'
46
+ ].join('\n'));
47
+ }
48
+ this.#adaptersByLoaderPath[loaderPath] = handler;
44
49
  }
45
- this.#adaptersByLoaderPath[loaderPath] = handler;
46
50
  for (const fname of Object.keys(handler.catalogPathsToLocales)) {
47
51
  this.#adaptersByCatalogPath[fname] ??= [];
48
52
  this.#adaptersByCatalogPath[fname].push(handler);
@@ -60,25 +64,6 @@ class Plugin {
60
64
  this.#projectRoot = config.root;
61
65
  await this.#init(mode);
62
66
  };
63
- #loadCatalog(adapter, locale, loadID) {
64
- const module = adapter.loadDataModule(locale, loadID);
65
- if (this.#mode !== 'dev') {
66
- return module;
67
- }
68
- return `
69
- ${module}
70
- let latestVersion = ${this.#hmrVersion}
71
- export function update({ version, data }) {
72
- if (latestVersion >= version) {
73
- return
74
- }
75
- for (const [ index, item ] of data['${locale}'] ?? []) {
76
- ${catalogVarName}[index] = item
77
- }
78
- latestVersion = version
79
- }
80
- `;
81
- }
82
67
  handleHotUpdate = async (ctx) => {
83
68
  if (!(ctx.file in this.#adaptersByCatalogPath)) {
84
69
  this.#hmrVersion++;
@@ -124,7 +109,7 @@ class Plugin {
124
109
  this.#log.error(`Adapter not found for key: ${adapterKey}`);
125
110
  return null;
126
111
  }
127
- return this.#loadCatalog(adapter, locale, loadID);
112
+ return adapter.loadCatalogModule(locale, loadID, this.#hmrVersion);
128
113
  }
129
114
  if (part === 'locales') {
130
115
  return `export const locales = ['${this.#locales.join("', '")}']`;
@@ -144,14 +129,14 @@ class Plugin {
144
129
  }
145
130
  return adapter.getProxy();
146
131
  };
147
- #transformHandler = async (code, id) => {
132
+ #transformHandler = async (code, id, options) => {
148
133
  if (!this.#config.hmr) {
149
134
  return {};
150
135
  }
151
136
  const filename = relative(this.#projectRoot, id);
152
137
  for (const adapter of Object.values(this.#adapters)) {
153
138
  if (adapter.fileMatches(filename)) {
154
- return await adapter.transform(code, filename, this.#hmrVersion);
139
+ return await adapter.transform(code, filename, this.#hmrVersion, options.ssr);
155
140
  }
156
141
  }
157
142
  return {};
@@ -159,4 +144,3 @@ class Plugin {
159
144
  transform = { order: 'pre', handler: this.#transformHandler };
160
145
  }
161
146
  export const wuchale = (configPath) => new Plugin(configPath);
162
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wuchale/vite-plugin",
3
- "version": "0.13.1",
3
+ "version": "0.14.0",
4
4
  "description": "Protobuf-like i18n from plain code: Vite plugin",
5
5
  "scripts": {
6
6
  "dev": "tsc --watch",
@@ -40,7 +40,7 @@
40
40
  "author": "K1DV5",
41
41
  "license": "MIT",
42
42
  "dependencies": {
43
- "wuchale": "^0.14.0"
43
+ "wuchale": "^0.15.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^5.8.3"
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,KAAK,YAAY,GAAG;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE;QACJ,EAAE,EAAE;YAAE,IAAI,EAAE,QAAQ,CAAA;SAAE,CAAA;QACtB,WAAW,EAAE;YACT,gBAAgB,EAAE,QAAQ,CAAA;YAC1B,gBAAgB,EAAE,QAAQ,CAAA;SAC7B,CAAA;KACJ,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,cAAM,MAAM;;IAER,IAAI,SAAa;gBAmBL,UAAU,EAAE,MAAM;IAyC9B,cAAc,GAAU,QAAQ;QAAE,GAAG,EAAE;YAAE,GAAG,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,mBASvE;IAsBD,eAAe,GAAU,KAAK,YAAY,oBA6BzC;IAED,SAAS,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,YAK7C;IAED,IAAI,GAAI,IAAI,MAAM,YAiCjB;IAeD,SAAS;eAAa,KAAK;wBAbM,MAAM,MAAM,MAAM;;;;MAaiB;CACvE;AAED,eAAO,MAAM,OAAO,GAAI,aAAa,MAAM,WAA2B,CAAA"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}