@azure-utils/durable-functions
Version:
Utilities for Azure Durable functions.
88 lines (86 loc) • 3.23 kB
JavaScript
const require_durable_webhook = require('./durable-webhook-D21t0KtE.cjs');
//#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 require_durable_webhook.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 require_durable_webhook.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 require_durable_webhook.requestAzureFunctionsDurableTaskWebhookOrThrow(`entities/${entityName}`, {
...requestOptions,
searchParams,
headers
});
const instances = await response.json();
return {
instances,
top: top ?? null,
continuationToken: response.headers.get(continuationTokenHeader)
};
}
//#endregion
Object.defineProperty(exports, 'durableEntities', {
enumerable: true,
get: function () {
return durableEntities;
}
});
Object.defineProperty(exports, 'getAzureFunctionsEntityStateOrThrow', {
enumerable: true,
get: function () {
return getAzureFunctionsEntityStateOrThrow;
}
});
Object.defineProperty(exports, 'listAzureFunctionsEntitiesOrThrow', {
enumerable: true,
get: function () {
return listAzureFunctionsEntitiesOrThrow;
}
});
Object.defineProperty(exports, 'signalAzureFunctionsEntityOrThrow', {
enumerable: true,
get: function () {
return signalAzureFunctionsEntityOrThrow;
}
});
//# sourceMappingURL=durable-entities-api-dPDbDq65.cjs.map