UNPKG

scratch-storage

Version:

Load and store project and asset files for Scratch 3.0

85 lines (84 loc) 4.33 kB
import { type QueueOptions } from '@scratch/task-herder'; export declare const Headers: { new (init?: HeadersInit): Headers; prototype: Headers; }; /** * Metadata header names. * The enum value is the name of the associated header. */ export declare enum RequestMetadata { /** The ID of the project associated with this request */ ProjectId = "X-Project-ID", /** The ID of the project run associated with this request */ RunId = "X-Run-ID" } export type ScratchFetchOptions = { /** * The name of the queue to use for this request. * If absent, the hostname of the requested URL will be used as the queue name. * This is a Scratch-specific extension to the standard RequestInit type. */ queueName?: string; /** * The options to use when creating the queue for this request. * Ignored if a queue with the specified name already exists. */ queueOptions?: QueueOptions; }; /** * Check if there is any metadata to apply. * @returns {boolean} true if `metadata` has contents, or false if it is empty. */ export declare const hasMetadata: () => boolean; /** * Non-destructively merge any metadata state (if any) with the provided options object (if any). * If there is metadata state but no options object is provided, make a new object. * If there is no metadata state, return the provided options parameter without modification. * If there is metadata and an options object is provided, modify a copy and return it. * Headers in the provided options object may override headers generated from metadata state. * @param {RequestInit} [options] The initial request options. May be null or undefined. * @returns {RequestInit|undefined} the provided options parameter without modification, or a new options object. */ export declare const applyMetadata: (options?: globalThis.RequestInit) => globalThis.RequestInit | undefined; /** * Make a network request. * This is a wrapper for the global fetch method, adding some Scratch-specific functionality. * @param {RequestInfo|URL} resource The resource to fetch. * @param {RequestInit} [requestOptions] Optional object containing custom settings for this request. * @param {ScratchFetchOptions} [scratchOptions] Optional Scratch-specific settings for this request. * @see {@link https://developer.mozilla.org/docs/Web/API/fetch} for more about the fetch API. * @returns {Promise<Response>} A promise for the response to the request. */ export declare const scratchFetch: (resource: RequestInfo | URL, requestOptions?: globalThis.RequestInit, scratchOptions?: ScratchFetchOptions) => Promise<Response>; /** * Create a new fetch queue with the given identifier and option overrides. * If a queue with that identifier already exists, it will be replaced. * Queues are automatically created as needed with default options, so * there's no need to call this unless you need to override the default queue options. * WARNING: If the old queue has is not empty, it may continue to run its tasks in the background. * If you need to cancel fetch tasks in that queue before replacing it, do so manually first. * @param queueName The name of the queue to create. * @param overrides Optional overrides for the default QueueOptions for this specific queue. */ export declare const createQueue: (queueName: string, overrides: Partial<QueueOptions>) => void; /** * Set the value of a named request metadata item. * Setting the value to `null` or `undefined` will NOT remove the item. * Use `unsetMetadata` for that. * @param {RequestMetadata} name The name of the metadata item to set. * @param {any} value The value to set (will be converted to a string). */ export declare const setMetadata: (name: RequestMetadata, value: any) => void; /** * Remove a named request metadata item. * @param {RequestMetadata} name The name of the metadata item to remove. */ export declare const unsetMetadata: (name: RequestMetadata) => void; /** * Retrieve a named request metadata item. * Only for use in tests. At the time of writing, used in scratch-vm tests. * @param {RequestMetadata} name The name of the metadata item to retrieve. * @returns {string|null} The value of the metadata item, or `null` if it was not found. */ export declare const getMetadata: (name: RequestMetadata) => string | null;