File tree Expand file tree Collapse file tree 2 files changed +24
-23
lines changed
Expand file tree Collapse file tree 2 files changed +24
-23
lines changed Original file line number Diff line number Diff line change 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
253export default function injectSchemas ( code : string , refName : string ) {
264 const { output : preservedCode , replacements } = preserveStrings ( code ) ;
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments