openblox
Version:
Roblox API Wrapper For Both Classic And OpenCloud APIs.
80 lines (79 loc) • 4 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 luauExecution_exports = {};
__export(luauExecution_exports, {
executeLuau: () => executeLuau,
listLuauExecutionLogs: () => listLuauExecutionLogs,
luauExecutionTask: () => luauExecutionTask
});
module.exports = __toCommonJS(luauExecution_exports);
var import_apiGroup = require("../../apiGroup");
var import_file = require("../../../file");
var import_utils = require("../../../utils/utils");
const { createApiMethod } = (0, import_apiGroup.createApiGroup)({ name: "LuauExecution", baseUrl: "https://apis.roblox.com/cloud" });
const executedLuauPathRegex = /universes\/([0-9]+)\/places\/([0-9]+)\/versions\/([0-9]+)\/luau-execution-sessions\/([^/]+)\/tasks\/([^/]+)/;
const ensureScriptSource = async (script) => {
if (script instanceof Buffer) return script.toString("utf-8");
if (script.match(/\n/) || !script.match(/.luau?$/g)) return script;
return (await (0, import_file.readFile)(script)).toString("utf-8");
};
const combineScripts = async (scripts) => {
let combined = "";
for (let script of scripts) combined += `(function() ${await ensureScriptSource(script)} end)(); `;
return combined;
};
const addPathItemsToExecutedLuauResponse = (rawData) => (0, import_utils.cloneAndMutateObject)(rawData, (obj) => {
const splitPath = executedLuauPathRegex.exec(obj.path);
if (!splitPath) return;
obj.universeId = splitPath[1];
obj.placeId = splitPath[2];
obj.version = parseInt(splitPath[3]);
obj.sessionId = splitPath[4];
obj.taskId = splitPath[5];
});
const executeLuau = createApiMethod(async ({ universeId, placeId, version, script }) => ({
method: "POST",
path: `/v2/universes/${universeId}/places/${placeId}${version ? `/versions/${version}` : ""}/luau-execution-session-tasks`,
body: { script: Array.isArray(script) ? await combineScripts(script) : await ensureScriptSource(script) },
name: `executeLuau`,
formatRawDataFn: addPathItemsToExecutedLuauResponse
}));
const luauExecutionTask = createApiMethod(async ({ universeId, placeId, version, sessionId, taskId, view }) => ({
method: "GET",
path: `/v2/universes/${universeId}/places/${placeId}${version ? `/versions/${version}` : ""}${sessionId ? `/luau-execution-sessions/${sessionId}/tasks/${taskId}` : `/luau-execution-session-tasks/${taskId}`}`,
searchParams: { view },
name: `getLuauExecutionTask`,
formatRawDataFn: addPathItemsToExecutedLuauResponse
}));
const listLuauExecutionLogs = createApiMethod(async ({ universeId, placeId, version, taskId, sessionId, limit, cursor }) => {
return {
method: "GET",
path: `/v2/universes/${universeId}/places/${placeId}${version ? `/versions/${version}` : ""}${sessionId ? `/luau-execution-sessions/${sessionId}/tasks/${taskId}/logs` : `/luau-execution-session-tasks/${taskId}/logs`}`,
searchParams: { maxPageSize: limit, pageToken: cursor },
name: `listLuauExecutionLogs`,
formatRawDataFn: ({ luauExecutionSessionTaskLogs }) => luauExecutionSessionTaskLogs.map(addPathItemsToExecutedLuauResponse),
getCursorsFn: ({ nextPageToken }) => [null, nextPageToken]
};
});
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
executeLuau,
listLuauExecutionLogs,
luauExecutionTask
});
;