wuchale 0.13.2 → 0.14.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 +6 -13
- package/dist/adapter-utils/index.d.ts +5 -4
- package/dist/adapter-utils/index.js +29 -15
- package/dist/adapter-utils/index.js.map +1 -1
- package/dist/adapter-utils/mixed-visitor.d.ts +7 -10
- package/dist/adapter-utils/mixed-visitor.js +37 -38
- package/dist/adapter-utils/mixed-visitor.js.map +1 -1
- package/dist/adapter-vanilla/index.d.ts +1 -2
- package/dist/adapter-vanilla/index.js +12 -12
- package/dist/adapter-vanilla/index.js.map +1 -1
- package/dist/adapter-vanilla/transformer.d.ts +38 -41
- package/dist/adapter-vanilla/transformer.js +74 -96
- package/dist/adapter-vanilla/transformer.js.map +1 -1
- package/dist/adapters.d.ts +19 -25
- package/dist/adapters.js +16 -16
- package/dist/adapters.js.map +1 -1
- package/dist/cli/extract.d.ts +2 -3
- package/dist/cli/extract.js +8 -6
- package/dist/cli/extract.js.map +1 -1
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.js +1 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +1 -2
- package/dist/cli/init.js +33 -28
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/input.d.ts +0 -1
- package/dist/cli/status.d.ts +0 -1
- package/dist/compile.d.ts +1 -2
- package/dist/compile.js +16 -16
- package/dist/compile.js.map +1 -1
- package/dist/config.d.ts +0 -1
- package/dist/gemini.d.ts +0 -1
- package/dist/handler.d.ts +25 -8
- package/dist/handler.js +133 -78
- package/dist/handler.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/load-utils/index.d.ts +2 -4
- package/dist/load-utils/index.js +4 -30
- package/dist/load-utils/index.js.map +1 -1
- package/dist/load-utils/pure.d.ts +2 -3
- package/dist/load-utils/pure.js +1 -2
- package/dist/load-utils/pure.js.map +1 -1
- package/dist/load-utils/server.d.ts +3 -4
- package/dist/load-utils/server.js +7 -4
- package/dist/load-utils/server.js.map +1 -1
- package/dist/log.d.ts +0 -1
- package/dist/runtime.d.ts +5 -5
- package/dist/runtime.js +19 -10
- package/dist/runtime.js.map +1 -1
- package/package.json +3 -3
- package/src/adapter-vanilla/loaders/bundle.js +16 -0
- package/dist/adapter-utils/index.d.ts.map +0 -1
- package/dist/adapter-utils/mixed-visitor.d.ts.map +0 -1
- package/dist/adapter-vanilla/index.d.ts.map +0 -1
- package/dist/adapter-vanilla/transformer.d.ts.map +0 -1
- package/dist/adapters.d.ts.map +0 -1
- package/dist/cli/extract.d.ts.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/init.d.ts.map +0 -1
- package/dist/cli/input.d.ts.map +0 -1
- package/dist/cli/status.d.ts.map +0 -1
- package/dist/compile.d.ts.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/gemini.d.ts.map +0 -1
- package/dist/handler.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/load-utils/index.d.ts.map +0 -1
- package/dist/load-utils/pure.d.ts.map +0 -1
- package/dist/load-utils/server.d.ts.map +0 -1
- package/dist/log.d.ts.map +0 -1
- package/dist/runtime.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -2,17 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/wuchale) 
|
|
4
4
|
|
|
5
|
-
**`wuchale`** is a
|
|
5
|
+
**`wuchale`** is a compile-time internationalization (i18n) toolkit that
|
|
6
|
+
requires zero code changes. Write your components naturally, and `wuchale`
|
|
7
|
+
automatically extracts and replaces translatable strings at build time.
|
|
6
8
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
- **🤖 Optional AI translation** - Gemini integration for automatic on-the-fly translations
|
|
11
|
-
- **🔄 Full, granular HMR support** - Live updates during development, including AI auto-translation
|
|
12
|
-
- **📦 Tiny footprint** - Only 2 or 3 additional dependencies (`wuchale` + `pofile`), no bloated `node_modules`
|
|
13
|
-
- **🎯 Smart extraction** - Uses AST analysis: handles nested markup, conditionals, loops, and complex interpolations
|
|
14
|
-
- **🌍 Standard .po files** - Compatible with existing translation tools and workflows
|
|
15
|
-
|
|
16
|
-
## 📚 Documentation
|
|
17
|
-
|
|
18
|
-
See the full guide at: [wuchale.dev](https://wuchale.dev/).
|
|
9
|
+
- Main documentation: [wuchale.dev](https://wuchale.dev)
|
|
10
|
+
- Setup instructions: [Getting started](https://wuchale.dev/intro/start/)
|
|
11
|
+
- Repository: [wuchalejs/wuchale](https://github.com/wuchalejs/wuchale)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { MixedVisitor } from './mixed-visitor.js';
|
|
2
|
-
export declare
|
|
2
|
+
export declare const runtimeVars: {
|
|
3
|
+
hmrUpdate: string;
|
|
4
|
+
rtWrap: string;
|
|
3
5
|
rtConst: string;
|
|
4
6
|
rtTrans: string;
|
|
5
7
|
rtTPlural: string;
|
|
@@ -9,6 +11,5 @@ export declare function runtimeVars(wrapFunc: (expr: string) => string): {
|
|
|
9
11
|
/** for when nesting, used in adapters with elements */
|
|
10
12
|
nestCtx: string;
|
|
11
13
|
};
|
|
12
|
-
export
|
|
13
|
-
export declare function
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|
|
14
|
+
export declare function nonWhitespaceText(msgStr: string): [number, string, number];
|
|
15
|
+
export declare function getDependencies(): Promise<Set<string>>;
|
|
@@ -1,23 +1,37 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
1
2
|
export { MixedVisitor } from './mixed-visitor.js';
|
|
2
3
|
// for runtime
|
|
3
4
|
const rtConst = '_w_runtime_';
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
export function nonWhitespaceText(
|
|
17
|
-
let trimmedS =
|
|
18
|
-
const startWh =
|
|
5
|
+
export const runtimeVars = {
|
|
6
|
+
hmrUpdate: '_w_hmrUpdate_',
|
|
7
|
+
rtWrap: '_w_to_rt_',
|
|
8
|
+
rtConst,
|
|
9
|
+
rtTrans: `${rtConst}.t`,
|
|
10
|
+
rtTPlural: `${rtConst}.tp`,
|
|
11
|
+
rtPlural: `${rtConst}._.p`,
|
|
12
|
+
rtCtx: `${rtConst}.cx`,
|
|
13
|
+
rtTransCtx: `${rtConst}.tx`,
|
|
14
|
+
/** for when nesting, used in adapters with elements */
|
|
15
|
+
nestCtx: '_w_ctx_',
|
|
16
|
+
};
|
|
17
|
+
export function nonWhitespaceText(msgStr) {
|
|
18
|
+
let trimmedS = msgStr.trimStart();
|
|
19
|
+
const startWh = msgStr.length - trimmedS.length;
|
|
19
20
|
let trimmed = trimmedS.trimEnd();
|
|
20
21
|
const endWh = trimmedS.length - trimmed.length;
|
|
21
22
|
return [startWh, trimmed, endWh];
|
|
22
23
|
}
|
|
24
|
+
export async function getDependencies() {
|
|
25
|
+
let json = { devDependencies: {}, dependencies: {} };
|
|
26
|
+
try {
|
|
27
|
+
const pkgJson = await readFile('package.json');
|
|
28
|
+
json = JSON.parse(pkgJson.toString());
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
if (err.code !== 'ENOENT') {
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return new Set(Object.keys({ ...json.devDependencies, ...json.dependencies }));
|
|
36
|
+
}
|
|
23
37
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapter-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,cAAc;AACd,MAAM,OAAO,GAAG,aAAa,CAAA;AAE7B,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapter-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,cAAc;AACd,MAAM,OAAO,GAAG,aAAa,CAAA;AAE7B,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,WAAW;IACnB,OAAO;IACP,OAAO,EAAE,GAAG,OAAO,IAAI;IACvB,SAAS,EAAE,GAAG,OAAO,KAAK;IAC1B,QAAQ,EAAE,GAAG,OAAO,MAAM;IAC1B,KAAK,EAAE,GAAG,OAAO,KAAK;IACtB,UAAU,EAAE,GAAG,OAAO,KAAK;IAC3B,uDAAuD;IACvD,OAAO,EAAE,SAAS;CACrB,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC5C,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC/C,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAA;IAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC9C,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACjC,IAAI,IAAI,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAA;IACpD,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,CAAA;QAC9C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,CAAA;QACb,CAAC;IACL,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;AAClF,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type MagicString from "magic-string";
|
|
2
|
-
import { IndexTracker,
|
|
3
|
-
import { type RuntimeVars } from "./index.js";
|
|
2
|
+
import { IndexTracker, Message, type CommentDirectives } from "../adapters.js";
|
|
4
3
|
type NestedRanges = [number, number, boolean][];
|
|
5
4
|
type InitProps<NodeT> = {
|
|
6
5
|
mstr: MagicString;
|
|
@@ -14,12 +13,11 @@ type InitProps<NodeT> = {
|
|
|
14
13
|
canHaveChildren: (node: NodeT) => boolean;
|
|
15
14
|
getTextContent: (node: NodeT) => string;
|
|
16
15
|
getCommentData: (node: NodeT) => string;
|
|
17
|
-
visitFunc: (node: NodeT, inCompoundText: boolean) =>
|
|
18
|
-
visitExpressionTag: (node: NodeT) =>
|
|
19
|
-
checkHeuristic: (
|
|
20
|
-
wrapNested: (
|
|
16
|
+
visitFunc: (node: NodeT, inCompoundText: boolean) => Message[];
|
|
17
|
+
visitExpressionTag: (node: NodeT) => Message[];
|
|
18
|
+
checkHeuristic: (msgStr: string) => boolean;
|
|
19
|
+
wrapNested: (msgInfo: Message, hasExprs: boolean, nestedRanges: NestedRanges, lastChildEnd: number) => void;
|
|
21
20
|
index: IndexTracker;
|
|
22
|
-
vars: RuntimeVars;
|
|
23
21
|
};
|
|
24
22
|
type VisitProps<NodeT> = {
|
|
25
23
|
children: NodeT[];
|
|
@@ -30,8 +28,7 @@ export interface MixedVisitor<NodeT> extends InitProps<NodeT> {
|
|
|
30
28
|
}
|
|
31
29
|
export declare class MixedVisitor<NodeT> {
|
|
32
30
|
constructor(props: InitProps<NodeT>);
|
|
33
|
-
separatelyVisitChildren: (props: VisitProps<NodeT>) => [boolean, boolean, boolean,
|
|
34
|
-
visit: (props: VisitProps<NodeT>) =>
|
|
31
|
+
separatelyVisitChildren: (props: VisitProps<NodeT>) => [boolean, boolean, boolean, Message[]];
|
|
32
|
+
visit: (props: VisitProps<NodeT>) => Message[];
|
|
35
33
|
}
|
|
36
34
|
export {};
|
|
37
|
-
//# sourceMappingURL=mixed-visitor.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Shared logic between adapters for handling nested / mixed elements within elements / fragments
|
|
2
|
-
import { IndexTracker,
|
|
3
|
-
import { nonWhitespaceText } from "./index.js";
|
|
2
|
+
import { IndexTracker, Message } from "../adapters.js";
|
|
3
|
+
import { nonWhitespaceText, runtimeVars } from "./index.js";
|
|
4
4
|
export class MixedVisitor {
|
|
5
5
|
constructor(props) {
|
|
6
6
|
Object.assign(this, props);
|
|
@@ -8,17 +8,16 @@ export class MixedVisitor {
|
|
|
8
8
|
separatelyVisitChildren = (props) => {
|
|
9
9
|
let hasTextChild = false;
|
|
10
10
|
let hasNonTextChild = false;
|
|
11
|
-
let
|
|
11
|
+
let heurStr = '';
|
|
12
12
|
let hasCommentDirectives = false;
|
|
13
13
|
for (const child of props.children) {
|
|
14
14
|
if (this.isText(child)) {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
if (!txt) {
|
|
15
|
+
const strContent = this.getTextContent(child);
|
|
16
|
+
if (!strContent.trim()) {
|
|
18
17
|
continue;
|
|
19
18
|
}
|
|
20
19
|
hasTextChild = true;
|
|
21
|
-
|
|
20
|
+
heurStr += strContent + ' ';
|
|
22
21
|
}
|
|
23
22
|
else if (this.isComment(child)) {
|
|
24
23
|
if (this.getCommentData(child).trim().startsWith('@wc-')) {
|
|
@@ -27,22 +26,22 @@ export class MixedVisitor {
|
|
|
27
26
|
}
|
|
28
27
|
else {
|
|
29
28
|
hasNonTextChild = true;
|
|
30
|
-
|
|
29
|
+
heurStr += `# `;
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
|
-
|
|
34
|
-
const passHeuristic = this.checkHeuristic(
|
|
32
|
+
heurStr = heurStr.trimEnd();
|
|
33
|
+
const passHeuristic = this.checkHeuristic(heurStr);
|
|
35
34
|
let hasCompoundText = hasTextChild && hasNonTextChild;
|
|
36
35
|
const visitAsOne = passHeuristic && !hasCommentDirectives;
|
|
37
36
|
if (props.inCompoundText || hasCompoundText && visitAsOne) {
|
|
38
37
|
return [false, hasTextChild, hasCompoundText, []];
|
|
39
38
|
}
|
|
40
|
-
const
|
|
39
|
+
const msgs = [];
|
|
41
40
|
// can't be extracted as one; visitSv each separately
|
|
42
41
|
for (const child of props.children) {
|
|
43
|
-
|
|
42
|
+
msgs.push(...this.visitFunc(child, props.inCompoundText));
|
|
44
43
|
}
|
|
45
|
-
return [true, false, false,
|
|
44
|
+
return [true, false, false, msgs];
|
|
46
45
|
};
|
|
47
46
|
visit = (props) => {
|
|
48
47
|
if (props.children.length === 0) {
|
|
@@ -52,13 +51,13 @@ export class MixedVisitor {
|
|
|
52
51
|
if (visitedSeparately) {
|
|
53
52
|
return separateTxts;
|
|
54
53
|
}
|
|
55
|
-
let
|
|
54
|
+
let msgStr = '';
|
|
56
55
|
let iArg = 0;
|
|
57
56
|
let iTag = 0;
|
|
58
57
|
const lastChildEnd = this.getRange(props.children.slice(-1)[0]).end;
|
|
59
58
|
const childrenNestedRanges = [];
|
|
60
59
|
let hasTextDescendants = false;
|
|
61
|
-
const
|
|
60
|
+
const msgs = [];
|
|
62
61
|
for (const child of props.children) {
|
|
63
62
|
if (this.isComment(child)) {
|
|
64
63
|
continue;
|
|
@@ -66,26 +65,26 @@ export class MixedVisitor {
|
|
|
66
65
|
const chRange = this.getRange(child);
|
|
67
66
|
if (this.isText(child)) {
|
|
68
67
|
const [startWh, trimmed, endWh] = nonWhitespaceText(this.getTextContent(child));
|
|
69
|
-
const
|
|
70
|
-
if (startWh && !
|
|
71
|
-
|
|
68
|
+
const msgInfo = new Message(trimmed, 'markup', props.commentDirectives.context);
|
|
69
|
+
if (startWh && !msgStr.endsWith(' ')) {
|
|
70
|
+
msgStr += ' ';
|
|
72
71
|
}
|
|
73
72
|
if (!trimmed) { // whitespace
|
|
74
73
|
continue;
|
|
75
74
|
}
|
|
76
|
-
|
|
75
|
+
msgStr += msgInfo.msgStr;
|
|
77
76
|
if (endWh) {
|
|
78
|
-
|
|
77
|
+
msgStr += ' ';
|
|
79
78
|
}
|
|
80
79
|
this.mstr.remove(chRange.start, chRange.end);
|
|
81
80
|
continue;
|
|
82
81
|
}
|
|
83
82
|
if (this.isExpression(child)) {
|
|
84
|
-
|
|
83
|
+
msgs.push(...this.visitExpressionTag(child));
|
|
85
84
|
if (!hasCompoundText) {
|
|
86
85
|
continue;
|
|
87
86
|
}
|
|
88
|
-
|
|
87
|
+
msgStr += `{${iArg}}`;
|
|
89
88
|
let moveStart = chRange.start;
|
|
90
89
|
if (iArg > 0) {
|
|
91
90
|
this.mstr.update(chRange.start, chRange.start + 1, ', ');
|
|
@@ -101,17 +100,17 @@ export class MixedVisitor {
|
|
|
101
100
|
}
|
|
102
101
|
// elements, components and other things as well
|
|
103
102
|
const canHaveChildren = this.canHaveChildren(child);
|
|
104
|
-
const
|
|
103
|
+
const childMsgs = this.visitFunc(child, canHaveChildren);
|
|
105
104
|
let nestedNeedsCtx = false;
|
|
106
105
|
let chTxt = '';
|
|
107
|
-
for (const
|
|
108
|
-
if (canHaveChildren &&
|
|
109
|
-
chTxt +=
|
|
106
|
+
for (const msgInfo of childMsgs) {
|
|
107
|
+
if (canHaveChildren && msgInfo.scope === 'markup') {
|
|
108
|
+
chTxt += msgInfo.msgStr[0];
|
|
110
109
|
hasTextDescendants = true;
|
|
111
110
|
nestedNeedsCtx = true;
|
|
112
111
|
}
|
|
113
112
|
else { // attributes, blocks
|
|
114
|
-
|
|
113
|
+
msgs.push(msgInfo);
|
|
115
114
|
}
|
|
116
115
|
}
|
|
117
116
|
childrenNestedRanges.push([chRange.start, chRange.end, nestedNeedsCtx]);
|
|
@@ -123,31 +122,31 @@ export class MixedVisitor {
|
|
|
123
122
|
chTxt = `<${iTag}/>`;
|
|
124
123
|
}
|
|
125
124
|
iTag++;
|
|
126
|
-
|
|
125
|
+
msgStr += chTxt;
|
|
127
126
|
}
|
|
128
|
-
|
|
129
|
-
if (!
|
|
130
|
-
return
|
|
127
|
+
msgStr = msgStr.trim();
|
|
128
|
+
if (!msgStr) {
|
|
129
|
+
return msgs;
|
|
131
130
|
}
|
|
132
|
-
const
|
|
131
|
+
const msgInfo = new Message(msgStr, 'markup', props.commentDirectives.context);
|
|
133
132
|
if (hasTextChild || hasTextDescendants) {
|
|
134
|
-
|
|
133
|
+
msgs.push(msgInfo);
|
|
135
134
|
}
|
|
136
135
|
else {
|
|
137
|
-
return
|
|
136
|
+
return msgs;
|
|
138
137
|
}
|
|
139
138
|
if (childrenNestedRanges.length) {
|
|
140
|
-
this.wrapNested(
|
|
139
|
+
this.wrapNested(msgInfo, iArg > 0, childrenNestedRanges, lastChildEnd);
|
|
141
140
|
}
|
|
142
141
|
else if (hasTextChild) {
|
|
143
142
|
// no need for component use
|
|
144
143
|
let begin = '{';
|
|
145
144
|
let end = ')}';
|
|
146
145
|
if (props.inCompoundText) {
|
|
147
|
-
begin += `${
|
|
146
|
+
begin += `${runtimeVars.rtTransCtx}(${runtimeVars.nestCtx}`;
|
|
148
147
|
}
|
|
149
148
|
else {
|
|
150
|
-
begin += `${
|
|
149
|
+
begin += `${runtimeVars.rtTrans}(${this.index.get(msgInfo.toKey())}`;
|
|
151
150
|
}
|
|
152
151
|
if (iArg > 0) {
|
|
153
152
|
begin += ', [';
|
|
@@ -156,7 +155,7 @@ export class MixedVisitor {
|
|
|
156
155
|
this.mstr.appendLeft(lastChildEnd, begin);
|
|
157
156
|
this.mstr.appendRight(lastChildEnd, end);
|
|
158
157
|
}
|
|
159
|
-
return
|
|
158
|
+
return msgs;
|
|
160
159
|
};
|
|
161
160
|
}
|
|
162
161
|
//# sourceMappingURL=mixed-visitor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixed-visitor.js","sourceRoot":"","sources":["../../src/adapter-utils/mixed-visitor.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAGjG,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"mixed-visitor.js","sourceRoot":"","sources":["../../src/adapter-utils/mixed-visitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { AdapterArgs, Adapter } from "../adapters.js";
|
|
2
2
|
import { Transformer } from "./transformer.js";
|
|
3
3
|
export { Transformer };
|
|
4
|
-
export { parseScript, scriptParseOptions, scriptParseOptionsWithComments } from './transformer.js';
|
|
4
|
+
export { parseScript, scriptParseOptions, scriptParseOptionsWithComments, initRuntimeStmt } from './transformer.js';
|
|
5
5
|
export declare const adapter: (args?: AdapterArgs) => Adapter;
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// $$ cd .. && npm run test
|
|
2
2
|
import { defaultGenerateLoadID, defaultHeuristicFuncOnly } from '../adapters.js';
|
|
3
3
|
import { deepMergeObjects } from "../config.js";
|
|
4
|
-
import { Transformer } from "./transformer.js";
|
|
4
|
+
import { initRuntimeStmt, Transformer } from "./transformer.js";
|
|
5
|
+
import { getDependencies } from '../adapter-utils/index.js';
|
|
5
6
|
export { Transformer };
|
|
6
|
-
export { parseScript, scriptParseOptions, scriptParseOptionsWithComments } from './transformer.js';
|
|
7
|
+
export { parseScript, scriptParseOptions, scriptParseOptionsWithComments, initRuntimeStmt } from './transformer.js';
|
|
7
8
|
const defaultArgs = {
|
|
8
9
|
files: { include: 'src/**/*.{js,ts}', ignore: '**/*.d.ts' },
|
|
9
10
|
catalog: './src/locales/{locale}',
|
|
@@ -13,21 +14,19 @@ const defaultArgs = {
|
|
|
13
14
|
bundleLoad: false,
|
|
14
15
|
generateLoadID: defaultGenerateLoadID,
|
|
15
16
|
writeFiles: {},
|
|
16
|
-
importName: '_w_load_',
|
|
17
|
-
runtime: {
|
|
18
|
-
initInScope: ({ funcName }) => funcName != null,
|
|
19
|
-
wrapInit: init => init,
|
|
20
|
-
wrapExpr: expr => expr,
|
|
21
|
-
}
|
|
22
17
|
};
|
|
23
18
|
export const adapter = (args = defaultArgs) => {
|
|
24
|
-
const { heuristic, pluralsFunc,
|
|
19
|
+
const { heuristic, pluralsFunc, ...rest } = deepMergeObjects(args, defaultArgs);
|
|
25
20
|
return {
|
|
26
|
-
transform: ({ content, filename, index, header }) => new Transformer(content, filename, index, heuristic, pluralsFunc,
|
|
21
|
+
transform: ({ content, filename, index, header }) => new Transformer(content, filename, index, heuristic, pluralsFunc, initRuntimeStmt(header.expr)).transform(header.head),
|
|
27
22
|
loaderExts: ['.js', '.ts'],
|
|
28
|
-
defaultLoaders: async (
|
|
23
|
+
defaultLoaders: async () => {
|
|
24
|
+
if (rest.bundleLoad) {
|
|
25
|
+
return ['bundle'];
|
|
26
|
+
}
|
|
27
|
+
const deps = await getDependencies();
|
|
29
28
|
const available = ['server'];
|
|
30
|
-
if (
|
|
29
|
+
if (deps.has('vite')) {
|
|
31
30
|
available.unshift('vite');
|
|
32
31
|
}
|
|
33
32
|
return available;
|
|
@@ -36,6 +35,7 @@ export const adapter = (args = defaultArgs) => {
|
|
|
36
35
|
return new URL(`../../src/adapter-vanilla/loaders/${loader}.js`, import.meta.url).pathname;
|
|
37
36
|
},
|
|
38
37
|
...rest,
|
|
38
|
+
docsUrl: 'https://wuchale.dev/adapters/vanilla'
|
|
39
39
|
};
|
|
40
40
|
};
|
|
41
41
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapter-vanilla/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapter-vanilla/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAM/C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,WAAW,EAAE,CAAA;AACtB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEnH,MAAM,WAAW,GAAgB;IAC7B,KAAK,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE;IAC3D,OAAO,EAAE,wBAAwB;IACjC,WAAW,EAAE,QAAQ;IACrB,SAAS,EAAE,wBAAwB;IACnC,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,qBAAqB;IACrC,UAAU,EAAE,EAAE;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAoB,WAAW,EAAW,EAAE;IAChE,MAAM,EACF,SAAS,EACT,WAAW,EACX,GAAG,IAAI,EACV,GAAG,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACvC,OAAO;QACH,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,CAChE,OAAO,EACP,QAAQ,EACR,KAAK,EACL,SAAS,EACT,WAAW,EACX,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAC/B,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QACxB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;QAC1B,cAAc,EAAE,KAAK,IAAI,EAAE;YACvB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,OAAO,CAAC,QAAQ,CAAC,CAAA;YACrB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,eAAe,EAAE,CAAA;YACpC,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC7B,CAAC;YACD,OAAO,SAAS,CAAA;QACpB,CAAC;QACD,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE;YAClC,OAAO,IAAI,GAAG,CAAC,qCAAqC,MAAM,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA;QAC9F,CAAC;QACD,GAAG,IAA2B;QAC9B,OAAO,EAAE,sCAAsC;KAClD,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import MagicString from "magic-string";
|
|
2
2
|
import type Estree from 'estree';
|
|
3
3
|
import type { Program, Options as ParserOptions } from "acorn";
|
|
4
|
-
import {
|
|
5
|
-
import type { CommentDirectives, HeuristicDetailsBase, HeuristicFunc, IndexTracker, ScriptDeclType, TransformOutput
|
|
6
|
-
import { type RuntimeVars } from "../adapter-utils/index.js";
|
|
4
|
+
import { Message } from '../adapters.js';
|
|
5
|
+
import type { CommentDirectives, HeuristicDetailsBase, HeuristicFunc, IndexTracker, ScriptDeclType, TransformOutput } from "../adapters.js";
|
|
7
6
|
export declare const scriptParseOptions: ParserOptions;
|
|
8
7
|
export declare function scriptParseOptionsWithComments(): [ParserOptions, Estree.Comment[][]];
|
|
9
8
|
export declare function parseScript(content: string): [Program, Estree.Comment[][]];
|
|
9
|
+
export declare function initRuntimeStmt(catalogExpr: string): string;
|
|
10
10
|
export declare class Transformer {
|
|
11
11
|
index: IndexTracker;
|
|
12
12
|
heuristic: HeuristicFunc;
|
|
@@ -15,55 +15,52 @@ export declare class Transformer {
|
|
|
15
15
|
filename: string;
|
|
16
16
|
mstr: MagicString;
|
|
17
17
|
pluralFunc: string;
|
|
18
|
-
|
|
19
|
-
runtimeOpts: RuntimeOptions;
|
|
20
|
-
initRuntimeExpr: string;
|
|
18
|
+
initRuntime: string | null;
|
|
21
19
|
commentDirectives: CommentDirectives;
|
|
22
20
|
insideProgram: boolean;
|
|
23
21
|
declaring: ScriptDeclType;
|
|
24
22
|
currentFuncDef: string | null;
|
|
25
23
|
currentCall: string;
|
|
26
24
|
currentTopLevelCall: string;
|
|
27
|
-
constructor(content: string, filename: string, index: IndexTracker, heuristic: HeuristicFunc, pluralsFunc: string,
|
|
28
|
-
checkHeuristic: (
|
|
25
|
+
constructor(content: string, filename: string, index: IndexTracker, heuristic: HeuristicFunc, pluralsFunc: string, initRuntime: string | null);
|
|
26
|
+
checkHeuristic: (msgStr: string, detailsBase: HeuristicDetailsBase) => [boolean, Message];
|
|
29
27
|
visitLiteral: (node: Estree.Literal & {
|
|
30
28
|
start: number;
|
|
31
29
|
end: number;
|
|
32
|
-
}) =>
|
|
33
|
-
visitArrayExpression: (node: Estree.ArrayExpression) =>
|
|
34
|
-
visitObjectExpression: (node: Estree.ObjectExpression) =>
|
|
35
|
-
visitProperty: (node: Estree.Property) =>
|
|
36
|
-
visitSpreadElement: (node: Estree.SpreadElement) =>
|
|
37
|
-
visitMemberExpression: (node: Estree.MemberExpression) =>
|
|
38
|
-
visitNewExpression: (node: Estree.NewExpression) =>
|
|
39
|
-
defaultVisitCallExpression: (node: Estree.CallExpression) =>
|
|
40
|
-
visitCallExpression: (node: Estree.CallExpression) =>
|
|
41
|
-
visitBinaryExpression: (node: Estree.BinaryExpression) =>
|
|
42
|
-
visitUnaryExpression: (node: Estree.UnaryExpression) =>
|
|
43
|
-
visitLogicalExpression: (node: Estree.LogicalExpression) =>
|
|
44
|
-
visitAwaitExpression: (node: Estree.AwaitExpression) =>
|
|
45
|
-
visitAssignmentExpression: (node: Estree.BinaryExpression) =>
|
|
46
|
-
visitExpressionStatement: (node: Estree.ExpressionStatement) =>
|
|
47
|
-
visitForOfStatement: (node: Estree.ForOfStatement) =>
|
|
48
|
-
visitForInStatement: (node: Estree.ForInStatement) =>
|
|
49
|
-
visitForStatement: (node: Estree.ForStatement) =>
|
|
30
|
+
}) => Message[];
|
|
31
|
+
visitArrayExpression: (node: Estree.ArrayExpression) => Message[];
|
|
32
|
+
visitObjectExpression: (node: Estree.ObjectExpression) => Message[];
|
|
33
|
+
visitProperty: (node: Estree.Property) => Message[];
|
|
34
|
+
visitSpreadElement: (node: Estree.SpreadElement) => Message[];
|
|
35
|
+
visitMemberExpression: (node: Estree.MemberExpression) => Message[];
|
|
36
|
+
visitNewExpression: (node: Estree.NewExpression) => Message[];
|
|
37
|
+
defaultVisitCallExpression: (node: Estree.CallExpression) => Message[];
|
|
38
|
+
visitCallExpression: (node: Estree.CallExpression) => Message[];
|
|
39
|
+
visitBinaryExpression: (node: Estree.BinaryExpression) => Message[];
|
|
40
|
+
visitUnaryExpression: (node: Estree.UnaryExpression) => Message[];
|
|
41
|
+
visitLogicalExpression: (node: Estree.LogicalExpression) => Message[];
|
|
42
|
+
visitAwaitExpression: (node: Estree.AwaitExpression) => Message[];
|
|
43
|
+
visitAssignmentExpression: (node: Estree.BinaryExpression) => Message[];
|
|
44
|
+
visitExpressionStatement: (node: Estree.ExpressionStatement) => Message[];
|
|
45
|
+
visitForOfStatement: (node: Estree.ForOfStatement) => Message[];
|
|
46
|
+
visitForInStatement: (node: Estree.ForInStatement) => Message[];
|
|
47
|
+
visitForStatement: (node: Estree.ForStatement) => Message[];
|
|
50
48
|
getMemberChainName: (node: Estree.MemberExpression) => string;
|
|
51
49
|
getCalleeName: (callee: Estree.Expression | Estree.Super) => string;
|
|
52
|
-
visitVariableDeclaration: (node: Estree.VariableDeclaration) =>
|
|
53
|
-
visitExportNamedDeclaration: (node: Estree.ExportNamedDeclaration) =>
|
|
54
|
-
visitExportDefaultDeclaration: (node: Estree.ExportNamedDeclaration) =>
|
|
55
|
-
visitFunctionBody: (node: Estree.BlockStatement | Estree.Expression, name: string | null) =>
|
|
56
|
-
visitFunctionDeclaration: (node: Estree.FunctionDeclaration) =>
|
|
57
|
-
visitArrowFunctionExpression: (node: Estree.ArrowFunctionExpression) =>
|
|
58
|
-
visitFunctionExpression: (node: Estree.FunctionExpression) =>
|
|
59
|
-
visitBlockStatement: (node: Estree.BlockStatement) =>
|
|
60
|
-
visitReturnStatement: (node: Estree.ReturnStatement) =>
|
|
61
|
-
visitIfStatement: (node: Estree.IfStatement) =>
|
|
62
|
-
visitTemplateLiteral: (node: Estree.TemplateLiteral) =>
|
|
63
|
-
visitProgram: (node: Estree.Program) =>
|
|
50
|
+
visitVariableDeclaration: (node: Estree.VariableDeclaration) => Message[];
|
|
51
|
+
visitExportNamedDeclaration: (node: Estree.ExportNamedDeclaration) => Message[];
|
|
52
|
+
visitExportDefaultDeclaration: (node: Estree.ExportNamedDeclaration) => Message[];
|
|
53
|
+
visitFunctionBody: (node: Estree.BlockStatement | Estree.Expression, name: string | null) => Message[];
|
|
54
|
+
visitFunctionDeclaration: (node: Estree.FunctionDeclaration) => Message[];
|
|
55
|
+
visitArrowFunctionExpression: (node: Estree.ArrowFunctionExpression) => Message[];
|
|
56
|
+
visitFunctionExpression: (node: Estree.FunctionExpression) => Message[];
|
|
57
|
+
visitBlockStatement: (node: Estree.BlockStatement) => Message[];
|
|
58
|
+
visitReturnStatement: (node: Estree.ReturnStatement) => Message[];
|
|
59
|
+
visitIfStatement: (node: Estree.IfStatement) => Message[];
|
|
60
|
+
visitTemplateLiteral: (node: Estree.TemplateLiteral) => Message[];
|
|
61
|
+
visitProgram: (node: Estree.Program) => Message[];
|
|
64
62
|
processCommentDirectives: (data: string) => CommentDirectives;
|
|
65
|
-
visit: (node: Estree.BaseNode) =>
|
|
66
|
-
finalize: (
|
|
63
|
+
visit: (node: Estree.BaseNode) => Message[];
|
|
64
|
+
finalize: (msgs: Message[], hmrHeaderIndex: number) => TransformOutput;
|
|
67
65
|
transform: (headerHead: string) => TransformOutput;
|
|
68
66
|
}
|
|
69
|
-
//# sourceMappingURL=transformer.d.ts.map
|