@shuo-li/i18n 1.0.0 → 1.0.1

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.
@@ -85,6 +85,8 @@ interface WorkerTask {
85
85
  /** 全量拉取时为 0;SSE 增量拉取时为本地已有版本号 */
86
86
  version?: number;
87
87
  trigger?: 'init-full' | 'sse';
88
+ /** 经 buildParams 映射后的实际请求参数;未提供时 Worker 使用内部字段名 */
89
+ params?: Record<string, unknown>;
88
90
  }
89
91
  interface WorkerModuleLoadedMessage {
90
92
  type: 'moduleLoaded';
@@ -85,6 +85,8 @@ interface WorkerTask {
85
85
  /** 全量拉取时为 0;SSE 增量拉取时为本地已有版本号 */
86
86
  version?: number;
87
87
  trigger?: 'init-full' | 'sse';
88
+ /** 经 buildParams 映射后的实际请求参数;未提供时 Worker 使用内部字段名 */
89
+ params?: Record<string, unknown>;
88
90
  }
89
91
  interface WorkerModuleLoadedMessage {
90
92
  type: 'moduleLoaded';
@@ -364,8 +364,8 @@ async function _initI18n(options) {
364
364
  resolvedStores = options.stores;
365
365
  resolvedLanguages = options.languages ?? [options.language];
366
366
  resolvedModules = options.modules ?? [];
367
- await checkCacheVersion(storage, options);
368
367
  await storage.ensureSchemaVersion(resolvedStores);
368
+ await checkCacheVersion(storage, options);
369
369
  for (const lang of resolvedLanguages) {
370
370
  for (const m of resolvedModules) {
371
371
  i18n.addResourceBundle(lang, m, getStaticLocale(m, lang), true, false);
@@ -436,12 +436,11 @@ async function startWorkerFull(options) {
436
436
  for (const store of resolvedStores) {
437
437
  for (const lang of resolvedLanguages) {
438
438
  for (const module of sortedModules()) {
439
+ const internal = { storeName: store.name, langCode: lang, moduleCode: module, version: 0 };
439
440
  tasks.push({
440
- storeName: store.name,
441
- langCode: lang,
442
- moduleCode: module,
443
- version: 0,
444
- trigger: "init-full"
441
+ ...internal,
442
+ trigger: "init-full",
443
+ params: pull.buildParams ? pull.buildParams(internal) : void 0
445
444
  });
446
445
  }
447
446
  }
@@ -632,7 +631,8 @@ async function doFetch(config, options, internalParams) {
632
631
  body: JSON.stringify(params)
633
632
  });
634
633
  } else {
635
- res = await fetchFn(`${url}?${toQueryString(params)}`, { headers });
634
+ const qs = toQueryString(params);
635
+ res = await fetchFn(qs ? `${url}?${qs}` : url, { headers });
636
636
  }
637
637
  if (!res.ok) throw new Error(`[i18n] fetch failed: ${res.status} ${url}`);
638
638
  const raw = await res.json();
@@ -364,8 +364,8 @@ async function _initI18n(options) {
364
364
  resolvedStores = options.stores;
365
365
  resolvedLanguages = _nullishCoalesce(options.languages, () => ( [options.language]));
366
366
  resolvedModules = _nullishCoalesce(options.modules, () => ( []));
367
- await checkCacheVersion(storage, options);
368
367
  await storage.ensureSchemaVersion(resolvedStores);
368
+ await checkCacheVersion(storage, options);
369
369
  for (const lang of resolvedLanguages) {
370
370
  for (const m of resolvedModules) {
371
371
  _i18next2.default.addResourceBundle(lang, m, getStaticLocale(m, lang), true, false);
@@ -436,12 +436,11 @@ async function startWorkerFull(options) {
436
436
  for (const store of resolvedStores) {
437
437
  for (const lang of resolvedLanguages) {
438
438
  for (const module of sortedModules()) {
439
+ const internal = { storeName: store.name, langCode: lang, moduleCode: module, version: 0 };
439
440
  tasks.push({
440
- storeName: store.name,
441
- langCode: lang,
442
- moduleCode: module,
443
- version: 0,
444
- trigger: "init-full"
441
+ ...internal,
442
+ trigger: "init-full",
443
+ params: pull.buildParams ? pull.buildParams(internal) : void 0
445
444
  });
446
445
  }
447
446
  }
@@ -632,7 +631,8 @@ async function doFetch(config, options, internalParams) {
632
631
  body: JSON.stringify(params)
633
632
  });
634
633
  } else {
635
- res = await fetchFn(`${url}?${toQueryString(params)}`, { headers });
634
+ const qs = toQueryString(params);
635
+ res = await fetchFn(qs ? `${url}?${qs}` : url, { headers });
636
636
  }
637
637
  if (!res.ok) throw new Error(`[i18n] fetch failed: ${res.status} ${url}`);
638
638
  const raw = await res.json();
package/dist/index.cjs CHANGED
@@ -7,7 +7,7 @@ var _chunkAJJKJPNBcjs = require('./chunk-AJJKJPNB.cjs');
7
7
 
8
8
 
9
9
 
10
- var _chunkJDOLFHBScjs = require('./chunk-JDOLFHBS.cjs');
10
+ var _chunkEYLGQY2Xcjs = require('./chunk-EYLGQY2X.cjs');
11
11
 
12
12
  // src/index.ts
13
13
  var _i18next = require('i18next'); var _i18next2 = _interopRequireDefault(_i18next);
@@ -203,7 +203,7 @@ if (!_i18next2.default.isInitialized) {
203
203
  }
204
204
  });
205
205
  }
206
- var { initI18n, closeSSE, ensureModules, getResource, getAllRecordsByModule } = _chunkJDOLFHBScjs.createI18nManager.call(void 0, {
206
+ var { initI18n, closeSSE, ensureModules, getResource, getAllRecordsByModule } = _chunkEYLGQY2Xcjs.createI18nManager.call(void 0, {
207
207
  storage: new IndexedDBAdapter(),
208
208
  workerWritesDB: true,
209
209
  createWorker: () => new (0, _chunkAJJKJPNBcjs.WebWorkerAdapter)(
@@ -220,4 +220,4 @@ var { initI18n, closeSSE, ensureModules, getResource, getAllRecordsByModule } =
220
220
 
221
221
 
222
222
 
223
- exports.I18N_RESOURCES_UPDATED_EVENT = _chunkJDOLFHBScjs.I18N_RESOURCES_UPDATED_EVENT; exports.closeSSE = closeSSE; exports.emitI18nResourcesUpdated = _chunkJDOLFHBScjs.emitI18nResourcesUpdated; exports.ensureModules = ensureModules; exports.getAllRecordsByModule = getAllRecordsByModule; exports.getResource = getResource; exports.initI18n = initI18n; exports.useDict = _chunkAJJKJPNBcjs.useDict; exports.useTranslation = _chunkAJJKJPNBcjs.useTranslation;
223
+ exports.I18N_RESOURCES_UPDATED_EVENT = _chunkEYLGQY2Xcjs.I18N_RESOURCES_UPDATED_EVENT; exports.closeSSE = closeSSE; exports.emitI18nResourcesUpdated = _chunkEYLGQY2Xcjs.emitI18nResourcesUpdated; exports.ensureModules = ensureModules; exports.getAllRecordsByModule = getAllRecordsByModule; exports.getResource = getResource; exports.initI18n = initI18n; exports.useDict = _chunkAJJKJPNBcjs.useDict; exports.useTranslation = _chunkAJJKJPNBcjs.useTranslation;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from './cacheEvents-kOPDM3Ed.cjs';
2
- export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, W as WorkerLike, h as emitI18nResourcesUpdated } from './cacheEvents-kOPDM3Ed.cjs';
1
+ import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from './cacheEvents-CAjfH0vs.cjs';
2
+ export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, W as WorkerLike, h as emitI18nResourcesUpdated } from './cacheEvents-CAjfH0vs.cjs';
3
3
  export { u as useDict } from './hooks-ClO29Chr.cjs';
4
4
  export { useTranslation } from 'react-i18next';
5
5
 
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from './cacheEvents-kOPDM3Ed.js';
2
- export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, W as WorkerLike, h as emitI18nResourcesUpdated } from './cacheEvents-kOPDM3Ed.js';
1
+ import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from './cacheEvents-CAjfH0vs.js';
2
+ export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, W as WorkerLike, h as emitI18nResourcesUpdated } from './cacheEvents-CAjfH0vs.js';
3
3
  export { u as useDict } from './hooks-ClO29Chr.js';
4
4
  export { useTranslation } from 'react-i18next';
5
5
 
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  I18N_RESOURCES_UPDATED_EVENT,
8
8
  createI18nManager,
9
9
  emitI18nResourcesUpdated
10
- } from "./chunk-ONDHZEK4.js";
10
+ } from "./chunk-2GMRPNQB.js";
11
11
 
12
12
  // src/index.ts
13
13
  import i18n from "i18next";
package/dist/mp/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkJDOLFHBScjs = require('../chunk-JDOLFHBS.cjs');
5
+ var _chunkEYLGQY2Xcjs = require('../chunk-EYLGQY2X.cjs');
6
6
 
7
7
  // src/storage/wx-sqlite.ts
8
8
  var DB_NAME = "i18n_cache";
@@ -215,7 +215,7 @@ function wxFetch(input, init) {
215
215
  }
216
216
 
217
217
  // src/mp/index.ts
218
- var { initI18n, closeSSE, ensureModules, getResource, getAllRecordsByModule } = _chunkJDOLFHBScjs.createI18nManager.call(void 0, {
218
+ var { initI18n, closeSSE, ensureModules, getResource, getAllRecordsByModule } = _chunkEYLGQY2Xcjs.createI18nManager.call(void 0, {
219
219
  storage: new WxSQLiteAdapter(),
220
220
  createWorker: () => new WxWorkerAdapter(wx.createWorker("workers/preload-worker-mp.js")),
221
221
  fetchFn: wxFetch
@@ -228,4 +228,4 @@ var { initI18n, closeSSE, ensureModules, getResource, getAllRecordsByModule } =
228
228
 
229
229
 
230
230
 
231
- exports.I18N_RESOURCES_UPDATED_EVENT = _chunkJDOLFHBScjs.I18N_RESOURCES_UPDATED_EVENT; exports.closeSSE = closeSSE; exports.emitI18nResourcesUpdated = _chunkJDOLFHBScjs.emitI18nResourcesUpdated; exports.ensureModules = ensureModules; exports.getAllRecordsByModule = getAllRecordsByModule; exports.getResource = getResource; exports.initI18n = initI18n;
231
+ exports.I18N_RESOURCES_UPDATED_EVENT = _chunkEYLGQY2Xcjs.I18N_RESOURCES_UPDATED_EVENT; exports.closeSSE = closeSSE; exports.emitI18nResourcesUpdated = _chunkEYLGQY2Xcjs.emitI18nResourcesUpdated; exports.ensureModules = ensureModules; exports.getAllRecordsByModule = getAllRecordsByModule; exports.getResource = getResource; exports.initI18n = initI18n;
@@ -1,5 +1,5 @@
1
- import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from '../cacheEvents-kOPDM3Ed.cjs';
2
- export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, h as emitI18nResourcesUpdated } from '../cacheEvents-kOPDM3Ed.cjs';
1
+ import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from '../cacheEvents-CAjfH0vs.cjs';
2
+ export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, h as emitI18nResourcesUpdated } from '../cacheEvents-CAjfH0vs.cjs';
3
3
 
4
4
  declare const initI18n: typeof initI18n$1;
5
5
  declare const closeSSE: typeof closeSSE$1;
@@ -1,5 +1,5 @@
1
- import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from '../cacheEvents-kOPDM3Ed.js';
2
- export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, h as emitI18nResourcesUpdated } from '../cacheEvents-kOPDM3Ed.js';
1
+ import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from '../cacheEvents-CAjfH0vs.js';
2
+ export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, h as emitI18nResourcesUpdated } from '../cacheEvents-CAjfH0vs.js';
3
3
 
4
4
  declare const initI18n: typeof initI18n$1;
5
5
  declare const closeSSE: typeof closeSSE$1;
package/dist/mp/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  I18N_RESOURCES_UPDATED_EVENT,
3
3
  createI18nManager,
4
4
  emitI18nResourcesUpdated
5
- } from "../chunk-ONDHZEK4.js";
5
+ } from "../chunk-2GMRPNQB.js";
6
6
 
7
7
  // src/storage/wx-sqlite.ts
8
8
  var DB_NAME = "i18n_cache";
@@ -7,7 +7,7 @@ var _chunkAJJKJPNBcjs = require('../chunk-AJJKJPNB.cjs');
7
7
 
8
8
 
9
9
 
10
- var _chunkJDOLFHBScjs = require('../chunk-JDOLFHBS.cjs');
10
+ var _chunkEYLGQY2Xcjs = require('../chunk-EYLGQY2X.cjs');
11
11
 
12
12
  // src/native/index.ts
13
13
  var _i18next = require('i18next'); var _i18next2 = _interopRequireDefault(_i18next);
@@ -155,7 +155,7 @@ if (!_i18next2.default.isInitialized) {
155
155
  }
156
156
  });
