@wuchale/vite-plugin 0.11.0 → 0.13.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 +7 -14
- package/dist/index.d.ts +12 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -87
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
# `@wuchale/vite-plugin`
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/@wuchale/vite-plugin) 
|
|
4
4
|
|
|
5
5
|
The official Vite plugin for `wuchale`.
|
|
6
6
|
|
|
7
|
-
**`wuchale`** is a
|
|
7
|
+
**`wuchale`** is a compile-time internationalization (i18n) toolkit that
|
|
8
|
+
requires zero code changes. Write your components naturally, and `wuchale`
|
|
9
|
+
automatically extracts and replaces translatable strings at build time.
|
|
8
10
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
- **🤖 Optional AI translation** - Gemini integration for automatic on-the-fly translations
|
|
13
|
-
- **🔄 Full, granular HMR support** - Live updates during development, including AI auto-translation
|
|
14
|
-
- **📦 Tiny footprint** - Only 2 or 3 additional dependencies (`wuchale` + `pofile`), no bloated `node_modules`
|
|
15
|
-
- **🎯 Smart extraction** - Uses AST analysis: handles nested markup, conditionals, loops, and complex interpolations
|
|
16
|
-
- **🌍 Standard .po files** - Compatible with existing translation tools and workflows
|
|
17
|
-
|
|
18
|
-
## 📚 Documentation
|
|
19
|
-
|
|
20
|
-
See the full guide at: [wuchale.dev/adapter/svelte](https://wuchale.dev/adapters/svelte).
|
|
11
|
+
- Main documentation: [wuchale.dev](https://wuchale.dev)
|
|
12
|
+
- Setup instructions: [Getting started](https://wuchale.dev/intro/start/)
|
|
13
|
+
- Repository: [wuchalejs/wuchale](https://github.com/wuchalejs/wuchale)
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
1
|
+
type HotUpdateCtx = {
|
|
2
|
+
file: string;
|
|
3
|
+
server: {
|
|
4
|
+
ws: {
|
|
5
|
+
send: Function;
|
|
6
|
+
};
|
|
7
|
+
moduleGraph: {
|
|
8
|
+
getModulesByFile: (id: string) => object[];
|
|
9
|
+
invalidateModule: Function;
|
|
10
|
+
};
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
timestamp: number;
|
|
13
13
|
};
|
|
14
14
|
declare class Plugin {
|
|
15
15
|
#private;
|
|
@@ -21,12 +21,7 @@ declare class Plugin {
|
|
|
21
21
|
};
|
|
22
22
|
root: string;
|
|
23
23
|
}) => Promise<void>;
|
|
24
|
-
|
|
25
|
-
handleHotUpdate: (ctx: {
|
|
26
|
-
file: string;
|
|
27
|
-
server: ViteDevServer;
|
|
28
|
-
timestamp: number;
|
|
29
|
-
}) => Promise<any[]>;
|
|
24
|
+
handleHotUpdate: (ctx: HotUpdateCtx) => Promise<any[]>;
|
|
30
25
|
resolveId: (source: string, importer?: string) => string;
|
|
31
26
|
load: (id: string) => string;
|
|
32
27
|
transform: {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;YAC1C,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
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
// $$ cd ../.. && npm run test
|
|
2
2
|
import { relative, resolve } from "node:path";
|
|
3
|
-
import { getConfig as getConfig } from "wuchale
|
|
4
|
-
import { AdapterHandler } from "wuchale/handler";
|
|
5
|
-
import { Logger } from "wuchale/log";
|
|
3
|
+
import { getConfig as getConfig, Logger, AdapterHandler } from "wuchale";
|
|
6
4
|
import { catalogVarName } from "wuchale/runtime";
|
|
7
5
|
const pluginName = 'wuchale';
|
|
8
6
|
const virtualPrefix = `virtual:${pluginName}/`;
|
|
@@ -12,13 +10,14 @@ class Plugin {
|
|
|
12
10
|
#config;
|
|
13
11
|
#locales = [];
|
|
14
12
|
#projectRoot = '';
|
|
15
|
-
#
|
|
13
|
+
#mode;
|
|
16
14
|
#adapters = {};
|
|
17
15
|
#adaptersByLoaderPath = {};
|
|
18
16
|
#adaptersByCatalogPath = {};
|
|
19
|
-
#lastHMRTime = 0;
|
|
20
17
|
#log;
|
|
21
18
|
#configPath;
|
|
19
|
+
#hmrVersion = -1;
|
|
20
|
+
#hmrLastTime = 0;
|
|
22
21
|
constructor(configPath) {
|
|
23
22
|
this.#configPath = configPath;
|
|
24
23
|
}
|
|
@@ -26,16 +25,27 @@ class Plugin {
|
|
|
26
25
|
this.#config = await getConfig(this.#configPath);
|
|
27
26
|
this.#locales = [this.#config.sourceLocale, ...this.#config.otherLocales];
|
|
28
27
|
this.#log = new Logger(this.#config.messages);
|
|
28
|
+
this.#mode = mode;
|
|
29
29
|
if (Object.keys(this.#config.adapters).length === 0) {
|
|
30
30
|
throw Error('At least one adapter is needed.');
|
|
31
31
|
}
|
|
32
|
+
const sharedState = {};
|
|
32
33
|
for (const [key, adapter] of Object.entries(this.#config.adapters)) {
|
|
33
34
|
const handler = new AdapterHandler(adapter, key, this.#config, mode, virtualPrefix, this.#projectRoot, this.#log);
|
|
34
|
-
await handler.init();
|
|
35
|
+
await handler.init(sharedState);
|
|
35
36
|
this.#adapters[key] = handler;
|
|
36
|
-
|
|
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'));
|
|
44
|
+
}
|
|
45
|
+
this.#adaptersByLoaderPath[loaderPath] = handler;
|
|
37
46
|
for (const fname of Object.keys(handler.catalogPathsToLocales)) {
|
|
38
|
-
this.#adaptersByCatalogPath[fname]
|
|
47
|
+
this.#adaptersByCatalogPath[fname] ??= [];
|
|
48
|
+
this.#adaptersByCatalogPath[fname].push(handler);
|
|
39
49
|
}
|
|
40
50
|
}
|
|
41
51
|
};
|
|
@@ -50,68 +60,49 @@ class Plugin {
|
|
|
50
60
|
this.#projectRoot = config.root;
|
|
51
61
|
await this.#init(mode);
|
|
52
62
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
#sendUpdateToClient = (adapter, locales) => {
|
|
72
|
-
if (!this.#server) {
|
|
73
|
-
// maybe not in dev mode
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
for (const loc of locales) {
|
|
77
|
-
if (!this.#config.adapters[adapter.key].granularLoad) {
|
|
78
|
-
this.#server.ws.send(adapter.virtModEvent(loc, null), adapter.compiled[loc].items);
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
for (const [loadID, state] of Object.entries(adapter.granularStateByID)) {
|
|
82
|
-
const eventName = adapter.virtModEvent(loc, loadID);
|
|
83
|
-
this.#server.ws.send(eventName, state.compiled[loc].items);
|
|
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
|
|
84
79
|
}
|
|
85
|
-
|
|
86
|
-
}
|
|
80
|
+
`;
|
|
81
|
+
}
|
|
87
82
|
handleHotUpdate = async (ctx) => {
|
|
88
83
|
if (!(ctx.file in this.#adaptersByCatalogPath)) {
|
|
89
|
-
this.#
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
if (performance.now() - this.#lastHMRTime < 1000) { // too soon
|
|
84
|
+
this.#hmrVersion++;
|
|
85
|
+
this.#hmrLastTime = performance.now();
|
|
93
86
|
return;
|
|
94
87
|
}
|
|
95
|
-
|
|
96
|
-
const adapter = this.#adaptersByCatalogPath[ctx.file];
|
|
97
|
-
const loc = adapter.catalogPathsToLocales[ctx.file];
|
|
98
|
-
await adapter.loadCatalogNCompile(loc);
|
|
99
|
-
this.#sendUpdateToClient(adapter, [loc]);
|
|
100
|
-
let invalidatedLoadIDs = [null];
|
|
101
|
-
if (this.#config.adapters[adapter.key].granularLoad) {
|
|
102
|
-
invalidatedLoadIDs = Object.keys(adapter.granularStateByID);
|
|
103
|
-
}
|
|
104
|
-
const allModules = [];
|
|
88
|
+
const sourceTriggered = performance.now() - this.#hmrLastTime < 2000;
|
|
105
89
|
const invalidatedModules = new Set();
|
|
106
|
-
for (const
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
90
|
+
for (const adapter of this.#adaptersByCatalogPath[ctx.file]) {
|
|
91
|
+
const loc = adapter.catalogPathsToLocales[ctx.file];
|
|
92
|
+
if (!sourceTriggered) {
|
|
93
|
+
await adapter.loadCatalogNCompile(loc);
|
|
94
|
+
}
|
|
95
|
+
for (const loadID of adapter.getLoadIDs()) {
|
|
96
|
+
const fileID = `${virtualResolvedPrefix}${adapter.virtModEvent(loc, loadID)}`;
|
|
97
|
+
for (const module of ctx.server.moduleGraph.getModulesByFile(fileID) ?? []) {
|
|
98
|
+
ctx.server.moduleGraph.invalidateModule(module, invalidatedModules, ctx.timestamp, false);
|
|
99
|
+
}
|
|
112
100
|
}
|
|
113
101
|
}
|
|
114
|
-
|
|
102
|
+
if (!sourceTriggered) {
|
|
103
|
+
ctx.server.ws.send({ type: 'full-reload' });
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
115
106
|
};
|
|
116
107
|
resolveId = (source, importer) => {
|
|
117
108
|
if (!source.startsWith(virtualPrefix)) {
|
|
@@ -133,25 +124,7 @@ class Plugin {
|
|
|
133
124
|
this.#log.error(`Adapter not found for key: ${adapterKey}`);
|
|
134
125
|
return null;
|
|
135
126
|
}
|
|
136
|
-
|
|
137
|
-
if (this.#server == null) { // prod build
|
|
138
|
-
return module;
|
|
139
|
-
}
|
|
140
|
-
const eventSend = adapter.virtModEvent(locale, loadID);
|
|
141
|
-
const eventReceive = adapter.virtModEvent(locale, null);
|
|
142
|
-
return `
|
|
143
|
-
${module}
|
|
144
|
-
if (import.meta.hot) {
|
|
145
|
-
import.meta.hot.on('${eventSend}', newData => {
|
|
146
|
-
for (let i = 0; i < newData.length; i++) {
|
|
147
|
-
if (JSON.stringify(${catalogVarName}[i]) !== JSON.stringify(newData[i])) {
|
|
148
|
-
${catalogVarName}[i] = newData[i]
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
})
|
|
152
|
-
import.meta.hot.send('${eventReceive}'${loadID == null ? '' : `, {loadID: '${loadID}'}`})
|
|
153
|
-
}
|
|
154
|
-
`;
|
|
127
|
+
return this.#loadCatalog(adapter, locale, loadID);
|
|
155
128
|
}
|
|
156
129
|
if (part === 'locales') {
|
|
157
130
|
return `export const locales = ['${this.#locales.join("', '")}']`;
|
|
@@ -163,7 +136,6 @@ class Plugin {
|
|
|
163
136
|
// loader proxy
|
|
164
137
|
const adapter = this.#adaptersByLoaderPath[importer];
|
|
165
138
|
if (adapter == null) {
|
|
166
|
-
console.log(id);
|
|
167
139
|
this.#log.error(`Adapter not found for filename: ${importer}`);
|
|
168
140
|
return;
|
|
169
141
|
}
|
|
@@ -179,11 +151,7 @@ class Plugin {
|
|
|
179
151
|
const filename = relative(this.#projectRoot, id);
|
|
180
152
|
for (const adapter of Object.values(this.#adapters)) {
|
|
181
153
|
if (adapter.fileMatches(filename)) {
|
|
182
|
-
|
|
183
|
-
if (catalogChanged && this.#lastHMRTime > 0) {
|
|
184
|
-
this.#sendUpdateToClient(adapter, this.#locales);
|
|
185
|
-
}
|
|
186
|
-
return output;
|
|
154
|
+
return await adapter.transform(code, filename, this.#hmrVersion);
|
|
187
155
|
}
|
|
188
156
|
}
|
|
189
157
|
return {};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,SAAS,IAAI,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wuchale/vite-plugin",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Protobuf-like i18n from
|
|
3
|
+
"version": "0.13.0",
|
|
4
|
+
"description": "Protobuf-like i18n from plain code: Vite plugin",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "tsc --watch",
|
|
7
7
|
"build": "tsc",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"author": "K1DV5",
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"wuchale": "^0.
|
|
43
|
+
"wuchale": "^0.14.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.8.3"
|