@wuchale/svelte 0.12.1 → 0.13.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.
package/README.md CHANGED
@@ -4,17 +4,11 @@
4
4
 
5
5
  An adapter to integrate `wuchale` in Svelte projects.
6
6
 
7
- **`wuchale`** is a non-invasive, normal code based compile-time internationalization (i18n) toolkit.
8
-
9
- - **🔤 No extra syntax!** - your normal code is enough
10
- - **📦 Tiny catalogs to bundle** - Text catalogs are just arrays, no keys necessary, like Protobuf
11
- - **🔧 Zero-effort integration** - Add i18n to existing projects without rewriting code
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).
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.
10
+
11
+ - Main documentation: [wuchale.dev](https://wuchale.dev)
12
+ - Setup instructions: [Getting started](https://wuchale.dev/intro/start/)
13
+ - Adapter docs: [JSX](https://wuchale.dev/adapters/svelte)
14
+ - Repository: [wuchalejs/wuchale](https://github.com/wuchalejs/wuchale)
package/dist/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  import type { Adapter, AdapterArgs } from 'wuchale';
2
2
  export declare const adapter: (args?: AdapterArgs) => Adapter;
3
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import { defaultGenerateLoadID, defaultHeuristic, deepMergeObjects } from 'wuchale';
2
- import { adapter as vanillaAdapter } from 'wuchale/adapter-vanilla';
2
+ import { initRuntimeStmt, adapter as vanillaAdapter } from 'wuchale/adapter-vanilla';
3
3
  import { SvelteTransformer } from "./transformer.js";
4
+ import { getDependencies } from 'wuchale/adapter-utils';
4
5
  const topLevelDeclarationsInside = ['$derived', '$derived.by'];
5
6
  const ignoreElements = ['style', 'path'];
6
- const svelteHeuristic = (text, details) => {
7
- if (!defaultHeuristic(text, details)) {
7
+ const svelteHeuristic = (msgStr, details) => {
8
+ if (!defaultHeuristic(msgStr, details)) {
8
9
  return false;
9
10
  }
10
11
  if (ignoreElements.includes(details.element)) {
@@ -30,21 +31,21 @@ const defaultArgs = {
30
31
  bundleLoad: false,
31
32
  generateLoadID: defaultGenerateLoadID,
32
33
  writeFiles: {},
33
- importName: '_w_load_',
34
- runtime: {
35
- initInScope: ({ funcName }) => funcName == null,
36
- wrapInit: init => `$derived(${init})`,
37
- wrapExpr: expr => expr,
38
- }
39
34
  };
40
35
  export const adapter = (args = defaultArgs) => {
41
- const { heuristic, pluralsFunc, runtime, ...rest } = deepMergeObjects(args, defaultArgs);
36
+ const { heuristic, pluralsFunc, ...rest } = deepMergeObjects(args, defaultArgs);
42
37
  return {
43
- transform: ({ content, filename, index, header }) => new SvelteTransformer(content, filename, index, heuristic, pluralsFunc, runtime, header.expr).transformSv(header.head),
38
+ transform: ({ content, filename, index, header }) => {
39
+ return new SvelteTransformer(content, filename, index, heuristic, pluralsFunc, initRuntimeStmt(header.expr)).transformSv(header.head, header.expr);
40
+ },
44
41
  loaderExts: ['.svelte.js', '.svelte.ts', '.js', '.ts'],
45
- defaultLoaders: async (dependencies) => {
42
+ defaultLoaders: async () => {
43
+ if (rest.bundleLoad) {
44
+ return ['bundle'];
45
+ }
46
+ const deps = await getDependencies();
46
47
  const available = ['reactive', 'vanilla'];
47
- if (dependencies.has('@sveltejs/kit')) {
48
+ if (deps.has('@sveltejs/kit')) {
48
49
  available.unshift('sveltekit');
49
50
  }
50
51
  return available;
@@ -55,7 +56,8 @@ export const adapter = (args = defaultArgs) => {
55
56
  }
56
57
  return new URL(`../src/loaders/${loader}.svelte.js`, import.meta.url).pathname;
57
58
  },
58
- ...rest
59
+ ...rest,
60
+ docsUrl: 'https://wuchale.dev/adapters/svelte'
59
61
  };
60
62
  };
61
63
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { AnyNode } from "acorn";
2
2
  import { type AST } from "svelte/compiler";
3
- import { NestText } from 'wuchale';
3
+ import { Message } from 'wuchale';
4
4
  import { Transformer } from 'wuchale/adapter-vanilla';
5
- import type { IndexTracker, HeuristicFunc, TransformOutput, CommentDirectives, RuntimeOptions } from 'wuchale';
5
+ import type { IndexTracker, HeuristicFunc, TransformOutput, CommentDirectives } from 'wuchale';
6
6
  import { MixedVisitor } from "wuchale/adapter-utils";
7
7
  type MixedNodesTypes = AST.Text | AST.Tag | AST.ElementLike | AST.Block | AST.Comment;
8
8
  export declare class SvelteTransformer extends Transformer {
@@ -12,29 +12,28 @@ export declare class SvelteTransformer extends Transformer {
12
12
  lastVisitIsComment: boolean;
13
13
  currentSnippet: number;
14
14
  mixedVisitor: MixedVisitor<MixedNodesTypes>;
15
- constructor(content: string, filename: string, index: IndexTracker, heuristic: HeuristicFunc, pluralsFunc: string, runtimeOpts: RuntimeOptions, initExpr: string);
16
- visitExpressionTag: (node: AST.ExpressionTag) => NestText[];
15
+ constructor(content: string, filename: string, index: IndexTracker, heuristic: HeuristicFunc, pluralsFunc: string, initRuntime: string);
16
+ visitExpressionTag: (node: AST.ExpressionTag) => Message[];
17
17
  initMixedVisitor: () => MixedVisitor<MixedNodesTypes>;
18
- visitFragment: (node: AST.Fragment) => NestText[];
19
- visitRegularElement: (node: AST.ElementLike) => NestText[];
20
- visitComponent: (node: AST.ElementLike) => NestText[];
21
- visitText: (node: AST.Text) => NestText[];
22
- visitSpreadAttribute: (node: AST.SpreadAttribute) => NestText[];
23
- visitAttribute: (node: AST.Attribute) => NestText[];
24
- visitSnippetBlock: (node: AST.SnippetBlock) => NestText[];
25
- visitIfBlock: (node: AST.IfBlock) => NestText[];
26
- visitEachBlock: (node: AST.EachBlock) => NestText[];
27
- visitKeyBlock: (node: AST.KeyBlock) => NestText[];
28
- visitAwaitBlock: (node: AST.AwaitBlock) => NestText[];
29
- visitSvelteBody: (node: AST.SvelteBody) => NestText[];
30
- visitSvelteDocument: (node: AST.SvelteDocument) => NestText[];
31
- visitSvelteElement: (node: AST.SvelteElement) => NestText[];
32
- visitSvelteBoundary: (node: AST.SvelteBoundary) => NestText[];
33
- visitSvelteHead: (node: AST.SvelteHead) => NestText[];
34
- visitSvelteWindow: (node: AST.SvelteWindow) => NestText[];
35
- visitRoot: (node: AST.Root) => NestText[];
36
- visitSv: (node: AST.SvelteNode | AnyNode) => NestText[];
37
- transformSv: (headerHead: string) => TransformOutput;
18
+ visitFragment: (node: AST.Fragment) => Message[];
19
+ visitRegularElement: (node: AST.ElementLike) => Message[];
20
+ visitComponent: (node: AST.ElementLike) => Message[];
21
+ visitText: (node: AST.Text) => Message[];
22
+ visitSpreadAttribute: (node: AST.SpreadAttribute) => Message[];
23
+ visitAttribute: (node: AST.Attribute) => Message[];
24
+ visitSnippetBlock: (node: AST.SnippetBlock) => Message[];
25
+ visitIfBlock: (node: AST.IfBlock) => Message[];
26
+ visitEachBlock: (node: AST.EachBlock) => Message[];
27
+ visitKeyBlock: (node: AST.KeyBlock) => Message[];
28
+ visitAwaitBlock: (node: AST.AwaitBlock) => Message[];
29
+ visitSvelteBody: (node: AST.SvelteBody) => Message[];
30
+ visitSvelteDocument: (node: AST.SvelteDocument) => Message[];
31
+ visitSvelteElement: (node: AST.SvelteElement) => Message[];
32
+ visitSvelteBoundary: (node: AST.SvelteBoundary) => Message[];
33
+ visitSvelteHead: (node: AST.SvelteHead) => Message[];
34
+ visitSvelteWindow: (node: AST.SvelteWindow) => Message[];
35
+ visitRoot: (node: AST.Root) => Message[];
36
+ visitSv: (node: AST.SvelteNode | AnyNode) => Message[];
37
+ transformSv: (headerHead: string, headerExpr: string) => TransformOutput;
38
38
  }
39
39
  export {};
40
- //# sourceMappingURL=transformer.d.ts.map
@@ -1,8 +1,8 @@
1
1
  import MagicString from "magic-string";
2
2
  import { parse } from "svelte/compiler";
3
- import { NestText } from 'wuchale';
3
+ import { Message } from 'wuchale';
4
4
  import { Transformer, parseScript } from 'wuchale/adapter-vanilla';
5
- import { MixedVisitor, nonWhitespaceText } from "wuchale/adapter-utils";
5
+ import { MixedVisitor, nonWhitespaceText, runtimeVars } from "wuchale/adapter-utils";
6
6
  const nodesWithChildren = ['RegularElement', 'Component'];
7
7
  const rtComponent = 'WuchaleTrans';
8
8
  const snipPrefix = 'wuchaleSnippet';
@@ -14,13 +14,12 @@ export class SvelteTransformer extends Transformer {
14
14
  lastVisitIsComment = false;
15
15
  currentSnippet = 0;
16
16
  mixedVisitor;
17
- constructor(content, filename, index, heuristic, pluralsFunc, runtimeOpts, initExpr) {
18
- super(content, filename, index, heuristic, pluralsFunc, runtimeOpts, initExpr);
17
+ constructor(content, filename, index, heuristic, pluralsFunc, initRuntime) {
18
+ super(content, filename, index, heuristic, pluralsFunc, initRuntime);
19
19
  }
20
20
  visitExpressionTag = (node) => this.visit(node.expression);
21
21
  initMixedVisitor = () => new MixedVisitor({
22
22
  mstr: this.mstr,
23
- vars: this.vars,
24
23
  getRange: node => ({ start: node.start, end: node.end }),
25
24
  isText: node => node.type === 'Text',
26
25
  isComment: node => node.type === 'Comment',
@@ -36,26 +35,26 @@ export class SvelteTransformer extends Transformer {
36
35
  return childTxts;
37
36
  },
38
37
  visitExpressionTag: this.visitExpressionTag,
39
- checkHeuristic: txt => this.checkHeuristic(txt, { scope: 'markup', element: this.currentElement })[0],
38
+ checkHeuristic: msgStr => this.checkHeuristic(msgStr, { scope: 'markup', element: this.currentElement })[0],
40
39
  index: this.index,
41
- wrapNested: (txt, hasExprs, nestedRanges, lastChildEnd) => {
40
+ wrapNested: (msgInfo, hasExprs, nestedRanges, lastChildEnd) => {
42
41
  const snippets = [];
43
42
  // create and reference snippets
44
43
  for (const [childStart, childEnd, haveCtx] of nestedRanges) {
45
44
  const snippetName = `${snipPrefix}${this.currentSnippet}`;
46
45
  snippets.push(snippetName);
47
46
  this.currentSnippet++;
48
- const snippetBegin = `\n{#snippet ${snippetName}(${haveCtx ? this.vars.nestCtx : ''})}\n`;
47
+ const snippetBegin = `\n{#snippet ${snippetName}(${haveCtx ? runtimeVars.nestCtx : ''})}\n`;
49
48
  this.mstr.appendRight(childStart, snippetBegin);
50
49
  this.mstr.prependLeft(childEnd, '\n{/snippet}');
51
50
  }
52
51
  let begin = `\n<${rtComponent} tags={[${snippets.join(', ')}]} ctx=`;
53
52
  if (this.inCompoundText) {
54
- begin += `{${this.vars.nestCtx}} nest`;
53
+ begin += `{${runtimeVars.nestCtx}} nest`;
55
54
  }
56
55
  else {
57
- const index = this.index.get(txt.toKey());
58
- begin += `{${this.vars.rtCtx}(${index})}`;
56
+ const index = this.index.get(msgInfo.toKey());
57
+ begin += `{${runtimeVars.rtCtx}(${index})}`;
59
58
  }
60
59
  let end = ' />\n';
61
60
  if (hasExprs) {
@@ -74,33 +73,33 @@ export class SvelteTransformer extends Transformer {
74
73
  visitRegularElement = (node) => {
75
74
  const currentElement = this.currentElement;
76
75
  this.currentElement = node.name;
77
- const txts = [];
76
+ const msgs = [];
78
77
  for (const attrib of node.attributes) {
79
- txts.push(...this.visitSv(attrib));
78
+ msgs.push(...this.visitSv(attrib));
80
79
  }
81
- txts.push(...this.visitFragment(node.fragment));
80
+ msgs.push(...this.visitFragment(node.fragment));
82
81
  this.currentElement = currentElement;
83
- return txts;
82
+ return msgs;
84
83
  };
85
84
  visitComponent = this.visitRegularElement;
86
85
  visitText = (node) => {
87
86
  const [startWh, trimmed, endWh] = nonWhitespaceText(node.data);
88
- const [pass, txt] = this.checkHeuristic(trimmed, {
87
+ const [pass, msgInfo] = this.checkHeuristic(trimmed, {
89
88
  scope: 'markup',
90
89
  element: this.currentElement,
91
90
  });
92
91
  if (!pass) {
93
92
  return [];
94
93
  }
95
- this.mstr.update(node.start + startWh, node.end - endWh, `{${this.vars.rtTrans}(${this.index.get(txt.toKey())})}`);
96
- return [txt];
94
+ this.mstr.update(node.start + startWh, node.end - endWh, `{${runtimeVars.rtTrans}(${this.index.get(msgInfo.toKey())})}`);
95
+ return [msgInfo];
97
96
  };
98
97
  visitSpreadAttribute = (node) => this.visit(node.expression);
99
98
  visitAttribute = (node) => {
100
99
  if (node.value === true) {
101
100
  return [];
102
101
  }
103
- const txts = [];
102
+ const msgs = [];
104
103
  let values;
105
104
  if (Array.isArray(node.value)) {
106
105
  values = node.value;
@@ -110,12 +109,12 @@ export class SvelteTransformer extends Transformer {
110
109
  }
111
110
  for (const value of values) {
112
111
  if (value.type !== 'Text') { // ExpressionTag
113
- txts.push(...this.visitSv(value));
112
+ msgs.push(...this.visitSv(value));
114
113
  continue;
115
114
  }
116
115
  // Text
117
116
  const { start, end } = value;
118
- const [pass, txt] = this.checkHeuristic(value.data, {
117
+ const [pass, msgInfo] = this.checkHeuristic(value.data, {
119
118
  scope: 'attribute',
120
119
  element: this.currentElement,
121
120
  attribute: node.name,
@@ -123,37 +122,37 @@ export class SvelteTransformer extends Transformer {
123
122
  if (!pass) {
124
123
  continue;
125
124
  }
126
- txts.push(txt);
127
- this.mstr.update(value.start, value.end, `{${this.vars.rtTrans}(${this.index.get(txt.toKey())})}`);
125
+ msgs.push(msgInfo);
126
+ this.mstr.update(value.start, value.end, `{${runtimeVars.rtTrans}(${this.index.get(msgInfo.toKey())})}`);
128
127
  if (!`'"`.includes(this.content[start - 1])) {
129
128
  continue;
130
129
  }
131
130
  this.mstr.remove(start - 1, start);
132
131
  this.mstr.remove(end, end + 1);
133
132
  }
134
- return txts;
133
+ return msgs;
135
134
  };
136
135
  visitSnippetBlock = (node) => this.visitFragment(node.body);
137
136
  visitIfBlock = (node) => {
138
- const txts = this.visit(node.test);
139
- txts.push(...this.visitSv(node.consequent));
137
+ const msgs = this.visit(node.test);
138
+ msgs.push(...this.visitSv(node.consequent));
140
139
  if (node.alternate) {
141
- txts.push(...this.visitSv(node.alternate));
140
+ msgs.push(...this.visitSv(node.alternate));
142
141
  }
143
- return txts;
142
+ return msgs;
144
143
  };
145
144
  visitEachBlock = (node) => {
146
- const txts = [
145
+ const msgs = [
147
146
  ...this.visit(node.expression),
148
147
  ...this.visitSv(node.body),
149
148
  ];
150
149
  if (node.key) {
151
- txts.push(...this.visit(node.key));
150
+ msgs.push(...this.visit(node.key));
152
151
  }
153
152
  if (node.fallback) {
154
- txts.push(...this.visitSv(node.fallback));
153
+ msgs.push(...this.visitSv(node.fallback));
155
154
  }
156
- return txts;
155
+ return msgs;
157
156
  };
158
157
  visitKeyBlock = (node) => {
159
158
  return [
@@ -162,17 +161,17 @@ export class SvelteTransformer extends Transformer {
162
161
  ];
163
162
  };
164
163
  visitAwaitBlock = (node) => {
165
- const txts = [
164
+ const msgs = [
166
165
  ...this.visit(node.expression),
167
166
  ...this.visitFragment(node.then),
168
167
  ];
169
168
  if (node.pending) {
170
- txts.push(...this.visitFragment(node.pending));
169
+ msgs.push(...this.visitFragment(node.pending));
171
170
  }
172
171
  if (node.catch) {
173
- txts.push(...this.visitFragment(node.catch));
172
+ msgs.push(...this.visitFragment(node.catch));
174
173
  }
175
- return txts;
174
+ return msgs;
176
175
  };
177
176
  visitSvelteBody = (node) => node.attributes.map(this.visitSv).flat();
178
177
  visitSvelteDocument = (node) => node.attributes.map(this.visitSv).flat();
@@ -184,18 +183,24 @@ export class SvelteTransformer extends Transformer {
184
183
  visitSvelteHead = (node) => this.visitSv(node.fragment);
185
184
  visitSvelteWindow = (node) => node.attributes.map(this.visitSv).flat();
186
185
  visitRoot = (node) => {
187
- const txts = this.visitFragment(node.fragment);
188
- if (node.instance) {
189
- this.commentDirectives = {}; // reset
190
- txts.push(...this.visitProgram(node.instance.content));
191
- }
192
186
  // @ts-ignore: module is a reserved keyword, not sure how to specify the type
193
187
  if (node.module) {
194
188
  this.commentDirectives = {}; // reset
195
189
  // @ts-ignore
196
- txts.push(...this.visitProgram(node.module.content));
190
+ msgs.push(...this.visitProgram(node.module.content));
191
+ }
192
+ // no need to init runtime inside components outside <script module>s
193
+ // they run everytime they are rendered instead of once at startup
194
+ const initRuntime = this.initRuntime;
195
+ this.initRuntime = null;
196
+ const msgs = this.visitFragment(node.fragment);
197
+ if (node.instance) {
198
+ this.commentDirectives = {}; // reset
199
+ msgs.push(...this.visitProgram(node.instance.content));
197
200
  }
198
- return txts;
201
+ // restore just in case
202
+ this.initRuntime = initRuntime;
203
+ return msgs;
199
204
  };
200
205
  visitSv = (node) => {
201
206
  if (node.type === 'Comment') {
@@ -212,19 +217,19 @@ export class SvelteTransformer extends Transformer {
212
217
  if (node.type === 'Text' && !node.data.trim()) {
213
218
  return [];
214
219
  }
215
- let txts = [];
220
+ let msgs = [];
216
221
  const commentDirectivesPrev = this.commentDirectives;
217
222
  if (this.lastVisitIsComment) {
218
223
  this.commentDirectives = this.commentDirectivesStack.pop();
219
224
  this.lastVisitIsComment = false;
220
225
  }
221
226
  if (this.commentDirectives.forceInclude !== false) {
222
- txts = this.visit(node);
227
+ msgs = this.visit(node);
223
228
  }
224
229
  this.commentDirectives = commentDirectivesPrev;
225
- return txts;
230
+ return msgs;
226
231
  };
227
- transformSv = (headerHead) => {
232
+ transformSv = (headerHead, headerExpr) => {
228
233
  const isComponent = this.filename.endsWith('.svelte');
229
234
  let ast;
230
235
  if (isComponent) {
@@ -237,35 +242,39 @@ export class SvelteTransformer extends Transformer {
237
242
  }
238
243
  this.mstr = new MagicString(this.content);
239
244
  this.mixedVisitor = this.initMixedVisitor();
240
- const txts = this.visitSv(ast);
241
- if (!txts.length) {
242
- return this.finalize(txts);
245
+ const msgs = this.visitSv(ast);
246
+ if (!msgs.length) {
247
+ return this.finalize(msgs, 0);
243
248
  }
244
- let initRTTop = `const ${this.vars.rtConst} = ${this.initRuntimeExpr}\n`;
245
- if (ast.type === 'Program' && !this.runtimeOpts.initInScope({ funcName: null, file: this.filename })) {
246
- initRTTop = '';
247
- }
248
- const headerFin = [
249
- `\nimport ${rtComponent} from "@wuchale/svelte/runtime.svelte"`,
249
+ const headerLines = [
250
+ isComponent ? `\nimport ${rtComponent} from "@wuchale/svelte/runtime.svelte"` : '',
250
251
  headerHead,
251
- initRTTop,
252
- ].join('\n');
252
+ // if it's a .svelte.js file it follows the vanilla initialization: inside functions only
253
+ isComponent ? `const ${runtimeVars.rtConst} = $derived(${runtimeVars.rtWrap}(${headerExpr}))\n` : '',
254
+ ];
255
+ const headerFin = headerLines.join('\n');
253
256
  if (ast.type === 'Program') {
254
257
  this.mstr.appendRight(0, headerFin + '\n');
255
- return this.finalize(txts);
258
+ return this.finalize(msgs, 0);
256
259
  }
260
+ let hmrHeaderIndex = 0;
257
261
  if (ast.module) {
258
262
  // @ts-ignore
259
- this.mstr.appendRight(ast.module.content.start, headerFin);
263
+ hmrHeaderIndex = ast.module.content.start;
264
+ this.mstr.appendRight(hmrHeaderIndex, headerFin);
260
265
  }
261
266
  else if (ast.instance) {
262
267
  // @ts-ignore
263
- this.mstr.appendRight(ast.instance.content.start, headerFin);
268
+ hmrHeaderIndex = ast.instance.content.start;
269
+ this.mstr.appendRight(hmrHeaderIndex, headerFin);
264
270
  }
265
271
  else {
266
- this.mstr.prepend(`<script>${headerFin}</script>\n`);
272
+ this.mstr.prepend('<script>');
273
+ // account index for hmr data here
274
+ this.mstr.prependRight(0, `${headerFin}</script>\n`);
275
+ // now hmr data can be prependRight(0, ...)
267
276
  }
268
- return this.finalize(txts);
277
+ return this.finalize(msgs, hmrHeaderIndex);
269
278
  };
270
279
  }
271
280
  //# sourceMappingURL=transformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wuchale/svelte",
3
- "version": "0.12.1",
4
- "description": "Protobuf-like i18n from normal code for Svelte",
3
+ "version": "0.13.1",
4
+ "description": "Protobuf-like i18n from plain code: Svelte adapter",
5
5
  "scripts": {
6
6
  "dev": "tsc --watch",
7
7
  "build": "tsc",
@@ -52,7 +52,7 @@
52
52
  "license": "MIT",
53
53
  "dependencies": {
54
54
  "svelte": "^5.37.0",
55
- "wuchale": "^0.13.0"
55
+ "wuchale": "^0.14.0"
56
56
  },
57
57
  "devDependencies": {
58
58
  "acorn": "^8.15.0",
@@ -0,0 +1,16 @@
1
+ // This is just the default loader.
2
+ // You can customize it however you want, it will not be overwritten once it exists and is not empty.
3
+
4
+ let locale = $state('en')
5
+
6
+ /**
7
+ * @param {string} newLocale
8
+ */
9
+ export function setLocale(newLocale) {
10
+ locale = newLocale
11
+ }
12
+
13
+ /**
14
+ * @param {{ [locale: string]: import("wuchale/runtime").CatalogModule }} catalogs
15
+ */
16
+ export default catalogs => catalogs[locale]
@@ -3,22 +3,19 @@
3
3
 
4
4
  /// <reference types="wuchale/virtual" />
5
5
 
6
- export { loadCatalog, loadIDs, key } from 'virtual:wuchale/proxy'
7
- import { key } from 'virtual:wuchale/proxy'
8
- import { page } from '$app/state'
9
- import { Runtime } from 'wuchale/runtime'
6
+ import { loadCatalog, loadIDs, key } from 'virtual:wuchale/proxy' // or proxy/sync
7
+ import { registerLoaders, defaultCollection } from 'wuchale/load-utils'
10
8
 
11
- // for server to be set from hooks.server.js
12
- let loadC = (/** @type {string} */ loadID) => {
13
- return page.data.catalogs?.[loadID] ?? new Runtime()
14
- }
9
+ export { loadCatalog, loadIDs, key } // for +layout.{js,ts} and hooks.server.{js,ts}
10
+
11
+ let loadC
15
12
 
16
- if (import.meta.env.SSR) {
17
- const { currentRT } = await import('wuchale/load-utils/server')
18
- loadC = loadID => currentRT(key, loadID)
13
+ if (import.meta.env.SSR) { // stripped from production client builds
14
+ const { currentCatalog } = await import('wuchale/load-utils/server')
15
+ loadC = (/** @type {string} */ loadID) => currentCatalog(key, loadID)
16
+ } else { // client
17
+ const catalogs = $state({})
18
+ loadC = registerLoaders(key, loadCatalog, loadIDs, defaultCollection(catalogs))
19
19
  }
20
20
 
21
- /**
22
- * @param {string} loadID
23
- */
24
21
  export default loadC
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAER,OAAO,EACP,WAAW,EAGd,MAAM,SAAS,CAAA;AA0ChB,eAAO,MAAM,OAAO,GAAI,OAAM,WAAyB,KAAG,OAiCzD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"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"}