157
157
  }
158
- var { initI18n, closeSSE, ensureModules, getResource, getAllRecordsByModule } = _chunkJDOLFHBScjs.createI18nManager.call(void 0, {
158
+ var { initI18n, closeSSE, ensureModules, getResource, getAllRecordsByModule } = _chunkEYLGQY2Xcjs.createI18nManager.call(void 0, {
159
159
  storage: new SQLiteAdapter(),
160
160
  // Hermes Worker(RN 0.71+),API 与 Web Worker 一致
161
161
  createWorker: () => new (0, _chunkAJJKJPNBcjs.WebWorkerAdapter)(
@@ -172,4 +172,4 @@ var { initI18n, closeSSE, ensureModules, getResource, getAllRecordsByModule } =
172
172
 
173
173
 
174
174
 
175
- exports.I18N_RESOURCES_UPDATED_EVENT = _chunkJDOLFHBScjs.I18N_RESOURCES_UPDATED_EVENT; exports.closeSSE = closeSSE; exports.emitI18nResourcesUpdated = _chunkJDOLFHBScjs.emitI18nResourcesUpdated; exports.ensureModules = ensureModules; exports.getAllRecordsByModule = getAllRecordsByModule; exports.getResource = getResource; exports.initI18n = initI18n; exports.useDict = _chunkAJJKJPNBcjs.useDict; exports.useTranslation = _chunkAJJKJPNBcjs.useTranslation;
175
+ exports.I18N_RESOURCES_UPDATED_EVENT = _chunkEYLGQY2Xcjs.I18N_RESOURCES_UPDATED_EVENT; exports.closeSSE = closeSSE; exports.emitI18nResourcesUpdated = _chunkEYLGQY2Xcjs.emitI18nResourcesUpdated; exports.ensureModules = ensureModules; exports.getAllRecordsByModule = getAllRecordsByModule; exports.getResource = getResource; exports.initI18n = initI18n; exports.useDict = _chunkAJJKJPNBcjs.useDict; exports.useTranslation = _chunkAJJKJPNBcjs.useTranslation;
@@ -1,5 +1,5 @@
1
- import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from '../cacheEvents-kOPDM3Ed.cjs';
2
- export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, h as emitI18nResourcesUpdated } from '../cacheEvents-kOPDM3Ed.cjs';
1
+ import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from '../cacheEvents-CAjfH0vs.cjs';
2
+ export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, h as emitI18nResourcesUpdated } from '../cacheEvents-CAjfH0vs.cjs';
3
3
  export { u as useDict } from '../hooks-ClO29Chr.cjs';
4
4
  export { useTranslation } from 'react-i18next';
5
5
 
@@ -1,5 +1,5 @@
1
- import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from '../cacheEvents-kOPDM3Ed.js';
2
- export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, h as emitI18nResourcesUpdated } from '../cacheEvents-kOPDM3Ed.js';
1
+ import { c as closeSSE$1, e as ensureModules$1, g as getAllRecordsByModule$1, a as getResource$1, i as initI18n$1 } from '../cacheEvents-CAjfH0vs.js';
2
+ export { I as I18N_RESOURCES_UPDATED_EVENT, b as I18nInitOptions, P as PullLangBlock, R as ResourceRecord, S as SSEMessage, d as StandardPullParams, f as StoreConfig, h as emitI18nResourcesUpdated } from '../cacheEvents-CAjfH0vs.js';
3
3
  export { u as useDict } from '../hooks-ClO29Chr.js';
4
4
  export { useTranslation } from 'react-i18next';
5
5
 
@@ -7,7 +7,7 @@ import {
7
7
  I18N_RESOURCES_UPDATED_EVENT,
8
8
  createI18nManager,
9
9
  emitI18nResourcesUpdated
10
- } from "../chunk-ONDHZEK4.js";
10
+ } from "../chunk-2GMRPNQB.js";
11
11
 
12
12
  // src/native/index.ts
13
13
  import i18n from "i18next";
@@ -80,11 +80,13 @@ function idbPut(database, storeName, value) {
80
80
  }
81
81
  async function processTask(task, payload) {
82
82
  const { baseURL, headers, pullPath, pullMethod, stores } = payload;
83
- const params = {};
84
- if (task.storeName) params["storeName"] = task.storeName;
85
- if (task.langCode) params["langCode"] = task.langCode;
86
- if (task.moduleCode) params["moduleCode"] = task.moduleCode;
87
- if (task.version != null) params["version"] = String(task.version);
83
+ const params = _nullishCoalesce(task.params, () => ( {}));
84
+ if (!task.params) {
85
+ if (task.storeName) params["storeName"] = task.storeName;
86
+ if (task.langCode) params["langCode"] = task.langCode;
87
+ if (task.moduleCode) params["moduleCode"] = task.moduleCode;
88
+ if (task.version != null) params["version"] = task.version;
89
+ }
88
90
  const url = baseURL + pullPath;
89
91
  let res;
90
92
  if (pullMethod === "POST") {
@@ -94,7 +96,8 @@ async function processTask(task, payload) {
94
96
  body: JSON.stringify(params)
95
97
  });
96
98
  } else {
97
- res = await fetch(`${url}?${toQueryString(params)}`, { headers });
99
+ const qs = toQueryString(params);
100
+ res = await fetch(qs ? `${url}?${qs}` : url, { headers });
98
101
  }
99
102
  if (!res.ok) throw new Error(`[i18n worker] fetch failed: ${res.status}`);
100
103
  const blocks = await res.json();
@@ -80,11 +80,13 @@ function idbPut(database, storeName, value) {
80
80
  }
81
81
  async function processTask(task, payload) {
82
82
  const { baseURL, headers, pullPath, pullMethod, stores } = payload;
83
- const params = {};
84
- if (task.storeName) params["storeName"] = task.storeName;
85
- if (task.langCode) params["langCode"] = task.langCode;
86
- if (task.moduleCode) params["moduleCode"] = task.moduleCode;
87
- if (task.version != null) params["version"] = String(task.version);
83
+ const params = task.params ?? {};
84
+ if (!task.params) {
85
+ if (task.storeName) params["storeName"] = task.storeName;
86
+ if (task.langCode) params["langCode"] = task.langCode;
87
+ if (task.moduleCode) params["moduleCode"] = task.moduleCode;
88
+ if (task.version != null) params["version"] = task.version;
89
+ }
88
90
  const url = baseURL + pullPath;
89
91
  let res;
90
92
  if (pullMethod === "POST") {
@@ -94,7 +96,8 @@ async function processTask(task, payload) {
94
96
  body: JSON.stringify(params)
95
97
  });
96
98
  } else {
97
- res = await fetch(`${url}?${toQueryString(params)}`, { headers });
99
+ const qs = toQueryString(params);
100
+ res = await fetch(qs ? `${url}?${qs}` : url, { headers });
98
101
  }
99
102
  if (!res.ok) throw new Error(`[i18n worker] fetch failed: ${res.status}`);
100
103
  const blocks = await res.json();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shuo-li/i18n",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Cross-platform i18n library for Web, React Native and WeChat MiniProgram",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",