Skip to content

Commit d6fbda8

Browse files
committed
refactor: move preserveStrings & restoreStrings
1 parent f8bcbed commit d6fbda8

File tree

2 files changed

+24
-23
lines changed

2 files changed

+24
-23
lines changed

src/core/injectSchemas.ts

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,4 @@
1-
function generateRandomString(length: number) {
2-
return [...Array(length)].map(() => Math.random().toString(36)[2]).join("");
3-
}
4-
5-
function preserveStrings(code: string) {
6-
let replacements = {} as Record<string, string>;
7-
8-
const output = code.replace(/(['"`])([^'`"]+)\1/g, replacedString => {
9-
const replacementId = generateRandomString(32);
10-
replacements = {
11-
...replacements,
12-
[replacementId]: replacedString,
13-
};
14-
return `<@~${replacementId}~@>`;
15-
});
16-
return { output, replacements };
17-
}
18-
19-
function restoreStrings(code: string, replacements: Record<string, string>) {
20-
return code.replace(/<@~(.*?)~@>/g, (_, replacementId) => {
21-
return replacements[replacementId];
22-
});
23-
}
1+
import { preserveStrings, restoreStrings } from "~/utils/string-preservation";
242

253
export default function injectSchemas(code: string, refName: string) {
264
const { output: preservedCode, replacements } = preserveStrings(code);

src/utils/string-preservation.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
export function preserveStrings(code: string) {
2+
let replacements = {} as Record<string, string>;
3+
4+
const output = code.replace(/(['"`])([^'`"]+)\1/g, replacedString => {
5+
const replacementId = generateRandomString(32);
6+
replacements = {
7+
...replacements,
8+
[replacementId]: replacedString,
9+
};
10+
return `<@~${replacementId}~@>`;
11+
});
12+
return { output, replacements };
13+
}
14+
15+
export function restoreStrings(code: string, replacements: Record<string, string>) {
16+
return code.replace(/<@~(.*?)~@>/g, (_, replacementId) => {
17+
return replacements[replacementId];
18+
});
19+
}
20+
21+
function generateRandomString(length: number) {
22+
return [...Array(length)].map(() => Math.random().toString(36)[2]).join("");
23+
}

0 commit comments

Comments
 (0)