@localey/svelte 0.1.15 → 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.
@@ -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;CAqBjB"}
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
- // For Svelte, a simple string replacement is safer than full AST walk for MVP,
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
- newContent = newContent.replace(regex, `{t("${replacement.key}")}`);
88
- keys[replacement.key] = replacement.oldValue;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@localey/svelte",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "dependencies": {
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
- newContent = newContent.replace(regex, `{t("${replacement.key}")}`);
104
- keys[replacement.key] = replacement.oldValue;
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 };