Skip to content

Commit 2c037c5

Browse files
committed
Clarify EditableHeaders API a little
1 parent 6cfd899 commit 2c037c5

File tree

5 files changed

+30
-29
lines changed

5 files changed

+30
-29
lines changed

src/components/common/editable-headers.tsx

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const stripPseudoHeadersAndLowercase = (headers: PairsArray): PairsArray =>
4646
}));
4747

4848
interface EditableRawHeadersProps {
49-
input: RawHeaders;
49+
headers: RawHeaders;
5050
onChange: (headers: RawHeaders) => void;
5151

5252
// It's unclear whether you're strictly allowed completely empty header values, but it's definitely
@@ -63,7 +63,7 @@ interface EditableRawHeadersProps {
6363
export const EditableRawHeaders = observer((
6464
props: EditableRawHeadersProps
6565
) => {
66-
const { input: headers, onChange, allowEmptyValues, preserveKeyCase } = props;
66+
const { headers, onChange, allowEmptyValues, preserveKeyCase } = props;
6767

6868
return <EditablePairs<RawHeaders>
6969
pairs={rawHeadersAsEditablePairs(headers)}
@@ -86,10 +86,10 @@ export const EditableRawHeaders = observer((
8686
});
8787

8888
interface EditableHeadersProps<T> {
89-
input: T,
89+
headers: T;
9090

91-
convertInput: (input: T) => RawHeaders,
92-
convertResult: (headers: RawHeaders) => T,
91+
convertToRawHeaders: (input: T) => RawHeaders;
92+
convertFromRawHeaders: (headers: RawHeaders) => T;
9393

9494
onChange: (headers: T) => void;
9595
onInvalidState?: () => void;
@@ -108,18 +108,18 @@ interface EditableHeadersProps<T> {
108108
export class EditableHeaders<T> extends React.Component<EditableHeadersProps<T>> {
109109

110110
@observable
111-
private rawHeaders: RawHeaders = this.props.convertInput(this.props.input);
111+
private rawHeaders: RawHeaders = this.props.convertToRawHeaders(this.props.headers);
112112

113-
private output: T = this.props.input;
113+
private output: T = this.props.headers;
114114

115115
componentDidMount() {
116116
// Watch the input, but only update our state if its materially different
117117
// to the last output we returned.
118118
disposeOnUnmount(this, reaction(
119-
() => this.props.input,
119+
() => this.props.headers,
120120
(input) => {
121121
if (!_.isEqual(input, this.output)) {
122-
const newInput = this.props.convertInput(input);
122+
const newInput = this.props.convertToRawHeaders(input);
123123
runInAction(() => {
124124
this.rawHeaders = newInput;
125125
});
@@ -132,16 +132,16 @@ export class EditableHeaders<T> extends React.Component<EditableHeadersProps<T>>
132132
onChangeRawHeaders(rawHeaders: RawHeaders) {
133133
this.rawHeaders = rawHeaders;
134134

135-
const { allowEmptyValues, convertResult, onChange, onInvalidState } = this.props;
135+
const { allowEmptyValues, convertFromRawHeaders, onChange, onInvalidState } = this.props;
136136

137137
if (allowEmptyValues) {
138-
this.output = convertResult(rawHeaders);
138+
this.output = convertFromRawHeaders(rawHeaders);
139139
onChange(this.output);
140140
} else {
141141
if (rawHeaders.some((([_, value]) => !value))) return onInvalidState?.();
142142
if (rawHeaders.some(([key]) => !key)) return onInvalidState?.();
143143

144-
this.output = convertResult(rawHeaders);
144+
this.output = convertFromRawHeaders(rawHeaders);
145145
onChange(this.output);
146146
}
147147
}
@@ -151,7 +151,7 @@ export class EditableHeaders<T> extends React.Component<EditableHeadersProps<T>>
151151
const { rawHeaders, onChangeRawHeaders } = this;
152152

153153
return <EditableRawHeaders
154-
input={rawHeaders}
154+
headers={rawHeaders}
155155
onChange={onChangeRawHeaders}
156156
allowEmptyValues={allowEmptyValues}
157157
/>;

src/components/mock/handler-config.tsx

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -363,19 +363,20 @@ class StaticResponseHandlerConfig extends HandlerConfig<StaticResponseHandler |
363363
newValue: newContentType
364364
}) => {
365365
const contentTypeHeader = getHeaderValue(this.rawHeaders, 'content-type');
366+
const expectedContentType = getDefaultMimeType(newContentType);
366367

367368
if (!contentTypeHeader) {
368369
// If you pick a body content type with no header set, we add one
369370
runInAction(() => {
370-
this.rawHeaders.push(['content-type', getDefaultMimeType(newContentType)]);
371+
this.rawHeaders.push(['content-type', expectedContentType]);
371372
});
372373
} else {
373374
const headerContentType = getEditableContentType(contentTypeHeader);
374375

375376
// If the body type changes, and the old header matched the old type, update the header
376377
if (previousContentType === headerContentType) {
377378
runInAction(() => {
378-
setHeaderValue(this.rawHeaders, 'content-type', getDefaultMimeType(newContentType));
379+
setHeaderValue(this.rawHeaders, 'content-type', expectedContentType);
379380
});
380381
}
381382
// If there is a header, but it didn't match the body, leave it as-is
@@ -427,7 +428,7 @@ class StaticResponseHandlerConfig extends HandlerConfig<StaticResponseHandler |
427428

428429
<SectionLabel>Headers</SectionLabel>
429430
<EditableRawHeaders
430-
input={rawHeaders}
431+
headers={rawHeaders}
431432
onChange={this.onHeadersChanged}
432433
/>
433434

@@ -577,9 +578,9 @@ class FromFileResponseHandlerConfig extends HandlerConfig<FromFileResponseHandle
577578

578579
<SectionLabel>Headers</SectionLabel>
579580
<EditableHeaders
580-
input={headers}
581-
convertInput={headersToRawHeaders}
582-
convertResult={rawHeadersToHeaders}
581+
headers={headers}
582+
convertToRawHeaders={headersToRawHeaders}
583+
convertFromRawHeaders={rawHeadersToHeaders}
583584
onChange={this.onHeadersChanged}
584585
/>
585586

@@ -990,7 +991,7 @@ class HeadersTransformConfig<T extends RequestTransform | ResponseTransform> ext
990991
const { type } = this.props;
991992
const {
992993
selected,
993-
convertHeaderResult,
994+
convertResultFromRawHeaders,
994995
onTransformTypeChange,
995996
setHeadersValue
996997
} = this;
@@ -1007,9 +1008,9 @@ class HeadersTransformConfig<T extends RequestTransform | ResponseTransform> ext
10071008
{
10081009
selected !== 'none' && <TransformDetails>
10091010
<EditableHeaders
1010-
input={this.headers}
1011-
convertInput={headersToRawHeaders}
1012-
convertResult={convertHeaderResult}
1011+
headers={this.headers}
1012+
convertToRawHeaders={headersToRawHeaders}
1013+
convertFromRawHeaders={convertResultFromRawHeaders}
10131014
onChange={setHeadersValue}
10141015
allowEmptyValues={selected === 'updateHeaders'}
10151016
/>
@@ -1018,7 +1019,7 @@ class HeadersTransformConfig<T extends RequestTransform | ResponseTransform> ext
10181019
</TransformConfig>;
10191020
}
10201021

1021-
convertHeaderResult = (headers: RawHeaders): Headers => {
1022+
convertResultFromRawHeaders = (headers: RawHeaders): Headers => {
10221023
if (this.selected === 'updateHeaders') {
10231024
return rawHeadersToHeaders(
10241025
headers.map(([key, value]) =>

src/components/mock/matcher-config.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -798,9 +798,9 @@ class HeaderMatcherConfig extends MatcherConfig<matchers.HeaderMatcher> {
798798
</ConfigLabel>
799799
}
800800
<EditableHeaders<FlatHeaders>
801-
input={headers}
802-
convertInput={this.convertInput}
803-
convertResult={this.convertResult}
801+
headers={headers}
802+
convertToRawHeaders={this.convertInput}
803+
convertFromRawHeaders={this.convertResult}
804804
onChange={this.onChange}
805805
onInvalidState={this.props.onInvalidState}
806806
/>

src/components/view/http/http-breakpoint-request-card.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ export class HttpBreakpointRequestCard extends React.Component<RequestBreakpoint
9797

9898
<ContentLabelBlock>Headers</ContentLabelBlock>
9999
<EditableRawHeaders
100-
input={headers}
100+
headers={headers}
101101
onChange={this.onHeadersChanged}
102102
preserveKeyCase={true}
103103
/>

src/components/view/http/http-breakpoint-response-card.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export class HttpBreakpointResponseCard extends React.Component<ResponseBreakpoi
6767

6868
<ContentLabelBlock>Headers</ContentLabelBlock>
6969
<EditableRawHeaders
70-
input={headers}
70+
headers={headers}
7171
onChange={this.onHeadersChanged}
7272
preserveKeyCase={true}
7373
/>

0 commit comments

Comments
 (0)