@verbaly/vite 0.20.0 → 0.22.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/dist/index.d.ts CHANGED
@@ -1,9 +1,7 @@
1
- import { VerbalyConfig, VerbalyConfig as VerbalyConfig$1 } from "@verbaly/compiler";
1
+ import { PluginOptions, VerbalyConfig } from "@verbaly/compiler";
2
2
  import { Plugin } from "vite";
3
3
  //#region src/index.d.ts
4
- interface ViteVerbalyOptions extends VerbalyConfig$1 {
5
- failOnMissing?: boolean;
6
- }
4
+ type ViteVerbalyOptions = PluginOptions;
7
5
  declare function verbaly(options?: ViteVerbalyOptions): Plugin;
8
6
  //#endregion
9
7
  export { type VerbalyConfig, ViteVerbalyOptions, verbaly as default };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { LOCALE_MODULE_PREFIX, MessageRegistry, RESOLVED_VIRTUAL_ID, SOURCE_FILE_RE, analyzeFile, isTransformTarget, loadCatalogs, loadConfig, loadVirtualModule, resolveVirtualId, runBuildGate, syncCatalogs, transformCode, writeCatalog, writeDts } from "@verbaly/compiler";
1
+ import { LOCALE_MODULE_PREFIX, MessageRegistry, RESOLVED_VIRTUAL_ID, isTransformTarget, loadCatalogs, loadConfig, loadVirtualModule, resolveVirtualId, runBuildGate, syncCatalogs, transformSource, writeCatalog, writeDts } from "@verbaly/compiler";
2
2
  import { readFileSync } from "node:fs";
3
3
  //#region src/index.ts
4
4
  function safeRead(file) {
@@ -31,7 +31,7 @@ function verbaly(options = {}) {
31
31
  const serialized = writeCatalog(cfg, locale, catalogs[locale] ?? {});
32
32
  selfWrites.set(locale, serialized);
33
33
  }
34
- writeDts(cfg, new Map(Object.entries(catalogs[cfg.sourceLocale] ?? {})));
34
+ writeDts(cfg, catalogs[cfg.sourceLocale] ?? {});
35
35
  invalidateVirtual();
36
36
  }
