@conduit-client/command-aura-network 3.7.0 → 3.8.0
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.
|
@@ -24,7 +24,10 @@ export declare abstract class AuraNetworkCommand<Data, ExtraServices extends obj
|
|
|
24
24
|
protected readonly networkPreference: NetworkPreference;
|
|
25
25
|
protected get fetchParams(): Parameters<FetchService>;
|
|
26
26
|
protected coerceAuraErrors(auraErrors: any[]): Error;
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Customize how non-2xx fetch fallback responses are converted into errors.
|
|
29
|
+
*/
|
|
30
|
+
protected coerceError(errorResponse: Response): Promise<Error>;
|
|
28
31
|
protected convertAuraResponseToData<Data = unknown>(responsePromise: Promise<AuraRawResponseBody<any>>, coerceError: (errors: any[]) => Error): Promise<Result<Data, Error>>;
|
|
29
32
|
private convertFetchResponseToData;
|
|
30
33
|
private shouldUseAuraNetwork;
|
package/dist/v1/index.js
CHANGED
|
@@ -25,7 +25,10 @@ class AuraNetworkCommand extends NetworkCommand {
|
|
|
25
25
|
coerceAuraErrors(auraErrors) {
|
|
26
26
|
return toError(auraErrors[0]);
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Customize how non-2xx fetch fallback responses are converted into errors.
|
|
30
|
+
*/
|
|
31
|
+
async coerceError(errorResponse) {
|
|
29
32
|
return toError(errorResponse.statusText);
|
|
30
33
|
}
|
|
31
34
|
convertAuraResponseToData(responsePromise, coerceError) {
|
|
@@ -63,7 +66,7 @@ class AuraNetworkCommand extends NetworkCommand {
|
|
|
63
66
|
}
|
|
64
67
|
});
|
|
65
68
|
} else {
|
|
66
|
-
return this.
|
|
69
|
+
return this.coerceError(response2).then((coercedError) => {
|
|
67
70
|
return err(coercedError);
|
|
68
71
|
}).finally(() => {
|
|
69
72
|
try {
|
package/dist/v1/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/v1/aura-network-command.ts","../../src/v1/index.ts"],"sourcesContent":["import { NetworkCommand } from '@conduit-client/command-network/v1';\nimport { err, ok, toError, type Result, resolvedPromiseLike } from '@conduit-client/utils';\nimport type { NamedAuraNetworkService } from '@conduit-client/service-aura-network/v1';\nimport type { FetchService, NamedFetchService } from '@conduit-client/service-fetch-network/v1';\n\nexport type AuraRawResponseBody<Data extends Record<string, any> = Record<string, any>> = {\n getReturnValue: () => Data;\n};\n\nexport type NetworkPreference = 'aura' | 'http';\n/**\n * An implementation of NetworkCommand that uses Aura as the transport mechanism.\n * Transforms parameters into an Aura Parameters object and returns the result as an unwrapped object.\n */\nexport abstract class AuraNetworkCommand<\n Data,\n ExtraServices extends object = object,\n> extends NetworkCommand<\n Data,\n ExtraServices & Partial<NamedAuraNetworkService> & Partial<NamedFetchService>\n> {\n constructor(\n protected services: Partial<NamedAuraNetworkService> &\n Partial<NamedFetchService> &\n ExtraServices\n ) {\n super(services);\n }\n\n protected abstract readonly endpoint: string;\n protected abstract readonly auraParams: Record<string, unknown>;\n protected actionConfig = {\n background: false,\n hotspot: true,\n longRunning: false,\n storable: false,\n };\n protected readonly networkPreference: NetworkPreference = 'aura';\n protected get fetchParams(): Parameters<FetchService> {\n throw new Error(\n 'Fetch parameters must be specified when using HTTP transport on an Aura adapter'\n );\n }\n\n protected coerceAuraErrors(auraErrors: any[]): Error {\n return toError(auraErrors[0]); // Default Implmentation stringifies the response\n }\n\n protected async
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/v1/aura-network-command.ts","../../src/v1/index.ts"],"sourcesContent":["import { NetworkCommand } from '@conduit-client/command-network/v1';\nimport { err, ok, toError, type Result, resolvedPromiseLike } from '@conduit-client/utils';\nimport type { NamedAuraNetworkService } from '@conduit-client/service-aura-network/v1';\nimport type { FetchService, NamedFetchService } from '@conduit-client/service-fetch-network/v1';\n\nexport type AuraRawResponseBody<Data extends Record<string, any> = Record<string, any>> = {\n getReturnValue: () => Data;\n};\n\nexport type NetworkPreference = 'aura' | 'http';\n/**\n * An implementation of NetworkCommand that uses Aura as the transport mechanism.\n * Transforms parameters into an Aura Parameters object and returns the result as an unwrapped object.\n */\nexport abstract class AuraNetworkCommand<\n Data,\n ExtraServices extends object = object,\n> extends NetworkCommand<\n Data,\n ExtraServices & Partial<NamedAuraNetworkService> & Partial<NamedFetchService>\n> {\n constructor(\n protected services: Partial<NamedAuraNetworkService> &\n Partial<NamedFetchService> &\n ExtraServices\n ) {\n super(services);\n }\n\n protected abstract readonly endpoint: string;\n protected abstract readonly auraParams: Record<string, unknown>;\n protected actionConfig = {\n background: false,\n hotspot: true,\n longRunning: false,\n storable: false,\n };\n protected readonly networkPreference: NetworkPreference = 'aura';\n protected get fetchParams(): Parameters<FetchService> {\n throw new Error(\n 'Fetch parameters must be specified when using HTTP transport on an Aura adapter'\n );\n }\n\n protected coerceAuraErrors(auraErrors: any[]): Error {\n return toError(auraErrors[0]); // Default Implmentation stringifies the response\n }\n\n /**\n * Customize how non-2xx fetch fallback responses are converted into errors.\n */\n protected async coerceError(errorResponse: Response): Promise<Error> {\n return toError(errorResponse.statusText); // Default Behavior\n }\n\n protected convertAuraResponseToData<Data = unknown>(\n responsePromise: Promise<AuraRawResponseBody<any>>,\n coerceError: (errors: any[]) => Error\n ): Promise<Result<Data, Error>> {\n return responsePromise\n .then((response) => {\n const auraReturnValue = response.getReturnValue();\n try {\n this.afterRequestHooks({ statusCode: 200 }); // Treat all aura success as 200\n } catch (e) {}\n return ok(auraReturnValue);\n })\n .catch((error) => {\n if (!error || !error.getError) {\n return err(toError('Failed to get error from response'));\n } else {\n const actionErrors = error.getError();\n if (actionErrors.length > 0) {\n return err(coerceError(actionErrors));\n } else {\n return err(toError('Error fetching component'));\n }\n }\n });\n }\n\n private convertFetchResponseToData<Data = unknown>(\n response: PromiseLike<Response>\n ): PromiseLike<Result<Data, Error>> {\n return response.then(\n (response) => {\n if (response.ok) {\n return response\n .json()\n .then(\n (json: Data) => ok(json),\n (reason: any) => err(toError(reason))\n )\n .finally(() => {\n try {\n this.afterRequestHooks({ statusCode: response.status });\n } catch (e) {}\n });\n } else {\n return this.coerceError(response)\n .then((coercedError) => {\n return err(coercedError);\n })\n .finally(() => {\n try {\n this.afterRequestHooks({ statusCode: response.status });\n } catch (e) {}\n });\n }\n },\n (reason) => err(toError(reason))\n );\n }\n\n private shouldUseAuraNetwork(): boolean {\n return (\n this.services.auraNetwork !== undefined &&\n (this.networkPreference === 'aura' || !this.services.fetch)\n );\n }\n\n private shouldUseFetch(): boolean {\n return (\n this.services.fetch !== undefined &&\n (this.networkPreference === 'http' || !this.services.auraNetwork)\n );\n }\n\n fetch(): PromiseLike<Result<Data, Error>> {\n if (this.shouldUseAuraNetwork()) {\n return this.convertAuraResponseToData(\n this.services.auraNetwork!(this.endpoint, this.auraParams, this.actionConfig),\n this.coerceAuraErrors\n );\n } else if (this.shouldUseFetch()) {\n const params = this.fetchParams;\n try {\n return this.convertFetchResponseToData(this.services.fetch!(...params));\n } catch (reason) {\n return resolvedPromiseLike(err(toError(reason)));\n }\n }\n return resolvedPromiseLike(err(toError('Aura/Fetch network services not found')));\n }\n}\n","import { type ServiceDescriptor } from '@conduit-client/utils';\nimport { AuraNetworkCommand } from './aura-network-command';\nimport type { NamedService } from '@conduit-client/utils';\n\nexport { AuraNetworkCommand } from './aura-network-command';\n\nexport type AuraNetworkCommandServiceDescriptor = ServiceDescriptor<\n typeof AuraNetworkCommand,\n 'auraNetworkCommandBaseClass',\n '1.0'\n>;\n\nexport function buildServiceDescriptor(): AuraNetworkCommandServiceDescriptor {\n return {\n type: 'auraNetworkCommandBaseClass',\n version: '1.0',\n service: AuraNetworkCommand,\n };\n}\n\nexport type NamedAuraNetworkCommandService = NamedService<\n 'auraNetworkCommandBaseClass',\n typeof AuraNetworkCommand\n>;\n"],"names":["response"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@conduit-client/command-aura-network",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Luvio Aura Network Command",
|
|
6
6
|
"type": "module",
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
"watch": "npm run build --watch"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@conduit-client/command-base": "3.
|
|
35
|
-
"@conduit-client/command-network": "3.
|
|
36
|
-
"@conduit-client/service-aura-network": "3.
|
|
37
|
-
"@conduit-client/service-fetch-network": "3.
|
|
38
|
-
"@conduit-client/utils": "3.
|
|
34
|
+
"@conduit-client/command-base": "3.8.0",
|
|
35
|
+
"@conduit-client/command-network": "3.8.0",
|
|
36
|
+
"@conduit-client/service-aura-network": "3.8.0",
|
|
37
|
+
"@conduit-client/service-fetch-network": "3.8.0",
|
|
38
|
+
"@conduit-client/utils": "3.8.0"
|
|
39
39
|
},
|
|
40
40
|
"volta": {
|
|
41
41
|
"extends": "../../../../package.json"
|