Skip to content

Commit 252ebe6

Browse files
committed
Use regex 'positive lookahead' in every join
1 parent 5115745 commit 252ebe6

File tree

1 file changed

+6
-21
lines changed

1 file changed

+6
-21
lines changed

src/index.ts

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -77,29 +77,14 @@ export const getFields = (shape: Record<string, any>) => {
7777
return undefined;
7878
})
7979
.replace(/[": \n]/g, "")
80-
// .replace(/\{/g, "(")
81-
// .replace(/\}/g, ")")
80+
.replace(/\{/g, "(")
81+
.replace(/\}/g, ")")
8282
.slice(1, -1)}`;
8383

84-
if (Object.keys(joins).length > 0) {
85-
86-
let joinsModifiedKeys: Record<string, string> = {}
87-
88-
// Added `{` at the end of every key
89-
Object.entries(joins)
90-
.forEach(([k, v]) => {
91-
joinsModifiedKeys[`${k}{`] = v;
92-
});
93-
84+
if (Object.keys(joins).length > 0)
9485
return fields.replace(
95-
new RegExp(Object.keys(joinsModifiedKeys).join("|"), "g"),
96-
(m) => {
97-
let trimKey = m.slice(0, -1); // removed the last `{`
98-
return `${trimKey}:${joinsModifiedKeys[m]}(`; // appended the `(`
99-
}
100-
)
101-
.replace(/\{/g, '(')
102-
.replace(/\}/g, ')');
103-
}
86+
new RegExp(Object.keys(joins).map((j) => `${j}(?=\\()`).join("|"), "g"),
87+
(m) => `${m}:${joins[m]}`
88+
);
10489
return fields;
10590
};

0 commit comments

Comments
 (0)