UNPKG

@storybooker/azure

Version:

StoryBooker Adapter for interacting with Azure services.

58 lines (56 loc) 2.77 kB
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs'); let __storybooker_core_constants = require("@storybooker/core/constants"); __storybooker_core_constants = require_rolldown_runtime.__toESM(__storybooker_core_constants); //#region src/cosmos-db.ts var AzureCosmosDatabaseService = class { #db; constructor(client, dbName = __storybooker_core_constants.SERVICE_NAME) { this.init = async (options) => { await this.#db.client.databases.createIfNotExists({ id: this.#db.id }, { abortSignal: options.abortSignal }); }; this.listCollections = async (options) => { return (await this.#db.containers.readAll({ abortSignal: options.abortSignal }).fetchAll()).resources.map((resource) => resource.id); }; this.createCollection = async (collectionId, options) => { await this.#db.containers.create({ id: collectionId }, { abortSignal: options.abortSignal }); }; this.hasCollection = async (collectionId, options) => { try { return !!(await this.#db.container(collectionId).read({ abortSignal: options.abortSignal })).resource; } catch { return false; } }; this.deleteCollection = async (collectionId, options) => { await this.#db.container(collectionId).delete({ abortSignal: options.abortSignal }); }; this.listDocuments = async (collectionId, _listOptions, options) => { return (await this.#db.container(collectionId).items.readAll({ abortSignal: options.abortSignal }).fetchAll()).resources; }; this.getDocument = async (collectionId, documentId, options) => { const document = (await this.#db.container(collectionId).item(documentId).read({ abortSignal: options.abortSignal })).resource; document.id = documentId; return document; }; this.createDocument = async (collectionId, documentData, options) => { await this.#db.container(collectionId).items.create(documentData, { abortSignal: options.abortSignal }); }; this.hasDocument = async (collectionId, documentId, options) => { return !!(await this.#db.container(collectionId).item(documentId).read({ abortSignal: options.abortSignal })).resource; }; this.deleteDocument = async (collectionId, documentId, options) => { await this.#db.container(collectionId).item(documentId).delete({ abortSignal: options.abortSignal }); }; this.updateDocument = async (collectionId, documentId, documentData, options) => { await this.#db.container(collectionId).item(documentId).patch({ operations: Object.entries(documentData).map(([key, value]) => ({ op: "replace", path: `/${key}`, value })) }, { abortSignal: options.abortSignal }); }; this.#db = client.database(dbName); } }; //#endregion exports.AzureCosmosDatabaseService = AzureCosmosDatabaseService; //# sourceMappingURL=cosmos-db.cjs.map