37
37
  function scheduleFlush() {
@@ -50,27 +50,25 @@ function verbaly(options = {}) {
50
50
  isBuild = viteConfig.command === "build";
51
51
  cfg = await loadConfig(options.root ?? viteConfig.root, options);
52
52
  catalogs = loadCatalogs(cfg);
53
- if (!isBuild) writeDts(cfg, new Map(Object.entries(catalogs[cfg.sourceLocale] ?? {})));
53
+ if (!isBuild) writeDts(cfg, catalogs[cfg.sourceLocale] ?? {});
54
54
  },
55
55
  configureServer(devServer) {
56
56
  server = devServer;
57
57
  devServer.watcher.add(cfg.dir);
58
- const onCatalogFile = (file, locale) => {
58
+ const onCatalogFile = (file) => {
59
59
  if (!file.startsWith(cfg.dir) || !file.endsWith(".json")) return;
60
- if (locale) {
61
- const expected = selfWrites.get(locale);
62
- if (expected !== void 0) {
63
- selfWrites.delete(locale);
64
- if (safeRead(file) === expected) return;
65
- }
60
+ const locale = file.split(/[\\/]/).pop().slice(0, -5);
61
+ const expected = selfWrites.get(locale);
62
+ if (expected !== void 0) {
63
+ selfWrites.delete(locale);
64
+ if (safeRead(file) === expected) return;
66
65
  }
67
66
  reloadFromDisk();
68
67
  };
69
- const localeOf = (file) => file.split(/[\\/]/).pop()?.slice(0, -5);
70
- devServer.watcher.on("change", (file) => onCatalogFile(file, localeOf(file)));
71
- devServer.watcher.on("add", (file) => onCatalogFile(file, localeOf(file)));
68
+ devServer.watcher.on("change", onCatalogFile);
69
+ devServer.watcher.on("add", onCatalogFile);
72
70
  devServer.watcher.on("unlink", (file) => {
73
- if (SOURCE_FILE_RE.test(file) && !file.includes("node_modules")) {
71
+ if (isTransformTarget(file)) {
74
72
  registry.remove(file);
75
73
  scheduleFlush();
76
74
  }
@@ -84,8 +82,7 @@ function verbaly(options = {}) {
84
82
  },
85
83
  transform(code, id) {
86
84
  if (!isTransformTarget(id)) return void 0;
87
- const analysis = analyzeFile(code, id);
88
- registry.update(id, analysis);
85
+ const { analysis, result } = transformSource(code, id, registry);
89
86
  if (!isBuild && analysis.tagged.length > 0) {
90
87
  const source = catalogs[cfg.sourceLocale] ??= {};
91
88
  let changed = false;
@@ -95,11 +92,11 @@ function verbaly(options = {}) {
95
92
  }
96
93
  if (changed) scheduleFlush();
97
94
  }
98
- return transformCode(code, id, analysis) ?? void 0;
95
+ return result ?? void 0;
99
96
  },
100
97
  buildEnd() {
101
- if (!isBuild || options.failOnMissing === false) return;
102
- runBuildGate(cfg, registry);
98
+ if (!isBuild) return;
99
+ runBuildGate(cfg, registry, options.failOnMissing);
103
100
  }
104
101
  };
105
102
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n LOCALE_MODULE_PREFIX,\n MessageRegistry,\n RESOLVED_VIRTUAL_ID,\n SOURCE_FILE_RE,\n analyzeFile,\n isTransformTarget,\n loadCatalogs,\n loadConfig,\n loadVirtualModule,\n resolveVirtualId,\n runBuildGate,\n syncCatalogs,\n transformCode,\n writeCatalog,\n writeDts,\n type Catalogs,\n type ResolvedConfig,\n type VerbalyConfig,\n} from '@verbaly/compiler';\nimport { readFileSync } from 'node:fs';\nimport type { Plugin, ViteDevServer } from 'vite';\n\nfunction safeRead(file: string): string | undefined {\n try {\n return readFileSync(file, 'utf8');\n } catch {\n return undefined;\n }\n}\n\nexport type { VerbalyConfig } from '@verbaly/compiler';\n\nexport interface ViteVerbalyOptions extends VerbalyConfig {\n // opt out of the build gate (parity with @verbaly/unplugin)\n failOnMissing?: boolean;\n}\n\nexport default function verbaly(options: ViteVerbalyOptions = {}): Plugin {\n let cfg: ResolvedConfig;\n let catalogs: Catalogs;\n let isBuild = false;\n let server: ViteDevServer | undefined;\n let writeTimer: ReturnType<typeof setTimeout> | undefined;\n const registry = new MessageRegistry();\n const selfWrites = new Map<string, string>();\n\n function invalidateVirtual(): void {\n if (!server) return;\n const ids = [\n RESOLVED_VIRTUAL_ID,\n ...cfg.locales.map((locale) => LOCALE_MODULE_PREFIX + locale),\n ];\n for (const id of ids) {\n const mod = server.moduleGraph.getModuleById(id);\n if (mod) server.moduleGraph.invalidateModule(mod);\n }\n server.ws.send({ type: 'full-reload' });\n }\n\n function flushCatalogs(): void {\n syncCatalogs(cfg, catalogs, registry);\n for (const locale of cfg.locales) {\n const serialized = writeCatalog(cfg, locale, catalogs[locale] ?? {});\n selfWrites.set(locale, serialized);\n }\n writeDts(cfg, new Map(Object.entries(catalogs[cfg.sourceLocale] ?? {})));\n invalidateVirtual();\n }\n\n function scheduleFlush(): void {\n clearTimeout(writeTimer);\n writeTimer = setTimeout(flushCatalogs, 50);\n }\n\n async function reloadFromDisk(): Promise<void> {\n cfg = await loadConfig(cfg.root, options);\n catalogs = loadCatalogs(cfg);\n invalidateVirtual();\n }\n\n return {\n name: 'verbaly',\n enforce: 'pre',\n\n async configResolved(viteConfig) {\n isBuild = viteConfig.command === 'build';\n cfg = await loadConfig(options.root ?? viteConfig.root, options);\n catalogs = loadCatalogs(cfg);\n if (!isBuild) {\n writeDts(cfg, new Map(Object.entries(catalogs[cfg.sourceLocale] ?? {})));\n }\n },\n\n configureServer(devServer) {\n server = devServer;\n devServer.watcher.add(cfg.dir);\n const onCatalogFile = (file: string, locale?: string): void => {\n if (!file.startsWith(cfg.dir) || !file.endsWith('.json')) return;\n if (locale) {\n const expected = selfWrites.get(locale);\n if (expected !== undefined) {\n selfWrites.delete(locale);\n // content compare: a stale entry must not swallow an external edit\n if (safeRead(file) === expected) return;\n }\n }\n void reloadFromDisk();\n };\n const localeOf = (file: string): string | undefined =>\n file.split(/[\\\\/]/).pop()?.slice(0, -5);\n devServer.watcher.on('change', (file) => onCatalogFile(file, localeOf(file)));\n devServer.watcher.on('add', (file) => onCatalogFile(file, localeOf(file)));\n devServer.watcher.on('unlink', (file) => {\n if (SOURCE_FILE_RE.test(file) && !file.includes('node_modules')) {\n registry.remove(file);\n scheduleFlush();\n }\n });\n },\n\n resolveId(id) {\n return resolveVirtualId(id);\n },\n\n load(id) {\n return loadVirtualModule(id, cfg, catalogs);\n },\n\n transform(code, id) {\n if (!isTransformTarget(id)) return undefined;\n const analysis = analyzeFile(code, id);\n registry.update(id, analysis);\n\n if (!isBuild && analysis.tagged.length > 0) {\n const source = (catalogs[cfg.sourceLocale] ??= {});\n let changed = false;\n for (const msg of analysis.tagged) {\n if (source[msg.key] !== msg.message) {\n source[msg.key] = msg.message;\n changed = true;\n }\n }\n if (changed) scheduleFlush();\n }\n\n return transformCode(code, id, analysis) ?? undefined;\n },\n\n buildEnd() {\n if (!isBuild || options.failOnMissing === false) return;\n runBuildGate(cfg, registry);\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n LOCALE_MODULE_PREFIX,\n MessageRegistry,\n RESOLVED_VIRTUAL_ID,\n isTransformTarget,\n loadCatalogs,\n loadConfig,\n loadVirtualModule,\n resolveVirtualId,\n runBuildGate,\n syncCatalogs,\n transformSource,\n writeCatalog,\n writeDts,\n type Catalogs,\n type PluginOptions,\n type ResolvedConfig,\n} from '@verbaly/compiler';\nimport { readFileSync } from 'node:fs';\nimport type { Plugin, ViteDevServer } from 'vite';\n\nfunction safeRead(file: string): string | undefined {\n try {\n return readFileSync(file, 'utf8');\n } catch {\n return undefined;\n }\n}\n\nexport type { VerbalyConfig } from '@verbaly/compiler';\nexport type ViteVerbalyOptions = PluginOptions;\n\nexport default function verbaly(options: ViteVerbalyOptions = {}): Plugin {\n let cfg: ResolvedConfig;\n let catalogs: Catalogs;\n let isBuild = false;\n let server: ViteDevServer | undefined;\n let writeTimer: ReturnType<typeof setTimeout> | undefined;\n const registry = new MessageRegistry();\n const selfWrites = new Map<string, string>();\n\n function invalidateVirtual(): void {\n if (!server) return;\n const ids = [\n RESOLVED_VIRTUAL_ID,\n ...cfg.locales.map((locale) => LOCALE_MODULE_PREFIX + locale),\n ];\n for (const id of ids) {\n const mod = server.moduleGraph.getModuleById(id);\n if (mod) server.moduleGraph.invalidateModule(mod);\n }\n server.ws.send({ type: 'full-reload' });\n }\n\n function flushCatalogs(): void {\n syncCatalogs(cfg, catalogs, registry);\n for (const locale of cfg.locales) {\n const serialized = writeCatalog(cfg, locale, catalogs[locale] ?? {});\n selfWrites.set(locale, serialized);\n }\n writeDts(cfg, catalogs[cfg.sourceLocale] ?? {});\n invalidateVirtual();\n }\n\n function scheduleFlush(): void {\n clearTimeout(writeTimer);\n writeTimer = setTimeout(flushCatalogs, 50);\n }\n\n async function reloadFromDisk(): Promise<void> {\n cfg = await loadConfig(cfg.root, options);\n catalogs = loadCatalogs(cfg);\n invalidateVirtual();\n }\n\n return {\n name: 'verbaly',\n enforce: 'pre',\n\n async configResolved(viteConfig) {\n isBuild = viteConfig.command === 'build';\n cfg = await loadConfig(options.root ?? viteConfig.root, options);\n catalogs = loadCatalogs(cfg);\n if (!isBuild) {\n writeDts(cfg, catalogs[cfg.sourceLocale] ?? {});\n }\n },\n\n configureServer(devServer) {\n server = devServer;\n devServer.watcher.add(cfg.dir);\n const onCatalogFile = (file: string): void => {\n if (!file.startsWith(cfg.dir) || !file.endsWith('.json')) return;\n const locale = file.split(/[\\\\/]/).pop()!.slice(0, -5);\n const expected = selfWrites.get(locale);\n if (expected !== undefined) {\n selfWrites.delete(locale);\n // content compare: a stale entry must not swallow an external edit\n if (safeRead(file) === expected) return;\n }\n void reloadFromDisk();\n };\n devServer.watcher.on('change', onCatalogFile);\n devServer.watcher.on('add', onCatalogFile);\n devServer.watcher.on('unlink', (file) => {\n if (isTransformTarget(file)) {\n registry.remove(file);\n scheduleFlush();\n }\n });\n },\n\n resolveId(id) {\n return resolveVirtualId(id);\n },\n\n load(id) {\n return loadVirtualModule(id, cfg, catalogs);\n },\n\n transform(code, id) {\n if (!isTransformTarget(id)) return undefined;\n const { analysis, result } = transformSource(code, id, registry);\n\n if (!isBuild && analysis.tagged.length > 0) {\n const source = (catalogs[cfg.sourceLocale] ??= {});\n let changed = false;\n for (const msg of analysis.tagged) {\n if (source[msg.key] !== msg.message) {\n source[msg.key] = msg.message;\n changed = true;\n }\n }\n if (changed) scheduleFlush();\n }\n\n return result ?? undefined;\n },\n\n buildEnd() {\n if (!isBuild) return;\n runBuildGate(cfg, registry, options.failOnMissing);\n },\n };\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verbaly/vite",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "description": "Zero-config Vite plugin for Verbaly — extraction, codegen and HMR.",
5
5
  "keywords": [
6
6
  "i18n",
@@ -38,15 +38,15 @@
38
38
  "access": "public"
39
39
  },
40
40
  "dependencies": {
41
- "@verbaly/compiler": "0.20.0"
41
+ "@verbaly/compiler": "0.22.0"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "vite": "^7.0.0 || ^8.0.0",
45
- "verbaly": "^0.20.0"
45
+ "verbaly": "^0.22.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "vite": "^8.1.4",
49
- "verbaly": "0.20.0"
49
+ "verbaly": "0.22.0"
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsdown",