openblox
Version:
Roblox API Wrapper For Both Classic And OpenCloud APIs.
151 lines (150 loc) • 8.26 kB
JavaScript
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
});
;