@localey/svelte 0.1.14 → 0.1.17
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.map +1 -1
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +18 -7
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5E,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,IAAI,SAAY;IAChB,UAAU,WAAe;IAEzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IA4ErD,OAAO,CACL,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,GACvE,aAAa;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5E,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,IAAI,SAAY;IAChB,UAAU,WAAe;IAEzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IA4ErD,OAAO,CACL,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,GACvE,aAAa;CAgCjB"}
|
package/dist/index.js
CHANGED
|
@@ -76,16 +76,28 @@ export class SvelteAdapter extends FrameworkAdapter {
|
|
|
76
76
|
extract(content, filePath, replacements) {
|
|
77
77
|
let newContent = content;
|
|
78
78
|
const keys = {};
|
|
79
|
-
|
|
80
|
-
// as long as we use the oldValue matching precisely.
|
|
81
|
-
// In a real prod tool, we'd use MagicString to handle offsets.
|
|
79
|
+
let needsHook = false;
|
|
82
80
|
for (const replacement of replacements) {
|
|
83
|
-
// Basic heuristic: replace the raw string if it's found.
|
|
84
|
-
// We wrap the replacement in {t("key")} for templates.
|
|
85
81
|
const escapedOldValue = replacement.oldValue.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
86
82
|
const regex = new RegExp(`(?![^{}]*})(${escapedOldValue})`, "g"); // Avoid replacing inside existing { }
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
if (regex.test(newContent)) {
|
|
84
|
+
newContent = newContent.replace(regex, `{t("${replacement.key}")}`);
|
|
85
|
+
keys[replacement.key] = replacement.oldValue;
|
|
86
|
+
needsHook = true;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (needsHook && !newContent.includes("useLocaley")) {
|
|
90
|
+
const hookInjection = `\n import { useLocaley } from 'PLACEHOLDER_LOCALEY_HOOK';\n const { t } = useLocaley();\n`;
|
|
91
|
+
if (newContent.includes("<script>")) {
|
|
92
|
+
newContent = newContent.replace("<script>", `<script>${hookInjection}`);
|
|
93
|
+
}
|
|
94
|
+
else if (newContent.includes("<script")) {
|
|
95
|
+
// Handle script with attributes
|
|
96
|
+
newContent = newContent.replace(/>/, `>${hookInjection}`);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
newContent = `<script>${hookInjection}</script>\n\n` + newContent;
|
|
100
|
+
}
|
|
89
101
|
}
|
|
90
102
|
return { code: newContent, keys };
|
|
91
103
|
}
|
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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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -88,20 +88,31 @@ export class SvelteAdapter extends FrameworkAdapter {
|
|
|
88
88
|
): ExtractResult {
|
|
89
89
|
let newContent = content;
|
|
90
90
|
const keys: Record<string, string> = {};
|
|
91
|
+
let needsHook = false;
|
|
91
92
|
|
|
92
|
-
// For Svelte, a simple string replacement is safer than full AST walk for MVP,
|
|
93
|
-
// as long as we use the oldValue matching precisely.
|
|
94
|
-
// In a real prod tool, we'd use MagicString to handle offsets.
|
|
95
93
|
for (const replacement of replacements) {
|
|
96
|
-
// Basic heuristic: replace the raw string if it's found.
|
|
97
|
-
// We wrap the replacement in {t("key")} for templates.
|
|
98
94
|
const escapedOldValue = replacement.oldValue.replace(
|
|
99
95
|
/[.*+?^${}()|[\]\\]/g,
|
|
100
96
|
"\\$&",
|
|
101
97
|
);
|
|
102
98
|
const regex = new RegExp(`(?![^{}]*})(${escapedOldValue})`, "g"); // Avoid replacing inside existing { }
|
|
103
|
-
|
|
104
|
-
|
|
99
|
+
if (regex.test(newContent)) {
|
|
100
|
+
newContent = newContent.replace(regex, `{t("${replacement.key}")}`);
|
|
101
|
+
keys[replacement.key] = replacement.oldValue;
|
|
102
|
+
needsHook = true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (needsHook && !newContent.includes("useLocaley")) {
|
|
107
|
+
const hookInjection = `\n import { useLocaley } from 'PLACEHOLDER_LOCALEY_HOOK';\n const { t } = useLocaley();\n`;
|
|
108
|
+
if (newContent.includes("<script>")) {
|
|
109
|
+
newContent = newContent.replace("<script>", `<script>${hookInjection}`);
|
|
110
|
+
} else if (newContent.includes("<script")) {
|
|
111
|
+
// Handle script with attributes
|
|
112
|
+
newContent = newContent.replace(/>/, `>${hookInjection}`);
|
|
113
|
+
} else {
|
|
114
|
+
newContent = `<script>${hookInjection}</script>\n\n` + newContent;
|
|
115
|
+
}
|
|
105
116
|
}
|
|
106
117
|
|
|
107
118
|
return { code: newContent, keys };
|