// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../../../../core/resource'; import * as WorkersAPI from '../../../../workers/workers'; import * as ScriptsAPI from '../../../../workers/scripts/scripts'; import { APIPromise } from '../../../../../core/api-promise'; import { type Uploadable } from '../../../../../core/uploads'; import { buildHeaders } from '../../../../../internal/headers'; import { RequestOptions } from '../../../../../internal/request-options'; import { multipartFormRequestOptions } from '../../../../../internal/uploads'; import { path } from '../../../../../internal/utils/path'; export class BaseContent extends APIResource { static override readonly _key: readonly [ 'workersForPlatforms', 'dispatch', 'namespaces', 'scripts', 'content', ] = Object.freeze(['workersForPlatforms', 'dispatch', 'namespaces', 'scripts', 'content'] as const); /** * Put script content for a script uploaded to a Workers for Platforms namespace. * * @example * ```ts * const script = * await client.workersForPlatforms.dispatch.namespaces.scripts.content.update( * 'this-is_my_script-01', * { * account_id: '023e105f4ecef8ad9ca31a8372d0c353', * dispatch_namespace: 'my-dispatch-namespace', * metadata: {}, * }, * ); * ``` */ update( scriptName: string, params: ContentUpdateParams, options?: RequestOptions, ): APIPromise { const { account_id, dispatch_namespace, 'CF-WORKER-BODY-PART': cfWorkerBodyPart, 'CF-WORKER-MAIN-MODULE-PART': cfWorkerMainModulePart, ...body } = params; return ( this._client.put( path`/accounts/${account_id}/workers/dispatch/namespaces/${dispatch_namespace}/scripts/${scriptName}/content`, multipartFormRequestOptions( { body, ...options, headers: buildHeaders([ { ...(cfWorkerBodyPart != null ? { 'CF-WORKER-BODY-PART': cfWorkerBodyPart } : undefined), ...(cfWorkerMainModulePart != null ? { 'CF-WORKER-MAIN-MODULE-PART': cfWorkerMainModulePart } : undefined), }, options?.headers, ]), }, this._client, ), ) as APIPromise<{ result: ScriptsAPI.Script }> )._thenUnwrap((obj) => obj.result); } /** * Fetch script content from a script uploaded to a Workers for Platforms * namespace. * * @example * ```ts * const content = * await client.workersForPlatforms.dispatch.namespaces.scripts.content.get( * 'this-is_my_script-01', * { * account_id: '023e105f4ecef8ad9ca31a8372d0c353', * dispatch_namespace: 'my-dispatch-namespace', * }, * ); * * const data = await content.blob(); * console.log(data); * ``` */ get(scriptName: string, params: ContentGetParams, options?: RequestOptions): APIPromise { const { account_id, dispatch_namespace } = params; return this._client.get( path`/accounts/${account_id}/workers/dispatch/namespaces/${dispatch_namespace}/scripts/${scriptName}/content`, { ...options, headers: buildHeaders([{ Accept: 'string' }, options?.headers]), __binaryResponse: true }, ); } } export class Content extends BaseContent {} export interface ContentUpdateParams { /** * Path param: Identifier. */ account_id: string; /** * Path param: Name of the Workers for Platforms dispatch namespace. */ dispatch_namespace: string; /** * Body param: JSON-encoded metadata about the uploaded parts and Worker * configuration. */ metadata: WorkersAPI.WorkerMetadataParam; /** * Body param: An array of modules (often JavaScript files) comprising a Worker * script. At least one module must be present and referenced in the metadata as * `main_module` or `body_part` by filename.
Possible Content-Type(s) are: * `application/javascript+module`, `text/javascript+module`, * `application/javascript`, `text/javascript`, `text/x-python`, * `text/x-python-requirement`, `application/wasm`, `text/plain`, * `application/octet-stream`, `application/source-map`. */ files?: Array; /** * Header param: The multipart name of a script upload part containing script * content in service worker format. Alternative to including in a metadata part. */ 'CF-WORKER-BODY-PART'?: string; /** * Header param: The multipart name of a script upload part containing script * content in es module format. Alternative to including in a metadata part. */ 'CF-WORKER-MAIN-MODULE-PART'?: string; } export interface ContentGetParams { /** * Identifier. */ account_id: string; /** * Name of the Workers for Platforms dispatch namespace. */ dispatch_namespace: string; } export declare namespace Content { export { type ContentUpdateParams as ContentUpdateParams, type ContentGetParams as ContentGetParams }; }