@settlemint/sdk-portal
Version:
Portal API client module for SettleMint SDK, providing access to smart contract portal services and APIs
31 lines • 1.12 kB
JavaScript
// src/portal.ts
import { ensureServer } from "@settlemint/sdk-utils/runtime";
import { ApplicationAccessTokenSchema, UrlOrPathSchema, validate } from "@settlemint/sdk-utils/validation";
import { initGraphQLTada } from "gql.tada";
import { GraphQLClient } from "graphql-request";
import { z } from "zod";
import { readFragment } from "gql.tada";
var ClientOptionsSchema = z.object({
instance: UrlOrPathSchema,
accessToken: ApplicationAccessTokenSchema,
cache: z.enum(["default", "force-cache", "no-cache", "no-store", "only-if-cached", "reload"]).optional()
});
function createPortalClient(options, clientOptions) {
ensureServer();
const validatedOptions = validate(ClientOptionsSchema, options);
const graphql = initGraphQLTada();
const fullUrl = new URL(validatedOptions.instance).toString();
return {
client: new GraphQLClient(fullUrl, {
...clientOptions,
headers: { ...clientOptions?.headers ?? {}, "x-auth-token": validatedOptions.accessToken }
}),
graphql
};
}
export {
ClientOptionsSchema,
createPortalClient,
readFragment
};
//# sourceMappingURL=portal.mjs.map