UNPKG

openblox

Version:

Roblox API Wrapper For Both Classic And OpenCloud APIs.

80 lines (79 loc) 4 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 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 });