@web3api/core-js
Advanced tools
Comparing version 0.0.1-prealpha.56 to 0.0.1-prealpha.57
@@ -1,3 +0,3 @@ | ||
import { Api, Client, Uri, PluginPackage, InterfaceImplementations, PluginRegistration, UriRedirect } from "../types"; | ||
import { Web3ApiManifest } from "../manifest"; | ||
export declare const resolveUri: (uri: Uri, client: Client, redirects: readonly UriRedirect<Uri>[], plugins: readonly PluginRegistration<Uri>[], interfaces: readonly InterfaceImplementations<Uri>[], createPluginApi: (uri: Uri, plugin: PluginPackage) => Api, createApi: (uri: Uri, manifest: Web3ApiManifest, uriResolver: Uri) => Api, noValidate?: boolean | undefined) => Promise<Api>; | ||
import { Api, Uri, PluginPackage, InterfaceImplementations, PluginRegistration, UriRedirect } from "../types"; | ||
import { Web3ApiManifest, DeserializeManifestOptions } from "../manifest"; | ||
export declare const resolveUri: (uri: Uri, redirects: readonly UriRedirect<Uri>[], plugins: readonly PluginRegistration<Uri>[], interfaces: readonly InterfaceImplementations<Uri>[], invoke: <TData = unknown, TUri extends string | Uri = string>(options: import("../types").InvokeApiOptions<TUri, import("../types").ClientConfig<string>>) => Promise<import("../types").InvokeApiResult<TData>>, createPluginApi: (uri: Uri, plugin: PluginPackage) => Api, createApi: (uri: Uri, manifest: Web3ApiManifest, uriResolver: Uri) => Api, deserializeOptions?: DeserializeManifestOptions | undefined) => Promise<Api>; |
@@ -47,3 +47,3 @@ "use strict"; | ||
var tracing_js_1 = require("@web3api/tracing-js"); | ||
exports.resolveUri = tracing_js_1.Tracer.traceFunc("core: resolveUri", function (uri, client, redirects, plugins, interfaces, createPluginApi, createApi, noValidate) { return __awaiter(void 0, void 0, void 0, function () { | ||
exports.resolveUri = tracing_js_1.Tracer.traceFunc("core: resolveUri", function (uri, redirects, plugins, interfaces, invoke, createPluginApi, createApi, deserializeOptions) { return __awaiter(void 0, void 0, void 0, function () { | ||
var finalRedirectedUri, plugin, uriResolverImplementations; | ||
@@ -59,3 +59,3 @@ return __generator(this, function (_a) { | ||
uriResolverImplementations = get_implementations_1.getImplementations(interfaces_1.coreInterfaceUris.uriResolver, interfaces, redirects); | ||
return [4 /*yield*/, resolveUriWithUriResolvers(finalRedirectedUri, uriResolverImplementations, client, createApi, noValidate)]; | ||
return [4 /*yield*/, resolveUriWithUriResolvers(finalRedirectedUri, uriResolverImplementations, invoke, createApi, deserializeOptions)]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
@@ -65,3 +65,3 @@ } | ||
}); }); | ||
var resolveUriWithUriResolvers = function (uri, uriResolverImplementationUris, client, createApi, noValidate) { return __awaiter(void 0, void 0, void 0, function () { | ||
var resolveUriWithUriResolvers = function (uri, uriResolverImplementationUris, invoke, createApi, deserializeOptions) { return __awaiter(void 0, void 0, void 0, function () { | ||
var resolvedUri, uriHistory, trackUriRedirect, tryResolveUriWithUriResolver, i, uriResolver, result, convertedUri, manifest; | ||
@@ -92,3 +92,3 @@ return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, interfaces_1.UriResolver.Query.tryResolveUri(client, uriResolver, uri)]; | ||
case 0: return [4 /*yield*/, interfaces_1.UriResolver.Query.tryResolveUri(invoke, uriResolver, uri)]; | ||
case 1: | ||
@@ -129,5 +129,3 @@ data = (_a.sent()).data; | ||
else if (result.manifest) { | ||
manifest = manifest_1.deserializeWeb3ApiManifest(result.manifest, { | ||
noValidate: noValidate, | ||
}); | ||
manifest = manifest_1.deserializeWeb3ApiManifest(result.manifest, deserializeOptions); | ||
return [2 /*return*/, tracing_js_1.Tracer.traceFunc("resolveUri: createApi", function (uri, manifest, uriResolver) { | ||
@@ -134,0 +132,0 @@ return createApi(uri, manifest, uriResolver); |
@@ -1,2 +0,2 @@ | ||
import { Uri, Client, InvokeApiResult } from "../"; | ||
import { Uri, InvokeApiResult } from "../"; | ||
export interface MaybeUriOrManifest { | ||
@@ -7,4 +7,4 @@ uri?: string; | ||
export declare const Query: { | ||
tryResolveUri: (client: Client, api: Uri, uri: Uri) => Promise<InvokeApiResult<MaybeUriOrManifest>>; | ||
getFile: (client: Client, api: Uri, path: string) => Promise<InvokeApiResult<ArrayBuffer>>; | ||
tryResolveUri: (invoke: <TData = unknown, TUri extends string | Uri = string>(options: import("..").InvokeApiOptions<TUri, import("..").ClientConfig<string>>) => Promise<InvokeApiResult<TData>>, api: Uri, uri: Uri) => Promise<InvokeApiResult<MaybeUriOrManifest>>; | ||
getFile: (invoke: <TData = unknown, TUri extends string | Uri = string>(options: import("..").InvokeApiOptions<TUri, import("..").ClientConfig<string>>) => Promise<InvokeApiResult<TData>>, api: Uri, path: string) => Promise<InvokeApiResult<ArrayBuffer>>; | ||
}; |
@@ -43,5 +43,5 @@ "use strict"; | ||
exports.Query = { | ||
tryResolveUri: tracing_js_1.Tracer.traceFunc("core: uri-resolver: tryResolveUri", function (client, api, uri) { return __awaiter(void 0, void 0, void 0, function () { | ||
tryResolveUri: tracing_js_1.Tracer.traceFunc("core: uri-resolver: tryResolveUri", function (invoke, api, uri) { return __awaiter(void 0, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
return [2 /*return*/, client.invoke({ | ||
return [2 /*return*/, invoke({ | ||
uri: api.uri, | ||
@@ -57,5 +57,5 @@ module: "query", | ||
}); }), | ||
getFile: tracing_js_1.Tracer.traceFunc("core: uri-resolver: getFile", function (client, api, path) { return __awaiter(void 0, void 0, void 0, function () { | ||
getFile: tracing_js_1.Tracer.traceFunc("core: uri-resolver: getFile", function (invoke, api, path) { return __awaiter(void 0, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
return [2 /*return*/, client.invoke({ | ||
return [2 /*return*/, invoke({ | ||
uri: api.uri, | ||
@@ -62,0 +62,0 @@ module: "query", |
@@ -1,18 +0,33 @@ | ||
import { QueryHandler, InvokeHandler, SubscriptionHandler, Uri } from "./"; | ||
import { QueryHandler, InvokeHandler, SubscriptionHandler, UriRedirect, Uri, PluginRegistration, InterfaceImplementations } from "./"; | ||
import { ManifestType, AnyManifest } from "../manifest"; | ||
export interface GetManifestOptions<TManifestType extends ManifestType> { | ||
export interface ClientConfig<TUri extends Uri | string = string> { | ||
redirects: UriRedirect<TUri>[]; | ||
plugins: PluginRegistration<TUri>[]; | ||
interfaces: InterfaceImplementations<TUri>[]; | ||
} | ||
export interface Contextualized { | ||
contextId?: string; | ||
} | ||
export declare type GetRedirectsOptions = Contextualized; | ||
export declare type GetPluginsOptions = Contextualized; | ||
export declare type GetInterfacesOptions = Contextualized; | ||
export declare type GetSchemaOptions = Contextualized; | ||
export interface GetManifestOptions<TManifestType extends ManifestType> extends Contextualized { | ||
type: TManifestType; | ||
} | ||
export interface GetFileOptions { | ||
export interface GetFileOptions extends Contextualized { | ||
path: string; | ||
encoding?: "utf-8" | string; | ||
} | ||
export interface GetImplementationsOptions { | ||
export interface GetImplementationsOptions extends Contextualized { | ||
applyRedirects?: boolean; | ||
} | ||
export interface Client extends QueryHandler, SubscriptionHandler, InvokeHandler { | ||
getSchema<TUri extends Uri | string>(uri: TUri): Promise<string>; | ||
getRedirects(options: GetRedirectsOptions): readonly UriRedirect<Uri>[]; | ||
getPlugins(options: GetPluginsOptions): readonly PluginRegistration<Uri>[]; | ||
getInterfaces(options: GetInterfacesOptions): readonly InterfaceImplementations<Uri>[]; | ||
getSchema<TUri extends Uri | string>(uri: TUri, options: GetSchemaOptions): Promise<string>; | ||
getManifest<TUri extends Uri | string, TManifestType extends ManifestType>(uri: TUri, options: GetManifestOptions<TManifestType>): Promise<AnyManifest<TManifestType>>; | ||
getFile<TUri extends Uri | string>(uri: TUri, options: GetFileOptions): Promise<string | ArrayBuffer>; | ||
getImplementations<TUri extends Uri | string>(uri: TUri, options?: GetImplementationsOptions): TUri[]; | ||
getImplementations<TUri extends Uri | string>(uri: TUri, options: GetImplementationsOptions): TUri[]; | ||
} |
@@ -1,5 +0,5 @@ | ||
import { Uri } from "."; | ||
import { ClientConfig, Uri } from "."; | ||
export declare type InvokableModules = "query" | "mutation"; | ||
/** Options required for an API invocation. */ | ||
export interface InvokeApiOptions<TUri extends Uri | string = string> { | ||
export interface InvokeApiOptions<TUri extends Uri | string = string, TClientConfig extends ClientConfig = ClientConfig> { | ||
/** The API's URI */ | ||
@@ -28,2 +28,10 @@ uri: TUri; | ||
decode?: boolean; | ||
/** | ||
* Override the client's config for all invokes within this query. | ||
*/ | ||
config?: Partial<TClientConfig>; | ||
/** | ||
* Invoke id used to track query context data set internally. | ||
*/ | ||
contextId?: string; | ||
} | ||
@@ -30,0 +38,0 @@ /** |
@@ -1,2 +0,2 @@ | ||
import { Uri, InvokeApiOptions } from "./"; | ||
import { Uri, InvokeApiOptions, ClientConfig } from "./"; | ||
import { DocumentNode } from "graphql"; | ||
@@ -8,3 +8,3 @@ /** GraphQL QueryDocument */ | ||
/** Options required for an API query. */ | ||
export interface QueryApiOptions<TVariables extends Record<string, unknown> = Record<string, unknown>, TUri extends Uri | string = string> { | ||
export interface QueryApiOptions<TVariables extends Record<string, unknown> = Record<string, unknown>, TUri extends Uri | string = string, TClientConfig extends ClientConfig = ClientConfig> { | ||
/** The API's URI */ | ||
@@ -21,2 +21,10 @@ uri: TUri; | ||
variables?: TVariables; | ||
/** | ||
* Override the client's config for all invokes within this query. | ||
*/ | ||
config?: Partial<TClientConfig>; | ||
/** | ||
* Query id used to track query context data set internally. | ||
*/ | ||
contextId?: string; | ||
} | ||
@@ -23,0 +31,0 @@ /** |
import { Uri } from "./Uri"; | ||
import { ClientConfig } from "./Client"; | ||
import { QueryApiOptions, QueryApiResult } from "./Query"; | ||
@@ -11,3 +12,3 @@ /** Defines the frequency of API invocations for an API subscription */ | ||
/** Options required for an API subscription. */ | ||
export interface SubscribeOptions<TVariables extends Record<string, unknown> = Record<string, unknown>, TUri extends Uri | string = string> extends QueryApiOptions<TVariables, TUri> { | ||
export interface SubscribeOptions<TVariables extends Record<string, unknown> = Record<string, unknown>, TUri extends Uri | string = string, TClientConfig extends ClientConfig = ClientConfig> extends QueryApiOptions<TVariables, TUri, TClientConfig> { | ||
/** | ||
@@ -14,0 +15,0 @@ * The frequency of API invocations. Defaults to one query per minute. |
{ | ||
"name": "@web3api/core-js", | ||
"description": "Web3API Javascript Core", | ||
"version": "0.0.1-prealpha.56", | ||
"version": "0.0.1-prealpha.57", | ||
"license": "MIT", | ||
@@ -23,4 +23,4 @@ "repository": { | ||
"dependencies": { | ||
"@web3api/manifest-schemas": "0.0.1-prealpha.56", | ||
"@web3api/tracing-js": "0.0.1-prealpha.56", | ||
"@web3api/manifest-schemas": "0.0.1-prealpha.57", | ||
"@web3api/tracing-js": "0.0.1-prealpha.57", | ||
"graphql": "15.5.0", | ||
@@ -35,3 +35,3 @@ "graphql-tag": "2.10.4", | ||
"@types/semver": "7.3.8", | ||
"@web3api/os-js": "0.0.1-prealpha.56", | ||
"@web3api/os-js": "0.0.1-prealpha.57", | ||
"jest": "26.6.3", | ||
@@ -45,3 +45,3 @@ "json-schema-to-typescript": "10.1.3", | ||
}, | ||
"gitHead": "a52d3df30d0b3694fdf9b90ae6718753976e1a96", | ||
"gitHead": "949f31f0b0a1f8081d03f79ff3232566863511ae", | ||
"publishConfig": { | ||
@@ -48,0 +48,0 @@ "access": "public" |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
173338
2861
+ Added@web3api/manifest-schemas@0.0.1-prealpha.57(transitive)
+ Added@web3api/tracing-js@0.0.1-prealpha.57(transitive)
- Removed@web3api/manifest-schemas@0.0.1-prealpha.56(transitive)
- Removed@web3api/tracing-js@0.0.1-prealpha.56(transitive)