UNPKG

openblox

Version:

Roblox API Wrapper For Both Classic And OpenCloud APIs.

151 lines (150 loc) 8.26 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var standardDataStores_V1_exports = {}; __export(standardDataStores_V1_exports, { deleteStandardDatastoreEntry: () => deleteStandardDatastoreEntry, incrementStandardDatastoreEntry: () => incrementStandardDatastoreEntry, listStandardDatastoreEntryVersions: () => listStandardDatastoreEntryVersions, listStandardDatastores: () => listStandardDatastores, setStandardDatastoreEntry: () => setStandardDatastoreEntry, standardDatastoreEntry: () => standardDatastoreEntry, standardDatastoreEntryOfVersion: () => standardDatastoreEntryOfVersion, standardDatastoreKeys: () => standardDatastoreKeys }); module.exports = __toCommonJS(standardDataStores_V1_exports); var import_apiGroup = require("../../apiGroup"); var import_utils = require("../../../utils/utils"); var import_crypto = require("../../../crypto"); const { createApiMethod } = (0, import_apiGroup.createApiGroup)({ name: "StandardDatastores_V1", baseUrl: "https://apis.roblox.com/datastores" }); const listStandardDatastores = createApiMethod(async ({ universeId, prefix, limit, cursor }) => ({ method: "GET", path: `/v1/universes/${universeId}/standard-datastores`, searchParams: { prefix, limit, cursor }, name: `listStandardDatastores`, formatRawDataFn: ({ datastores }) => (0, import_utils.cloneAndMutateObject)(datastores, (obj) => obj.forEach((store) => store.createdTime = new Date(store.createdTime))), getCursorsFn: ({ nextPageCursor }) => [null, nextPageCursor] })); const standardDatastoreKeys = createApiMethod(async ({ universeId, datastoreName, scope, allScopes, limit, prefix, cursor }) => ({ method: "GET", path: `/v1/universes/${universeId}/standard-datastores/datastore/entries`, searchParams: { datastoreName, scope, allScopes, prefix, limit, cursor }, name: `standardDatastoreKeys`, formatRawDataFn: ({ keys }) => keys.map((key) => key.key), getCursorsFn: (rawData) => [null, rawData.nextPageCursor] })); const standardDatastoreEntry = createApiMethod(async ({ universeId, datastoreName, entryKey, scope }) => ({ method: "GET", path: `/v1/universes/${universeId}/standard-datastores/datastore/entries/entry`, searchParams: { datastoreName, entryKey, scope }, name: `standardDatastoreKeys`, formatRawDataFn: (rawData, { headers }) => { const entryCreatedTime = headers?.get("roblox-entry-created-time"), entryVersionCreatedTime = headers?.get("roblox-entry-version-created-time"), entryAttributes = headers?.get("roblox-entry-attributes"), entryUserIds = headers?.get("roblox-entry-userids"), contentMD5 = headers?.get("content-md5"); return { entry: rawData, checksumsMatch: (0, import_crypto.md5Checksum)(JSON.stringify(rawData)) == contentMD5, metadata: { contentMD5, entryVersion: headers?.get("roblox-entry-version"), entryCreatedTime: entryCreatedTime && new Date(entryCreatedTime), entryVersionCreatedTime: entryVersionCreatedTime && new Date(entryVersionCreatedTime), entryAttributes: entryAttributes && JSON.parse(entryAttributes), entryUserIds: entryUserIds && JSON.parse(entryUserIds) } }; } })); const setStandardDatastoreEntry = createApiMethod(async ({ universeId, datastoreName, entryKey, entryValue, scope, matchVersion, exclusiveCreate, entryAttributes, entryUserIds }) => { const entryValueStr = typeof entryValue === "object" ? JSON.stringify(entryValue) : entryValue; return { method: "POST", path: `/v1/universes/${universeId}/standard-datastores/datastore/entries/entry`, searchParams: { datastoreName, entryKey, scope, matchVersion, exclusiveCreate }, body: entryValueStr, headers: { "roblox-entry-attributes": entryAttributes ? JSON.stringify(entryAttributes) : void 0, "roblox-entry-userids": entryUserIds ? `[${entryUserIds?.join(",")}]` : void 0, "content-md5": (0, import_crypto.md5Checksum)(entryValueStr) }, name: `setStandardDatastoreEntry`, formatRawDataFn: (rawData) => (0, import_utils.cloneAndMutateObject)(rawData, (obj) => { obj.createdTime = new Date(obj.createdTime); obj.objectCreatedTime = new Date(obj.objectCreatedTime); }) }; }); const deleteStandardDatastoreEntry = createApiMethod(async ({ universeId, datastoreName, entryKey, scope }) => ({ method: "DELETE", path: `/v1/universes/${universeId}/standard-datastores/datastore/entries/entry`, searchParams: { datastoreName, entryKey, scope }, name: `deleteStandardDatastoreEntry`, formatRawDataFn: (rawData) => rawData === "" ? true : false })); const incrementStandardDatastoreEntry = createApiMethod(async ({ universeId, datastoreName, entryKey, scope, incrementBy, entryAttributes, entryUserIds }) => ({ method: "POST", path: `/v1/universes/${universeId}/standard-datastores/datastore/entries/entry/increment`, searchParams: { datastoreName, entryKey, scope, incrementBy }, headers: { "roblox-entry-attributes": entryAttributes ? JSON.stringify(entryAttributes) : void 0, "roblox-entry-userids": entryUserIds ? `[${entryUserIds?.join(",")}]` : void 0 }, name: `incrementStandardDatastoreEntry` })); const standardDatastoreEntryOfVersion = createApiMethod(async ({ universeId, datastoreName, entryKey, scope, versionId }) => ({ method: "GET", path: `/v1/universes/${universeId}/standard-datastores/datastore/entries/entry/versions/version`, searchParams: { datastoreName, entryKey, versionId, scope }, name: `standardDatastoreEntryOfVersion`, formatRawDataFn: (rawData, { headers }) => { const entryCreatedTime = headers?.get("roblox-entry-created-time"), entryVersionCreatedTime = headers?.get("roblox-entry-version-created-time"), entryAttributes = headers?.get("roblox-entry-attributes"), entryUserIds = headers?.get("roblox-entry-userids"), contentMD5 = headers?.get("content-md5"); return { entry: rawData, checksumsMatch: (0, import_crypto.md5Checksum)(JSON.stringify(rawData)) == contentMD5, metadata: { contentMD5, entryVersion: headers?.get("roblox-entry-version"), entryCreatedTime: entryCreatedTime && new Date(entryCreatedTime), entryVersionCreatedTime: entryVersionCreatedTime && new Date(entryVersionCreatedTime), entryAttributes: entryAttributes && JSON.parse(entryAttributes), entryUserIds: entryUserIds && JSON.parse(entryUserIds) } }; } })); const listStandardDatastoreEntryVersions = createApiMethod(async ({ universeId, datastoreName, entryKey, scope, startTime, endTime, sortOrder, limit, cursor }) => ({ method: "GET", path: `/v1/universes/${universeId}/standard-datastores/datastore/entries/entry/versions`, searchParams: { datastoreName, entryKey, scope, startTime, endTime, sortOrder, limit, cursor }, name: `listStandardDatastoreEntryVersions`, formatRawDataFn: ({ versions }) => (0, import_utils.cloneAndMutateObject)(versions, (obj) => obj.forEach((versionData) => { versionData.createdTime = new Date(versionData.createdTime); versionData.objectCreatedTime = new Date(versionData.objectCreatedTime); })), getCursorsFn: ({ nextPageCursor }) => [null, nextPageCursor] })); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { deleteStandardDatastoreEntry, incrementStandardDatastoreEntry, listStandardDatastoreEntryVersions, listStandardDatastores, setStandardDatastoreEntry, standardDatastoreEntry, standardDatastoreEntryOfVersion, standardDatastoreKeys });