UNPKG

@vercel/sdk

Version:

<p align="center"> <a href="https://vercel.com"> <img src="https://assets.vercel.com/image/upload/v1588805858/repositories/vercel/logo.png" height="96"> <h3 align="center">Vercel</h3> </a> <p align="center">Develop. Preview. Ship.</p> </p>

182 lines (167 loc) 5.29 kB
/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { VercelCore } from "../core.js"; import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js"; import { matchStatusCode } from "../lib/http.js"; import * as M from "../lib/matchers.js"; import { compactMap } from "../lib/primitives.js"; import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; import { AssignAliasRequest, AssignAliasRequest$outboundSchema, AssignAliasResponseBody, AssignAliasResponseBody$inboundSchema, } from "../models/assignaliasop.js"; import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError, } from "../models/httpclienterrors.js"; import { ResponseValidationError } from "../models/responsevalidationerror.js"; import { SDKValidationError } from "../models/sdkvalidationerror.js"; import { VercelError } from "../models/vercelerror.js"; import { APICall, APIPromise } from "../types/async.js"; import { Result } from "../types/fp.js"; /** * Assign an Alias * * @remarks * Creates a new alias for the deployment resolved from the given deployment or alias ID or URL. The authenticated user or team must own this deployment. If the desired alias is already assigned to another deployment, then it will be removed from the old deployment and assigned to the new one. * * If set, this operation will use {@link Security.bearerToken} from the global security. */ export function aliasesAssignAlias( client: VercelCore, request: AssignAliasRequest, options?: RequestOptions, ): APIPromise< Result< AssignAliasResponseBody, | VercelError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError > > { return new APIPromise($do( client, request, options, )); } async function $do( client: VercelCore, request: AssignAliasRequest, options?: RequestOptions, ): Promise< [ Result< AssignAliasResponseBody, | VercelError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError >, APICall, ] > { const parsed = safeParse( request, (value) => AssignAliasRequest$outboundSchema.parse(value), "Input validation failed", ); if (!parsed.ok) { return [parsed, { status: "invalid" }]; } const payload = parsed.value; const body = encodeJSON("body", payload.RequestBody, { explode: true }); const pathParams = { id: encodeSimple("id", payload.id, { explode: false, charEncoding: "percent", }), }; const path = pathToFunc("/v2/deployments/{id}/aliases")(pathParams); const query = encodeFormQuery({ "slug": payload.slug, "teamId": payload.teamId, }); const headers = new Headers(compactMap({ "Content-Type": "application/json", Accept: "application/json", })); const secConfig = await extractSecurity(client._options.bearerToken); const securityInput = secConfig == null ? {} : { bearerToken: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput, [0]); const context = { options: client._options, baseURL: options?.serverURL ?? client._baseURL ?? "", operationID: "assignAlias", oAuth2Scopes: null, resolvedSecurity: requestSecurity, securitySource: client._options.bearerToken, retryConfig: options?.retries || client._options.retryConfig || { strategy: "none" }, retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], }; const requestRes = client._createRequest(context, { security: requestSecurity, method: "POST", baseURL: options?.serverURL, path: path, headers: headers, query: query, body: body, userAgent: client._options.userAgent, timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, }, options); if (!requestRes.ok) { return [requestRes, { status: "invalid" }]; } const req = requestRes.value; const doResult = await client._do(req, { context, isErrorStatusCode: (statusCode: number) => matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), retryConfig: context.retryConfig, retryCodes: context.retryCodes, }); if (!doResult.ok) { return [doResult, { status: "request-error", request: req }]; } const response = doResult.value; const [result] = await M.match< AssignAliasResponseBody, | VercelError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError >( M.json(200, AssignAliasResponseBody$inboundSchema), M.fail([400, 401, 402, 403, 404, 409, "4XX"]), M.fail("5XX"), )(response, req); if (!result.ok) { return [result, { status: "complete", request: req, response }]; } return [result, { status: "complete", request: req, response }]; }