Skip to content

Commit 7ff3b72

Browse files
committed
Fix serialization of URL transform match/replace regexes
1 parent 4de68e2 commit 7ff3b72

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

src/model/rules/definitions/http-rule-definitions.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -218,21 +218,31 @@ export class TransformingStep extends httpSteps.PassThroughStep {
218218

219219
}
220220

221+
const MatchReplaceSerializer = serializr.list(
222+
serializr.custom(
223+
([key, value]: [RegExp, string]) =>
224+
[{ source: key.source, flags: key.flags }, value],
225+
([key, value]: [{ source: string, flags: string }, string]) =>
226+
[new RegExp(key.source, key.flags), value]
227+
)
228+
);
229+
221230
serializr.createModelSchema(TransformingStep, {
222231
uiType: serializeAsTag(() => 'req-res-transformer'),
223232
transformRequest: serializr.object(
224233
serializr.createSimpleSchema({
234+
matchReplaceHost: serializr.object(
235+
serializr.createSimpleSchema({
236+
replacements: MatchReplaceSerializer,
237+
'*': Object.assign(serializr.raw(), { pattern: { test: () => true } })
238+
})
239+
),
240+
matchReplacePath: MatchReplaceSerializer,
241+
matchReplaceQuery: MatchReplaceSerializer,
225242
updateHeaders: serializeWithUndefineds,
226243
updateJsonBody: serializeWithUndefineds,
227244
replaceBody: serializeBuffer,
228-
matchReplaceBody: serializr.list(
229-
serializr.custom(
230-
([key, value]: [RegExp, string]) =>
231-
[{ source: key.source, flags: key.flags }, value],
232-
([key, value]: [{ source: string, flags: string }, string]) =>
233-
[new RegExp(key.source, key.flags), value]
234-
)
235-
),
245+
matchReplaceBody: MatchReplaceSerializer,
236246
'*': Object.assign(serializr.raw(), { pattern: { test: () => true } })
237247
})
238248
),

0 commit comments

Comments
 (0)