@api-client/core 0.3.3 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/browser.d.ts +3 -0
- package/build/browser.js +9 -0
- package/build/browser.js.map +1 -1
- package/build/index.d.ts +11 -2
- package/build/index.js +20 -2
- package/build/index.js.map +1 -1
- package/build/src/lib/fs/Fs.d.ts +52 -0
- package/build/src/lib/fs/Fs.js +245 -0
- package/build/src/lib/fs/Fs.js.map +1 -0
- package/build/src/lib/timers/Timers.d.ts +5 -0
- package/build/src/lib/timers/Timers.js +10 -0
- package/build/src/lib/timers/Timers.js.map +1 -0
- package/build/src/mocking/ProjectMock.d.ts +13 -0
- package/build/src/mocking/ProjectMock.js +16 -0
- package/build/src/mocking/ProjectMock.js.map +1 -0
- package/build/src/mocking/lib/Request.d.ts +32 -0
- package/build/src/mocking/lib/Request.js +63 -0
- package/build/src/mocking/lib/Request.js.map +1 -0
- package/build/src/mocking/lib/Response.d.ts +33 -0
- package/build/src/mocking/lib/Response.js +79 -0
- package/build/src/mocking/lib/Response.js.map +1 -0
- package/build/src/models/ErrorResponse.d.ts +5 -4
- package/build/src/models/ErrorResponse.js +18 -5
- package/build/src/models/ErrorResponse.js.map +1 -1
- package/build/src/models/SerializableError.d.ts +30 -0
- package/build/src/models/SerializableError.js +63 -0
- package/build/src/models/SerializableError.js.map +1 -0
- package/build/src/runtime/http-engine/ArcEngine.js +8 -4
- package/build/src/runtime/http-engine/ArcEngine.js.map +1 -1
- package/build/src/runtime/http-engine/HttpEngine.d.ts +3 -3
- package/build/src/runtime/http-engine/HttpEngine.js +3 -3
- package/build/src/runtime/http-engine/HttpEngine.js.map +1 -1
- package/build/src/runtime/http-engine/NodeEngine.js +9 -4
- package/build/src/runtime/http-engine/NodeEngine.js.map +1 -1
- package/build/src/runtime/http-engine/NodeEngineDirect.js +8 -2
- package/build/src/runtime/http-engine/NodeEngineDirect.js.map +1 -1
- package/build/src/runtime/node/BaseRunner.d.ts +21 -0
- package/build/src/runtime/node/BaseRunner.js +27 -0
- package/build/src/runtime/node/BaseRunner.js.map +1 -0
- package/build/src/runtime/node/ProjectParallelRunner.d.ts +81 -0
- package/build/src/runtime/node/ProjectParallelRunner.js +173 -0
- package/build/src/runtime/node/ProjectParallelRunner.js.map +1 -0
- package/build/src/runtime/node/ProjectRequestRunner.d.ts +125 -0
- package/build/src/runtime/node/ProjectRequestRunner.js +185 -0
- package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -0
- package/build/src/runtime/node/ProjectRunner.d.ts +166 -64
- package/build/src/runtime/node/ProjectRunner.js +191 -139
- package/build/src/runtime/node/ProjectRunner.js.map +1 -1
- package/build/src/runtime/node/ProjectRunnerWorker.d.ts +1 -0
- package/build/src/runtime/node/ProjectRunnerWorker.js +58 -0
- package/build/src/runtime/node/ProjectRunnerWorker.js.map +1 -0
- package/build/src/runtime/node/ProjectSerialRunner.d.ts +11 -0
- package/build/src/runtime/node/ProjectSerialRunner.js +34 -0
- package/build/src/runtime/node/ProjectSerialRunner.js.map +1 -0
- package/build/src/runtime/reporters/ProjectRunCliReporter.d.ts +7 -0
- package/build/src/runtime/reporters/ProjectRunCliReporter.js +73 -0
- package/build/src/runtime/reporters/ProjectRunCliReporter.js.map +1 -0
- package/build/src/runtime/reporters/Reporter.d.ts +62 -0
- package/build/src/runtime/reporters/Reporter.js +98 -0
- package/build/src/runtime/reporters/Reporter.js.map +1 -0
- package/build/src/testing/TestCliHelper.d.ts +23 -0
- package/build/src/testing/TestCliHelper.js +71 -0
- package/build/src/testing/TestCliHelper.js.map +1 -0
- package/build/src/testing/getPort.d.ts +52 -0
- package/build/src/testing/getPort.js +169 -0
- package/build/src/testing/getPort.js.map +1 -0
- package/package.json +2 -1
- package/src/data/DataReader.ts +11 -0
- package/src/data/DataUtils.ts +108 -0
- package/src/data/JmesparthReader.ts +26 -0
- package/src/data/Json2Xml.ts +190 -0
- package/src/data/JsonReader.ts +41 -0
- package/src/data/PayloadPointer.ts +48 -0
- package/src/data/RequestDataExtractor.ts +133 -0
- package/src/data/UrlEncodedReader.ts +20 -0
- package/src/data/XmlReader.ts +103 -0
- package/src/events/BaseEvents.ts +259 -0
- package/src/events/CustomEvent.ts +27 -0
- package/src/events/EventTypes.ts +19 -0
- package/src/events/Events.ts +19 -0
- package/src/events/authorization/AuthorizationEventTypes.ts +22 -0
- package/src/events/authorization/AuthorizationEvents.ts +61 -0
- package/src/events/cookies/CookieEventTypes.ts +13 -0
- package/src/events/cookies/CookieEvents.ts +157 -0
- package/src/events/encryption/EncryptionEventTypes.ts +4 -0
- package/src/events/encryption/EncryptionEvents.ts +51 -0
- package/src/events/environment/EnvironmentEventTypes.ts +3 -0
- package/src/events/environment/EnvironmentEvents.ts +24 -0
- package/src/events/models/ClientCertificateEvents.ts +87 -0
- package/src/events/models/ModelEventTypes.ts +47 -0
- package/src/events/models/ModelEvents.ts +7 -0
- package/src/events/models/ProjectEvents.ts +331 -0
- package/src/events/process/ProcessEventTypes.ts +5 -0
- package/src/events/process/ProcessEvents.ts +76 -0
- package/src/events/readme.md +22 -0
- package/src/events/reporting/ReportingEventTypes.ts +3 -0
- package/src/events/reporting/ReportingEvents.ts +28 -0
- package/src/events/telemetry/TelemetryEventTypes.ts +10 -0
- package/src/events/telemetry/TelemetryEvents.ts +156 -0
- package/src/lib/cookies/Cookie.ts +312 -0
- package/src/lib/cookies/Cookies.ts +326 -0
- package/src/lib/cookies/Utils.ts +168 -0
- package/src/lib/fs/Fs.ts +258 -0
- package/src/lib/headers/Headers.ts +219 -0
- package/src/lib/logging/DefaultLogger.ts +19 -0
- package/src/lib/logging/DummyLogger.ts +21 -0
- package/src/lib/logging/Logger.ts +16 -0
- package/src/lib/timers/Timers.ts +9 -0
- package/src/lib/transformers/PayloadSerializer.ts +332 -0
- package/src/lib/transformers/Utils.ts +18 -0
- package/src/lib/uuid.ts +40 -0
- package/src/mocking/LegacyInterfaces.ts +52 -0
- package/src/mocking/LegacyMock.ts +37 -0
- package/src/mocking/ProjectMock.ts +20 -0
- package/src/mocking/legacy/Authorization.ts +39 -0
- package/src/mocking/legacy/Certificates.ts +145 -0
- package/src/mocking/legacy/Cookies.ts +51 -0
- package/src/mocking/legacy/HostRules.ts +43 -0
- package/src/mocking/legacy/Http.ts +236 -0
- package/src/mocking/legacy/HttpResponse.ts +106 -0
- package/src/mocking/legacy/RestApi.ts +68 -0
- package/src/mocking/legacy/Urls.ts +44 -0
- package/src/mocking/legacy/Variables.ts +53 -0
- package/src/mocking/lib/Request.ts +85 -0
- package/src/mocking/lib/Response.ts +101 -0
- package/src/models/ArcResponse.ts +166 -0
- package/src/models/Authorization.ts +481 -0
- package/src/models/AuthorizationData.ts +60 -0
- package/src/models/Backend.ts +107 -0
- package/src/models/ClientCertificate.ts +68 -0
- package/src/models/Environment.ts +279 -0
- package/src/models/ErrorResponse.ts +113 -0
- package/src/models/HistoryIndex.ts +76 -0
- package/src/models/HistoryRequest.ts +28 -0
- package/src/models/HostRule.ts +163 -0
- package/src/models/HttpCookie.ts +285 -0
- package/src/models/HttpProject.ts +1294 -0
- package/src/models/HttpProjectListItem.ts +23 -0
- package/src/models/HttpRequest.ts +124 -0
- package/src/models/HttpResponse.ts +143 -0
- package/src/models/License.ts +113 -0
- package/src/models/ProjectDefinitionProperty.ts +40 -0
- package/src/models/ProjectFolder.ts +439 -0
- package/src/models/ProjectItem.ts +135 -0
- package/src/models/ProjectParent.ts +113 -0
- package/src/models/ProjectRequest.ts +277 -0
- package/src/models/ProjectSchema.ts +202 -0
- package/src/models/Property.ts +423 -0
- package/src/models/Provider.ts +98 -0
- package/src/models/README.md +20 -0
- package/src/models/Request.ts +452 -0
- package/src/models/RequestActions.ts +163 -0
- package/src/models/RequestAuthorization.ts +115 -0
- package/src/models/RequestConfig.ts +317 -0
- package/src/models/RequestLog.ts +159 -0
- package/src/models/RequestTime.ts +108 -0
- package/src/models/RequestUiMeta.ts +258 -0
- package/src/models/RequestsSize.ts +65 -0
- package/src/models/ResponseAuthorization.ts +104 -0
- package/src/models/ResponseRedirect.ts +158 -0
- package/src/models/RevisionInfo.ts +37 -0
- package/src/models/SentRequest.ts +125 -0
- package/src/models/SerializableError.ts +80 -0
- package/src/models/SerializablePayload.ts +68 -0
- package/src/models/Server.ts +153 -0
- package/src/models/Thing.ts +110 -0
- package/src/models/Url.ts +90 -0
- package/src/models/User.ts +120 -0
- package/src/models/WebApi.ts +234 -0
- package/src/models/WebApiIndex.ts +122 -0
- package/src/models/Workspace.ts +182 -0
- package/src/models/actions/Action.ts +213 -0
- package/src/models/actions/ActionView.ts +40 -0
- package/src/models/actions/Condition.ts +207 -0
- package/src/models/actions/ConditionView.ts +42 -0
- package/src/models/actions/Enums.ts +29 -0
- package/src/models/actions/RunnableAction.ts +144 -0
- package/src/models/actions/runnable/DeleteCookieAction.ts +113 -0
- package/src/models/actions/runnable/Runnable.ts +9 -0
- package/src/models/actions/runnable/SetCookieAction.ts +216 -0
- package/src/models/actions/runnable/SetVariableAction.ts +81 -0
- package/src/models/legacy/DataExport.ts +172 -0
- package/src/models/legacy/Normalizer.ts +110 -0
- package/src/models/legacy/actions/Actions.ts +269 -0
- package/src/models/legacy/authorization/Authorization.ts +572 -0
- package/src/models/legacy/models/ApiTypes.ts +202 -0
- package/src/models/legacy/models/ArcLegacyProject.ts +39 -0
- package/src/models/legacy/models/AuthData.ts +17 -0
- package/src/models/legacy/models/ClientCertificate.ts +95 -0
- package/src/models/legacy/models/Cookies.ts +52 -0
- package/src/models/legacy/models/HostRule.ts +35 -0
- package/src/models/legacy/models/RestApi.ts +49 -0
- package/src/models/legacy/models/UrlHistory.ts +37 -0
- package/src/models/legacy/models/Variable.ts +43 -0
- package/src/models/legacy/models/base.d.ts +95 -0
- package/src/models/legacy/request/ArcRequest.ts +405 -0
- package/src/models/legacy/request/ArcResponse.ts +177 -0
- package/src/models/legacy/request/HistoryData.ts +47 -0
- package/src/models/legacy/request/Legacy.ts +45 -0
- package/src/models/legacy/request/RequestBody.ts +87 -0
- package/src/models/transformers/ArcDexieTransformer.ts +323 -0
- package/src/models/transformers/ArcLegacyNormalizer.ts +85 -0
- package/src/models/transformers/ArcLegacyTransformer.ts +200 -0
- package/src/models/transformers/ArcPouchTransformer.ts +184 -0
- package/src/models/transformers/BaseTransformer.ts +116 -0
- package/src/models/transformers/ImportUtils.ts +141 -0
- package/src/models/transformers/LegacyDataExportToApiProject.ts +76 -0
- package/src/models/transformers/LegacyExportProcessor.ts +252 -0
- package/src/models/transformers/PostmanBackupTransformer.ts +306 -0
- package/src/models/transformers/PostmanDataTransformer.ts +50 -0
- package/src/models/transformers/PostmanTransformer.ts +106 -0
- package/src/models/transformers/PostmanV21Transformer.ts +311 -0
- package/src/models/transformers/PostmanV2Transformer.ts +308 -0
- package/src/models/transformers/har.ts +865 -0
- package/src/runtime/actions/ActionRunner.ts +83 -0
- package/src/runtime/actions/ConditionRunner.ts +194 -0
- package/src/runtime/actions/RunnableCondition.ts +57 -0
- package/src/runtime/actions/runnable/ActionRunnable.ts +19 -0
- package/src/runtime/actions/runnable/DeleteCookieRunnable.ts +39 -0
- package/src/runtime/actions/runnable/SetCookieRunnable.ts +92 -0
- package/src/runtime/actions/runnable/SetVariableRunnable.ts +53 -0
- package/src/runtime/http-engine/ArcEngine.ts +1068 -0
- package/src/runtime/http-engine/FormData.ts +85 -0
- package/src/runtime/http-engine/HttpEngine.ts +874 -0
- package/src/runtime/http-engine/HttpErrorCodes.ts +270 -0
- package/src/runtime/http-engine/NodeEngine.ts +792 -0
- package/src/runtime/http-engine/NodeEngineDirect.ts +482 -0
- package/src/runtime/http-engine/PayloadSupport.ts +84 -0
- package/src/runtime/http-engine/RequestUtils.ts +164 -0
- package/src/runtime/http-engine/ntlm/Des.ts +345 -0
- package/src/runtime/http-engine/ntlm/MD4.ts +135 -0
- package/src/runtime/http-engine/ntlm/NtlmAuth.ts +186 -0
- package/src/runtime/http-engine/ntlm/NtlmMessage.ts +57 -0
- package/src/runtime/modules/BasicAuthCache.ts +133 -0
- package/src/runtime/modules/ExecutionResponse.ts +4 -0
- package/src/runtime/modules/ModulesRegistry.ts +136 -0
- package/src/runtime/modules/RequestAuthorization.ts +110 -0
- package/src/runtime/modules/RequestCookies.ts +145 -0
- package/src/runtime/node/BaseRunner.ts +29 -0
- package/src/runtime/node/ProjectParallelRunner.ts +234 -0
- package/src/runtime/node/ProjectRequestRunner.ts +281 -0
- package/src/runtime/node/ProjectRunner.ts +374 -0
- package/src/runtime/node/ProjectRunnerWorker.ts +62 -0
- package/src/runtime/node/ProjectSerialRunner.ts +36 -0
- package/src/runtime/node/RequestFactory.ts +422 -0
- package/src/runtime/node/VariablesStore.ts +25 -0
- package/src/runtime/reporters/ProjectRunCliReporter.ts +79 -0
- package/src/runtime/reporters/Reporter.ts +142 -0
- package/src/runtime/store/StoreSdk.ts +838 -0
- package/src/runtime/variables/Cache.ts +53 -0
- package/src/runtime/variables/EvalFunctions.ts +132 -0
- package/src/runtime/variables/ProjectVariables.ts +6 -0
- package/src/runtime/variables/VariablesProcessor.ts +543 -0
- package/src/runtime/variables/VariablesTokenizer.ts +55 -0
- package/src/testing/TestCliHelper.ts +76 -0
- package/src/testing/getPort.ts +212 -0
- package/build/src/runtime/http-engine/Errors.d.ts +0 -10
- package/build/src/runtime/http-engine/Errors.js +0 -14
- package/build/src/runtime/http-engine/Errors.js.map +0 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Http, Har, Types, Lorem, Time, DataMockInit, HttpResponseInit, HarTimingInit, Internet } from '@pawel-up/data-mock';
|
|
2
|
+
import { IHttpResponse, Kind as HttpResponseKind } from '../../models/HttpResponse.js';
|
|
3
|
+
import { IArcResponse, Kind as ArcResponseKind } from '../../models/ArcResponse.js';
|
|
4
|
+
import { IRequestsSize } from '../../models/RequestsSize.js';
|
|
5
|
+
import { IResponseRedirect, Kind as ResponseRedirectKind } from '../../models/ResponseRedirect.js';
|
|
6
|
+
|
|
7
|
+
export interface IArcResponseInit extends HttpResponseInit, HarTimingInit {
|
|
8
|
+
/**
|
|
9
|
+
* When set it does not generate a response payload.
|
|
10
|
+
*/
|
|
11
|
+
noBody?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The first number of the status group. Other 2 are auto generated
|
|
14
|
+
*/
|
|
15
|
+
statusGroup?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Whether to generate timings object
|
|
18
|
+
*/
|
|
19
|
+
timings?: boolean;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export class Response {
|
|
23
|
+
types: Types;
|
|
24
|
+
lorem: Lorem;
|
|
25
|
+
time: Time;
|
|
26
|
+
http: Http;
|
|
27
|
+
har: Har;
|
|
28
|
+
internet: Internet;
|
|
29
|
+
|
|
30
|
+
constructor(init: DataMockInit={}) {
|
|
31
|
+
this.types = new Types(init.seed);
|
|
32
|
+
this.lorem = new Lorem(init);
|
|
33
|
+
this.time = new Time(init);
|
|
34
|
+
this.http = new Http(init);
|
|
35
|
+
this.har = new Har(init);
|
|
36
|
+
this.internet = new Internet(init);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
response(init: IArcResponseInit = {}): IHttpResponse {
|
|
40
|
+
const ct = init.noBody ? undefined : this.http.headers.contentType();
|
|
41
|
+
const body = init.noBody ? undefined : this.http.payload.payload(ct);
|
|
42
|
+
const headers = this.http.headers.headers('response', { mime: ct });
|
|
43
|
+
const statusGroup = init.statusGroup ? init.statusGroup : this.types.number({ min: 2, max: 5 });
|
|
44
|
+
const sCode = this.types.number({ min: 0, max: 99 }).toString();
|
|
45
|
+
const code = Number(`${statusGroup}${sCode.padStart(2, '0')}`);
|
|
46
|
+
const status = this.lorem.word();
|
|
47
|
+
const result: IHttpResponse = {
|
|
48
|
+
kind: HttpResponseKind,
|
|
49
|
+
status: code,
|
|
50
|
+
statusText: status,
|
|
51
|
+
headers,
|
|
52
|
+
};
|
|
53
|
+
if (!init.noBody) {
|
|
54
|
+
result.payload = body;
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
arcResponse(init: IArcResponseInit={}): IArcResponse {
|
|
60
|
+
const base = this.response(init);
|
|
61
|
+
const length = this.types.number({ min: 10, max: 4000 });
|
|
62
|
+
const result: IArcResponse = {
|
|
63
|
+
...base,
|
|
64
|
+
kind: ArcResponseKind,
|
|
65
|
+
loadingTime: length,
|
|
66
|
+
};
|
|
67
|
+
if (init.timings) {
|
|
68
|
+
result.timings = this.har.timing(init);
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
size(): IRequestsSize {
|
|
74
|
+
const result: IRequestsSize = {
|
|
75
|
+
request: this.types.number({ min: 10 }),
|
|
76
|
+
response: this.types.number({ min: 10 }),
|
|
77
|
+
};
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
redirect(init?: IArcResponseInit): IResponseRedirect {
|
|
82
|
+
const start = this.time.timestamp();
|
|
83
|
+
const end = this.time.timestamp({ min: start + 1 })
|
|
84
|
+
const info: IResponseRedirect = {
|
|
85
|
+
kind: ResponseRedirectKind,
|
|
86
|
+
startTime: start,
|
|
87
|
+
endTime: end,
|
|
88
|
+
url: this.internet.uri(),
|
|
89
|
+
response: this.response({ ...init, statusGroup: 3}),
|
|
90
|
+
};
|
|
91
|
+
return info;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
redirects(size=1, init?: IArcResponseInit): IResponseRedirect[] {
|
|
95
|
+
const result: IResponseRedirect[] = [];
|
|
96
|
+
for (let i = 0; i < size; i++) {
|
|
97
|
+
result.push(this.redirect(init));
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { IHttpResponse, HttpResponse, Kind } from './HttpResponse.js';
|
|
2
|
+
import { IRequestTime, RequestTime } from './RequestTime.js';
|
|
3
|
+
import { IResponseAuthorization, ResponseAuthorization } from './ResponseAuthorization.js';
|
|
4
|
+
import { IErrorResponse } from './ErrorResponse.js';
|
|
5
|
+
import { Response as LegacyResponse } from './legacy/request/ArcResponse.js';
|
|
6
|
+
import { PayloadSerializer } from '../lib/transformers/PayloadSerializer.js';
|
|
7
|
+
import { Normalizer } from './legacy/Normalizer.js';
|
|
8
|
+
|
|
9
|
+
export { Kind };
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* An HTTP response object.
|
|
13
|
+
*/
|
|
14
|
+
export interface IArcResponse extends IHttpResponse {
|
|
15
|
+
/**
|
|
16
|
+
* The request timings.
|
|
17
|
+
* Some HTTP clients may not give this information.
|
|
18
|
+
*/
|
|
19
|
+
timings?: IRequestTime;
|
|
20
|
+
/**
|
|
21
|
+
* The total loading time (from sending the request to receive the last byte)
|
|
22
|
+
*/
|
|
23
|
+
loadingTime: number;
|
|
24
|
+
/**
|
|
25
|
+
* The authentication request from the server.
|
|
26
|
+
*/
|
|
27
|
+
auth?: IResponseAuthorization;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export class ArcResponse extends HttpResponse {
|
|
31
|
+
/**
|
|
32
|
+
* The request timings.
|
|
33
|
+
* Some HTTP clients may not give this information.
|
|
34
|
+
*/
|
|
35
|
+
timings?: RequestTime;
|
|
36
|
+
/**
|
|
37
|
+
* The total loading time (from sending the request to receive the last byte)
|
|
38
|
+
*/
|
|
39
|
+
loadingTime = 0;
|
|
40
|
+
/**
|
|
41
|
+
* The authentication request from the server.
|
|
42
|
+
*/
|
|
43
|
+
auth?: ResponseAuthorization;
|
|
44
|
+
|
|
45
|
+
static fromValues(status: number, statusText?: string, headers?: string): ArcResponse {
|
|
46
|
+
return new ArcResponse({
|
|
47
|
+
kind: Kind,
|
|
48
|
+
status,
|
|
49
|
+
statusText,
|
|
50
|
+
headers,
|
|
51
|
+
loadingTime: 0,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static async fromLegacy(input: LegacyResponse): Promise<ArcResponse> {
|
|
56
|
+
const init: IArcResponse = {
|
|
57
|
+
kind: Kind,
|
|
58
|
+
status: input.status || 0,
|
|
59
|
+
loadingTime: input.loadingTime || 0,
|
|
60
|
+
};
|
|
61
|
+
if (input.headers) {
|
|
62
|
+
init.headers = input.headers;
|
|
63
|
+
}
|
|
64
|
+
if (input.statusText) {
|
|
65
|
+
init.statusText = input.statusText;
|
|
66
|
+
}
|
|
67
|
+
if (input.payload) {
|
|
68
|
+
const orig = Normalizer.restoreTransformedPayload(input.payload);
|
|
69
|
+
if (orig) {
|
|
70
|
+
init.payload = await PayloadSerializer.serialize(orig);
|
|
71
|
+
}
|
|
72
|
+
} else if (input.blob) {
|
|
73
|
+
init.payload = {
|
|
74
|
+
type: 'blob',
|
|
75
|
+
data: input.blob,
|
|
76
|
+
};
|
|
77
|
+
} else if (input.multipart) {
|
|
78
|
+
init.payload = {
|
|
79
|
+
type: 'formdata',
|
|
80
|
+
data: input.multipart,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
if (input.timings) {
|
|
84
|
+
init.timings = new RequestTime(input.timings).toJSON();
|
|
85
|
+
}
|
|
86
|
+
return new ArcResponse(init);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @param input The response definition used to restore the state.
|
|
91
|
+
*/
|
|
92
|
+
constructor(input?: string|IArcResponse) {
|
|
93
|
+
super();
|
|
94
|
+
let init: IArcResponse;
|
|
95
|
+
if (typeof input === 'string') {
|
|
96
|
+
init = JSON.parse(input);
|
|
97
|
+
} else if (typeof input === 'object') {
|
|
98
|
+
init = input;
|
|
99
|
+
} else {
|
|
100
|
+
init = {
|
|
101
|
+
kind: Kind,
|
|
102
|
+
status: 0,
|
|
103
|
+
loadingTime: 0,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
this.new(init);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Creates a new response clearing anything that is so far defined.
|
|
111
|
+
*
|
|
112
|
+
* Note, this throws an error when the object is not an ARC response.
|
|
113
|
+
*/
|
|
114
|
+
new(init: IArcResponse): void {
|
|
115
|
+
super.new(init);
|
|
116
|
+
const { loadingTime=0, timings, auth } = init;
|
|
117
|
+
this.loadingTime = loadingTime;
|
|
118
|
+
if (timings) {
|
|
119
|
+
this.timings = new RequestTime(timings);
|
|
120
|
+
} else {
|
|
121
|
+
this.timings = undefined;
|
|
122
|
+
}
|
|
123
|
+
if (auth) {
|
|
124
|
+
this.auth = new ResponseAuthorization(auth);
|
|
125
|
+
} else {
|
|
126
|
+
this.auth = undefined;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
toJSON(): IArcResponse {
|
|
131
|
+
const response = super.toJSON() as IArcResponse;
|
|
132
|
+
response.loadingTime = this.loadingTime;
|
|
133
|
+
if (this.timings) {
|
|
134
|
+
response.timings = this.timings.toJSON();
|
|
135
|
+
}
|
|
136
|
+
if (this.auth) {
|
|
137
|
+
response.auth = this.auth.toJSON();
|
|
138
|
+
}
|
|
139
|
+
return response;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Checks whether the object (JSON Object) is an Error response.
|
|
144
|
+
*/
|
|
145
|
+
static isErrorResponse(input: unknown): boolean {
|
|
146
|
+
const typed = input as IErrorResponse;
|
|
147
|
+
if (typed.error) {
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Creates the RequestTime object from the passed object.
|
|
155
|
+
*/
|
|
156
|
+
setTimings(timings: IRequestTime): void {
|
|
157
|
+
this.timings = new RequestTime(timings);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Sets the authorization data on the response.
|
|
162
|
+
*/
|
|
163
|
+
setAuth(auth: IResponseAuthorization): void {
|
|
164
|
+
this.auth = new ResponseAuthorization(auth);
|
|
165
|
+
}
|
|
166
|
+
}
|