Skip to content

Commit 54e96f3

Browse files
committed
Refactor how we track paid/non-paid step types
1 parent f17ef77 commit 54e96f3

File tree

1 file changed

+19
-24
lines changed

1 file changed

+19
-24
lines changed

src/model/rules/rules.ts

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,23 @@ import {
1212
} from '../../services/service-versions';
1313

1414
import {
15-
StaticResponseStep,
16-
ForwardToHostStep,
17-
TimeoutStep,
18-
CloseConnectionStep,
19-
ResetConnectionStep,
20-
FromFileResponseStep,
21-
TransformingStep,
2215
HttpMatcherLookup,
2316
HttpStepLookup,
2417
HttpRule,
25-
HttpInitialMatcherClasses
18+
HttpInitialMatcherClasses,
19+
RequestBreakpointStep,
20+
ResponseBreakpointStep,
21+
RequestAndResponseBreakpointStep,
22+
PassThroughStep
2623
} from './definitions/http-rule-definitions';
2724

2825
import {
2926
WebSocketMatcherLookup,
3027
WebSocketStepLookup,
3128
WebSocketRule,
3229
WebSocketInitialMatcherClasses,
33-
EchoWebSocketStep,
34-
RejectWebSocketStep,
35-
ListenWebSocketStep
30+
WebSocketForwardToHostStep,
31+
WebSocketPassThroughStep
3632
} from './definitions/websocket-rule-definitions';
3733

3834
import {
@@ -385,33 +381,32 @@ export const isFinalStep = (step: Step) => {
385381
return StepLookup[step.type].isFinal === true;
386382
}
387383

388-
const PaidStepClasses: StepClass[] = [
389-
StaticResponseStep,
390-
FromFileResponseStep,
391-
ForwardToHostStep,
392-
TransformingStep,
393-
TimeoutStep,
394-
CloseConnectionStep,
395-
ResetConnectionStep,
396-
EchoWebSocketStep,
397-
RejectWebSocketStep,
398-
ListenWebSocketStep
384+
const NonPaidStepClasses: StepClass[] = [
385+
// HTTP:
386+
RequestBreakpointStep,
387+
ResponseBreakpointStep,
388+
RequestAndResponseBreakpointStep,
389+
PassThroughStep,
390+
// WS:
391+
WebSocketPassThroughStep,
392+
WebSocketForwardToHostStep,
393+
// All non-HTTP/WS are free
399394
];
400395

401396
export const isPaidStep = (
402397
ruleType: RuleType,
403398
step: Step
404399
) => {
405400
if (ruleType !== 'http' && ruleType !== 'websocket') return false;
406-
return _.some(PaidStepClasses, (cls) => step instanceof cls);
401+
return !_.some(NonPaidStepClasses, (cls) => step instanceof cls);
407402
}
408403

409404
export const isPaidStepClass = (
410405
ruleType: RuleType,
411406
stepClass: StepClass
412407
) => {
413408
if (ruleType !== 'http' && ruleType !== 'websocket') return false;
414-
return PaidStepClasses.includes(stepClass);
409+
return !NonPaidStepClasses.includes(stepClass);
415410
}
416411

417412
/// --- Rules ---

0 commit comments

Comments
 (0)