UNPKG

@azure-utils/durable-functions

Version:
65 lines (63 loc) 2.69 kB
import { requestAzureFunctionsDurableTaskWebhookOrThrow } from "./durable-webhook-CL8hkdP6.mjs"; //#region src/durable-entities-api.ts /** * An object that contains all the functions for interacting with Azure Functions Durable Entity. * * @throws Each method can throw an error if the operation fails. */ const durableEntities = { list: listAzureFunctionsEntitiesOrThrow, getState: getAzureFunctionsEntityStateOrThrow, signal: signalAzureFunctionsEntityOrThrow }; /** * Sends a one-way operation message to a Durable Entity. If the entity doesn't exist, it will be created automatically. */ async function signalAzureFunctionsEntityOrThrow(options, requestOptions) { const { entityKey, entityName, operationInput, operationName } = options; const searchParams = new URLSearchParams(); if (operationName) searchParams.set("op", operationName); await requestAzureFunctionsDurableTaskWebhookOrThrow(`entities/${entityName}/${entityKey}`, { ...requestOptions, searchParams, body: JSON.stringify(operationInput), method: "POST" }); return; } /** * Gets the state of the specified entity. */ async function getAzureFunctionsEntityStateOrThrow(options, requestOptions) { const { entityKey, entityName } = options; const response = await requestAzureFunctionsDurableTaskWebhookOrThrow(`entities/${entityName}/${entityKey}`, requestOptions); return response.json(); } /** * Query and list Azure Functions Entity Instances. */ async function listAzureFunctionsEntitiesOrThrow(options, requestOptions) { const { entityName = "", fetchState, lastOperationTimeFrom, lastOperationTimeTo, top, continuationToken } = options; const searchParams = new URLSearchParams(); if (fetchState) searchParams.set("fetchState", "true"); if (lastOperationTimeFrom) searchParams.set("lastOperationTimeFrom", lastOperationTimeFrom.toISOString()); if (lastOperationTimeTo) searchParams.set("lastOperationTimeTo", lastOperationTimeTo.toISOString()); if (top) searchParams.set("top", top.toString()); const continuationTokenHeader = "x-ms-continuation-token"; const headers = new Headers(); if (continuationToken) headers.set(continuationTokenHeader, continuationToken); const response = await requestAzureFunctionsDurableTaskWebhookOrThrow(`entities/${entityName}`, { ...requestOptions, searchParams, headers }); const instances = await response.json(); return { instances, top: top ?? null, continuationToken: response.headers.get(continuationTokenHeader) }; } //#endregion export { durableEntities, getAzureFunctionsEntityStateOrThrow, listAzureFunctionsEntitiesOrThrow, signalAzureFunctionsEntityOrThrow }; //# sourceMappingURL=durable-entities-api-C8E-23d0.mjs.map