@conduit-client/command-aura-network 3.9.0 → 3.11.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.
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Declare block for typing the return value of buildCommandClass when the base class is AuraNetworkCommand.
|
|
3
|
+
*/
|
|
4
|
+
import type { AuraNetworkCommand } from './aura-network-command';
|
|
5
|
+
export declare class GeneratedAuraNetworkCommand<Data = unknown, ExtraServices extends object = object> extends AuraNetworkCommand<Data, ExtraServices> {
|
|
6
|
+
protected readonly endpoint: string;
|
|
7
|
+
protected get auraParams(): Record<string, unknown>;
|
|
8
|
+
readonly exposeSubscribeAndRefresh: boolean;
|
|
9
|
+
get operationType(): 'query' | 'mutation';
|
|
10
|
+
}
|
package/dist/types/v1/index.d.ts
CHANGED
|
@@ -5,3 +5,4 @@ export { AuraNetworkCommand } from './aura-network-command';
|
|
|
5
5
|
export type AuraNetworkCommandServiceDescriptor = ServiceDescriptor<typeof AuraNetworkCommand, 'auraNetworkCommandBaseClass', '1.0'>;
|
|
6
6
|
export declare function buildServiceDescriptor(): AuraNetworkCommandServiceDescriptor;
|
|
7
7
|
export type NamedAuraNetworkCommandService = NamedService<'auraNetworkCommandBaseClass', typeof AuraNetworkCommand>;
|
|
8
|
+
export type { GeneratedAuraNetworkCommand } from './generated-command';
|
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 /**\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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"}
|
|
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\nexport type { GeneratedAuraNetworkCommand } from './generated-command';\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.11.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.11.0",
|
|
35
|
+
"@conduit-client/command-network": "3.11.0",
|
|
36
|
+
"@conduit-client/service-aura-network": "3.11.0",
|
|
37
|
+
"@conduit-client/service-fetch-network": "3.11.0",
|
|
38
|
+
"@conduit-client/utils": "3.11.0"
|
|
39
39
|
},
|
|
40
40
|
"volta": {
|
|
41
41
|
"extends": "../../../../package.json"
|