@colyseus/tools 0.16.0-preview.1 → 0.16.0-preview.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.d.ts +2 -2
- package/build/index.js +3 -29
- package/build/index.js.map +3 -3
- package/build/index.mjs +15 -33
- package/build/index.mjs.map +2 -2
- package/build/loadenv.js.map +1 -1
- package/build/loadenv.mjs +9 -1
- package/build/loadenv.mjs.map +2 -2
- package/package.json +9 -3
package/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
|
@@ -32,7 +32,7 @@ __export(src_exports, {
|
|
|
32
32
|
listen: () => listen
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(src_exports);
|
|
35
|
-
var import_loadenv = require("./loadenv");
|
|
35
|
+
var import_loadenv = require("./loadenv.js");
|
|
36
36
|
var import_os = __toESM(require("os"));
|
|
37
37
|
var import_http = __toESM(require("http"));
|
|
38
38
|
var import_cors = __toESM(require("cors"));
|
|
@@ -40,16 +40,9 @@ var import_express = __toESM(require("express"));
|
|
|
40
40
|
var import_node_os_utils = __toESM(require("node-os-utils"));
|
|
41
41
|
var import_core = require("@colyseus/core");
|
|
42
42
|
var import_ws_transport = require("@colyseus/ws-transport");
|
|
43
|
-
let uWebSocketsExpressCompatibility = void 0;
|
|
44
|
-
try {
|
|
45
|
-
uWebSocketsExpressCompatibility = require("uwebsockets-express").default;
|
|
46
|
-
} catch (e) {
|
|
47
|
-
}
|
|
48
43
|
let BunWebSockets = void 0;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
} catch (e) {
|
|
52
|
-
}
|
|
44
|
+
import("@colyseus/bun-websockets").then((module2) => BunWebSockets = module2).catch(() => {
|
|
45
|
+
});
|
|
53
46
|
const ALLOWED_KEYS = {
|
|
54
47
|
"displayLogs": "boolean",
|
|
55
48
|
"options": "object",
|
|
@@ -145,25 +138,6 @@ async function getTransport(options) {
|
|
|
145
138
|
if (transport["expressApp"]) {
|
|
146
139
|
app = transport["expressApp"];
|
|
147
140
|
}
|
|
148
|
-
if (options.initializeExpress) {
|
|
149
|
-
if (transport["app"]) {
|
|
150
|
-
if (typeof uWebSocketsExpressCompatibility === "function") {
|
|
151
|
-
if (options.displayLogs) {
|
|
152
|
-
import_core.logger.info("\u2705 uWebSockets.js + Express compatibility enabled");
|
|
153
|
-
}
|
|
154
|
-
server = void 0;
|
|
155
|
-
app = uWebSocketsExpressCompatibility(transport["app"]);
|
|
156
|
-
} else {
|
|
157
|
-
if (options.displayLogs) {
|
|
158
|
-
import_core.logger.warn("");
|
|
159
|
-
import_core.logger.warn("\u274C uWebSockets.js + Express compatibility mode couldn't be loaded, run the following command to fix:");
|
|
160
|
-
import_core.logger.warn("\u{1F449} npm install --save uwebsockets-express");
|
|
161
|
-
import_core.logger.warn("");
|
|
162
|
-
}
|
|
163
|
-
app = void 0;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
141
|
if (app) {
|
|
168
142
|
app.use((0, import_cors.default)({ origin: true, credentials: true }));
|
|
169
143
|
app.use(import_express.default.json());
|
package/build/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAO;AACP,gBAAe;AACf,kBAAiB;AACjB,kBAAiB;AACjB,qBAAoB;AACpB,2BAAoB;AACpB,kBAAqE;AACrE,0BAAmC;
|
|
6
|
-
"names": ["os", "options", "express", "http", "cors", "osUtils"]
|
|
4
|
+
"sourcesContent": ["import './loadenv.js';\nimport os from 'os';\nimport http from 'http';\nimport cors from 'cors';\nimport express from 'express';\nimport osUtils from 'node-os-utils';\nimport { logger, Server, ServerOptions, Transport, matchMaker } from '@colyseus/core';\nimport { WebSocketTransport } from '@colyseus/ws-transport';\n\nlet BunWebSockets: any = undefined;\n\n// @ts-ignore\nimport('@colyseus/bun-websockets')\n .then((module) => BunWebSockets = module)\n .catch(() => { });\n\nexport interface ConfigOptions {\n options?: ServerOptions,\n displayLogs?: boolean,\n getId?: () => string,\n initializeTransport?: (options: any) => Transport,\n initializeExpress?: (app: express.Express) => void,\n initializeGameServer?: (app: Server) => void,\n beforeListen?: () => void,\n}\n\nconst ALLOWED_KEYS: { [key in keyof ConfigOptions]: string } = {\n 'displayLogs': \"boolean\",\n 'options': \"object\",\n 'getId': \"function\",\n 'initializeTransport': \"function\",\n 'initializeExpress': \"function\",\n 'initializeGameServer': \"function\",\n 'beforeListen': \"function\"\n};\n\nexport default function (options: ConfigOptions) {\n for (const option in options) {\n if (!ALLOWED_KEYS[option]) {\n throw new Error(`\u274C Invalid option '${option}'. Allowed options are: ${Object.keys(ALLOWED_KEYS).join(\", \")}`);\n }\n if(options[option] !== undefined && typeof(options[option]) !== ALLOWED_KEYS[option]) {\n throw new Error(`\u274C Invalid type for ${option}: please provide a ${ALLOWED_KEYS[option]} value.`);\n }\n }\n\n return options;\n}\n\n/**\n * Listen on your development environment\n * @param options Application options\n * @param port Port number to bind Colyseus + Express\n */\nexport async function listen(\n options: ConfigOptions,\n port: number = Number(process.env.PORT || 2567),\n) {\n const serverOptions = options.options || {};\n options.displayLogs = options.displayLogs ?? true;\n\n // Force 2567 port on Colyseus Cloud\n if (process.env.COLYSEUS_CLOUD !== undefined) {\n port = 2567;\n }\n\n //\n // Handling multiple processes\n // Use NODE_APP_INSTANCE to play nicely with pm2\n //\n const processNumber = Number(process.env.NODE_APP_INSTANCE || \"0\");\n port += processNumber;\n\n // automatically configure for production under Colyseus Cloud\n if (process.env.COLYSEUS_CLOUD !== undefined) {\n // special configuration is required when using multiple processes\n const useRedisConfig = (os.cpus().length > 1) || (process.env.REDIS_URI !== undefined);\n\n if (!serverOptions.driver && useRedisConfig) {\n let RedisDriver: any = undefined;\n try {\n RedisDriver = require('@colyseus/redis-driver').RedisDriver;\n serverOptions.driver = new RedisDriver(process.env.REDIS_URI);\n } catch (e) {\n logger.warn(\"\");\n logger.warn(\"\u274C could not initialize RedisDriver.\");\n logger.warn(\"\uD83D\uDC49 npm install --save @colyseus/redis-driver\");\n logger.warn(\"\");\n }\n }\n\n if (!serverOptions.presence && useRedisConfig) {\n let RedisPresence: any = undefined;\n try {\n RedisPresence = require('@colyseus/redis-presence').RedisPresence;\n serverOptions.presence = new RedisPresence(process.env.REDIS_URI);\n } catch (e) {\n logger.warn(\"\");\n logger.warn(\"\u274C could not initialize RedisPresence.\");\n logger.warn(\"\uD83D\uDC49 npm install --save @colyseus/redis-presence\");\n logger.warn(\"\");\n }\n }\n\n if (useRedisConfig) {\n // force \"publicAddress\" when more than 1 process is available\n serverOptions.publicAddress = process.env.SUBDOMAIN + \".\" + process.env.SERVER_NAME;\n\n // nginx is responsible for forwarding /{port}/ to this process\n serverOptions.publicAddress += \"/\" + port;\n }\n }\n\n const transport = await getTransport(options);\n const gameServer = new Server({\n ...serverOptions,\n transport,\n });\n await options.initializeGameServer?.(gameServer);\n await matchMaker.onReady;\n await options.beforeListen?.();\n\n if (process.env.COLYSEUS_CLOUD !== undefined) {\n // listening on socket\n // @ts-ignore\n await gameServer.listen(`/run/colyseus/${port}.sock`);\n\n } else {\n // listening on port\n await gameServer.listen(port);\n }\n\n // notify process manager (production)\n if (typeof(process.send) === \"function\") {\n process.send('ready');\n }\n\n if (options.displayLogs) {\n logger.info(`\u2694\uFE0F Listening on http://localhost:${port}`);\n }\n return gameServer;\n}\n\n\nexport async function getTransport(options: ConfigOptions) {\n let transport: Transport;\n\n if (!options.initializeTransport) {\n if (BunWebSockets !== undefined) {\n // @colyseus/bun-websockets\n options.initializeTransport = (options: any) => new BunWebSockets.BunWebSockets(options);\n\n } else {\n // use WebSocketTransport by default\n options.initializeTransport = (options: any) => new WebSocketTransport(options);\n }\n }\n\n let app: express.Express | undefined = express();\n let server = http.createServer(app);\n\n transport = await options.initializeTransport({ server, app });\n\n //\n // TODO: refactor me!\n // BunWebSockets: There's no need to instantiate \"app\" and \"server\" above\n //\n if (transport['expressApp']) {\n app = transport['expressApp'];\n }\n\n if (app) {\n // Enable CORS\n app.use(cors({ origin: true, credentials: true, }));\n\n // Enable JSON parsing.\n app.use(express.json());\n\n if (options.initializeExpress) {\n await options.initializeExpress(app);\n }\n\n // health check for load balancers\n app.get(\"/__healthcheck\", (req, res) => {\n res.status(200).end();\n });\n\n app.get(\"/__cloudstats\", async (req, res) => {\n if (\n process.env.CLOUD_SECRET &&\n req.headers.authorization !== process.env.CLOUD_SECRET\n ) {\n res.status(401).end();\n return;\n }\n\n // count rooms per process\n const rooms = (await matchMaker.stats.fetchAll()).reduce((prev, curr) => {\n return prev + curr.roomCount;\n }, 0);\n\n const ccu = await matchMaker.stats.getGlobalCCU();\n const mem = await osUtils.mem.used();\n const cpu = (await osUtils.cpu.usage()) / 100;\n\n res.json({\n version: 1,\n mem: (mem.usedMemMb / mem.totalMemMb),\n cpu,\n ccu,\n rooms,\n });\n });\n\n if (options.displayLogs) {\n logger.info(\"\u2705 Express initialized\");\n }\n }\n\n return transport;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["module", "os", "options", "express", "http", "cors", "osUtils"]
|
|
7
7
|
}
|
package/build/index.mjs
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
+
}) : x)(function(x) {
|
|
4
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
// packages/tools/src/index.ts
|
|
9
|
+
import "./loadenv.mjs";
|
|
2
10
|
import os from "os";
|
|
3
11
|
import http from "http";
|
|
4
12
|
import cors from "cors";
|
|
@@ -6,17 +14,10 @@ import express from "express";
|
|
|
6
14
|
import osUtils from "node-os-utils";
|
|
7
15
|
import { logger, Server, matchMaker } from "@colyseus/core";
|
|
8
16
|
import { WebSocketTransport } from "@colyseus/ws-transport";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
let BunWebSockets = void 0;
|
|
15
|
-
try {
|
|
16
|
-
BunWebSockets = require("@colyseus/bun-websockets");
|
|
17
|
-
} catch (e) {
|
|
18
|
-
}
|
|
19
|
-
const ALLOWED_KEYS = {
|
|
17
|
+
var BunWebSockets = void 0;
|
|
18
|
+
import("@colyseus/bun-websockets").then((module) => BunWebSockets = module).catch(() => {
|
|
19
|
+
});
|
|
20
|
+
var ALLOWED_KEYS = {
|
|
20
21
|
"displayLogs": "boolean",
|
|
21
22
|
"options": "object",
|
|
22
23
|
"getId": "function",
|
|
@@ -49,7 +50,7 @@ async function listen(options, port = Number(process.env.PORT || 2567)) {
|
|
|
49
50
|
if (!serverOptions.driver && useRedisConfig) {
|
|
50
51
|
let RedisDriver = void 0;
|
|
51
52
|
try {
|
|
52
|
-
RedisDriver =
|
|
53
|
+
RedisDriver = __require("@colyseus/redis-driver").RedisDriver;
|
|
53
54
|
serverOptions.driver = new RedisDriver(process.env.REDIS_URI);
|
|
54
55
|
} catch (e) {
|
|
55
56
|
logger.warn("");
|
|
@@ -61,7 +62,7 @@ async function listen(options, port = Number(process.env.PORT || 2567)) {
|
|
|
61
62
|
if (!serverOptions.presence && useRedisConfig) {
|
|
62
63
|
let RedisPresence = void 0;
|
|
63
64
|
try {
|
|
64
|
-
RedisPresence =
|
|
65
|
+
RedisPresence = __require("@colyseus/redis-presence").RedisPresence;
|
|
65
66
|
serverOptions.presence = new RedisPresence(process.env.REDIS_URI);
|
|
66
67
|
} catch (e) {
|
|
67
68
|
logger.warn("");
|
|
@@ -111,25 +112,6 @@ async function getTransport(options) {
|
|
|
111
112
|
if (transport["expressApp"]) {
|
|
112
113
|
app = transport["expressApp"];
|
|
113
114
|
}
|
|
114
|
-
if (options.initializeExpress) {
|
|
115
|
-
if (transport["app"]) {
|
|
116
|
-
if (typeof uWebSocketsExpressCompatibility === "function") {
|
|
117
|
-
if (options.displayLogs) {
|
|
118
|
-
logger.info("\u2705 uWebSockets.js + Express compatibility enabled");
|
|
119
|
-
}
|
|
120
|
-
server = void 0;
|
|
121
|
-
app = uWebSocketsExpressCompatibility(transport["app"]);
|
|
122
|
-
} else {
|
|
123
|
-
if (options.displayLogs) {
|
|
124
|
-
logger.warn("");
|
|
125
|
-
logger.warn("\u274C uWebSockets.js + Express compatibility mode couldn't be loaded, run the following command to fix:");
|
|
126
|
-
logger.warn("\u{1F449} npm install --save uwebsockets-express");
|
|
127
|
-
logger.warn("");
|
|
128
|
-
}
|
|
129
|
-
app = void 0;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
115
|
if (app) {
|
|
134
116
|
app.use(cors({ origin: true, credentials: true }));
|
|
135
117
|
app.use(express.json());
|
package/build/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "AAAA,OAAO;AACP,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,OAAO,aAAa;AACpB,OAAO,aAAa;AACpB,SAAS,QAAQ,QAAkC,kBAAkB;AACrE,SAAS,0BAA0B;
|
|
4
|
+
"sourcesContent": ["import './loadenv.js';\nimport os from 'os';\nimport http from 'http';\nimport cors from 'cors';\nimport express from 'express';\nimport osUtils from 'node-os-utils';\nimport { logger, Server, ServerOptions, Transport, matchMaker } from '@colyseus/core';\nimport { WebSocketTransport } from '@colyseus/ws-transport';\n\nlet BunWebSockets: any = undefined;\n\n// @ts-ignore\nimport('@colyseus/bun-websockets')\n .then((module) => BunWebSockets = module)\n .catch(() => { });\n\nexport interface ConfigOptions {\n options?: ServerOptions,\n displayLogs?: boolean,\n getId?: () => string,\n initializeTransport?: (options: any) => Transport,\n initializeExpress?: (app: express.Express) => void,\n initializeGameServer?: (app: Server) => void,\n beforeListen?: () => void,\n}\n\nconst ALLOWED_KEYS: { [key in keyof ConfigOptions]: string } = {\n 'displayLogs': \"boolean\",\n 'options': \"object\",\n 'getId': \"function\",\n 'initializeTransport': \"function\",\n 'initializeExpress': \"function\",\n 'initializeGameServer': \"function\",\n 'beforeListen': \"function\"\n};\n\nexport default function (options: ConfigOptions) {\n for (const option in options) {\n if (!ALLOWED_KEYS[option]) {\n throw new Error(`\u274C Invalid option '${option}'. Allowed options are: ${Object.keys(ALLOWED_KEYS).join(\", \")}`);\n }\n if(options[option] !== undefined && typeof(options[option]) !== ALLOWED_KEYS[option]) {\n throw new Error(`\u274C Invalid type for ${option}: please provide a ${ALLOWED_KEYS[option]} value.`);\n }\n }\n\n return options;\n}\n\n/**\n * Listen on your development environment\n * @param options Application options\n * @param port Port number to bind Colyseus + Express\n */\nexport async function listen(\n options: ConfigOptions,\n port: number = Number(process.env.PORT || 2567),\n) {\n const serverOptions = options.options || {};\n options.displayLogs = options.displayLogs ?? true;\n\n // Force 2567 port on Colyseus Cloud\n if (process.env.COLYSEUS_CLOUD !== undefined) {\n port = 2567;\n }\n\n //\n // Handling multiple processes\n // Use NODE_APP_INSTANCE to play nicely with pm2\n //\n const processNumber = Number(process.env.NODE_APP_INSTANCE || \"0\");\n port += processNumber;\n\n // automatically configure for production under Colyseus Cloud\n if (process.env.COLYSEUS_CLOUD !== undefined) {\n // special configuration is required when using multiple processes\n const useRedisConfig = (os.cpus().length > 1) || (process.env.REDIS_URI !== undefined);\n\n if (!serverOptions.driver && useRedisConfig) {\n let RedisDriver: any = undefined;\n try {\n RedisDriver = require('@colyseus/redis-driver').RedisDriver;\n serverOptions.driver = new RedisDriver(process.env.REDIS_URI);\n } catch (e) {\n logger.warn(\"\");\n logger.warn(\"\u274C could not initialize RedisDriver.\");\n logger.warn(\"\uD83D\uDC49 npm install --save @colyseus/redis-driver\");\n logger.warn(\"\");\n }\n }\n\n if (!serverOptions.presence && useRedisConfig) {\n let RedisPresence: any = undefined;\n try {\n RedisPresence = require('@colyseus/redis-presence').RedisPresence;\n serverOptions.presence = new RedisPresence(process.env.REDIS_URI);\n } catch (e) {\n logger.warn(\"\");\n logger.warn(\"\u274C could not initialize RedisPresence.\");\n logger.warn(\"\uD83D\uDC49 npm install --save @colyseus/redis-presence\");\n logger.warn(\"\");\n }\n }\n\n if (useRedisConfig) {\n // force \"publicAddress\" when more than 1 process is available\n serverOptions.publicAddress = process.env.SUBDOMAIN + \".\" + process.env.SERVER_NAME;\n\n // nginx is responsible for forwarding /{port}/ to this process\n serverOptions.publicAddress += \"/\" + port;\n }\n }\n\n const transport = await getTransport(options);\n const gameServer = new Server({\n ...serverOptions,\n transport,\n });\n await options.initializeGameServer?.(gameServer);\n await matchMaker.onReady;\n await options.beforeListen?.();\n\n if (process.env.COLYSEUS_CLOUD !== undefined) {\n // listening on socket\n // @ts-ignore\n await gameServer.listen(`/run/colyseus/${port}.sock`);\n\n } else {\n // listening on port\n await gameServer.listen(port);\n }\n\n // notify process manager (production)\n if (typeof(process.send) === \"function\") {\n process.send('ready');\n }\n\n if (options.displayLogs) {\n logger.info(`\u2694\uFE0F Listening on http://localhost:${port}`);\n }\n return gameServer;\n}\n\n\nexport async function getTransport(options: ConfigOptions) {\n let transport: Transport;\n\n if (!options.initializeTransport) {\n if (BunWebSockets !== undefined) {\n // @colyseus/bun-websockets\n options.initializeTransport = (options: any) => new BunWebSockets.BunWebSockets(options);\n\n } else {\n // use WebSocketTransport by default\n options.initializeTransport = (options: any) => new WebSocketTransport(options);\n }\n }\n\n let app: express.Express | undefined = express();\n let server = http.createServer(app);\n\n transport = await options.initializeTransport({ server, app });\n\n //\n // TODO: refactor me!\n // BunWebSockets: There's no need to instantiate \"app\" and \"server\" above\n //\n if (transport['expressApp']) {\n app = transport['expressApp'];\n }\n\n if (app) {\n // Enable CORS\n app.use(cors({ origin: true, credentials: true, }));\n\n // Enable JSON parsing.\n app.use(express.json());\n\n if (options.initializeExpress) {\n await options.initializeExpress(app);\n }\n\n // health check for load balancers\n app.get(\"/__healthcheck\", (req, res) => {\n res.status(200).end();\n });\n\n app.get(\"/__cloudstats\", async (req, res) => {\n if (\n process.env.CLOUD_SECRET &&\n req.headers.authorization !== process.env.CLOUD_SECRET\n ) {\n res.status(401).end();\n return;\n }\n\n // count rooms per process\n const rooms = (await matchMaker.stats.fetchAll()).reduce((prev, curr) => {\n return prev + curr.roomCount;\n }, 0);\n\n const ccu = await matchMaker.stats.getGlobalCCU();\n const mem = await osUtils.mem.used();\n const cpu = (await osUtils.cpu.usage()) / 100;\n\n res.json({\n version: 1,\n mem: (mem.usedMemMb / mem.totalMemMb),\n cpu,\n ccu,\n rooms,\n });\n });\n\n if (options.displayLogs) {\n logger.info(\"\u2705 Express initialized\");\n }\n }\n\n return transport;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["options"]
|
|
7
7
|
}
|
package/build/loadenv.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/loadenv.ts"],
|
|
4
|
-
"sourcesContent": ["import fs from
|
|
4
|
+
"sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport dotenv from 'dotenv';\n\nfunction getNodeEnv() {\n return process.env.NODE_ENV || \"development\";\n}\n\nfunction getRegion() {\n // EU, NA, AS, AF, AU, SA, UNKNOWN\n return (process.env.REGION || \"unknown\").toLowerCase();\n}\n\nfunction loadEnvFile(envFileOptions: string[], log: 'none' | 'success' | 'both' = 'none') {\n const envPaths = [];\n envFileOptions.forEach((envFilename) => {\n envPaths.push(path.resolve(path.dirname(require?.main?.filename || process.cwd()), \"..\", envFilename));\n envPaths.push(path.resolve(process.cwd(), envFilename));\n });\n\n // return the first .env path found\n const envPath = envPaths.find((envPath) => fs.existsSync(envPath));\n\n if (envPath) {\n dotenv.config({ path: envPath });\n\n if (log !== \"none\") {\n console.info(`\u2705 ${path.basename(envPath)} loaded.`);\n }\n\n } else if (log === \"both\") {\n console.info(`\u2139\uFE0F optional .env file not found: ${envFileOptions.join(\", \")}`);\n }\n}\n\n// load .env.cloud defined on admin panel\nif (process.env.COLYSEUS_CLOUD !== undefined) {\n loadEnvFile([`.env.cloud`]);\n}\n\n// (overrides previous env configs)\nloadEnvFile([`.env.${getNodeEnv()}`, `.env`], 'both');\n\nif (process.env.REGION !== undefined) {\n loadEnvFile([`.env.${getRegion()}.${getNodeEnv()}`], 'success');\n}"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,gBAAe;AACf,kBAAiB;AACjB,oBAAmB;AAEnB,SAAS,aAAa;AACpB,SAAO,QAAQ,IAAI,YAAY;AACjC;AAEA,SAAS,YAAY;AAEnB,UAAQ,QAAQ,IAAI,UAAU,WAAW,YAAY;AACvD;AAEA,SAAS,YAAY,gBAA0B,MAAoC,QAAQ;AACvF,QAAM,WAAW,CAAC;AAClB,iBAAe,QAAQ,CAAC,gBAAgB;AACtC,aAAS,KAAK,YAAAA,QAAK,QAAQ,YAAAA,QAAK,QAAQ,SAAS,MAAM,YAAY,QAAQ,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC;AACrG,aAAS,KAAK,YAAAA,QAAK,QAAQ,QAAQ,IAAI,GAAG,WAAW,CAAC;AAAA,EACxD,CAAC;AAGD,QAAM,UAAU,SAAS,KAAK,CAACC,aAAY,UAAAC,QAAG,WAAWD,QAAO,CAAC;AAEjE,MAAI,SAAS;AACT,kBAAAE,QAAO,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE/B,QAAI,QAAQ,QAAQ;AAChB,cAAQ,KAAK,UAAK,YAAAH,QAAK,SAAS,OAAO,CAAC,UAAU;AAAA,IACtD;AAAA,EAEJ,WAAW,QAAQ,QAAQ;AACvB,YAAQ,KAAK,+CAAqC,eAAe,KAAK,IAAI,CAAC,EAAE;AAAA,EACjF;AACJ;AAGA,IAAI,QAAQ,IAAI,mBAAmB,QAAW;AAC1C,cAAY,CAAC,YAAY,CAAC;AAC9B;AAGA,YAAY,CAAC,QAAQ,WAAW,CAAC,IAAI,MAAM,GAAG,MAAM;AAEpD,IAAI,QAAQ,IAAI,WAAW,QAAW;AACpC,cAAY,CAAC,QAAQ,UAAU,CAAC,IAAI,WAAW,CAAC,EAAE,GAAG,SAAS;AAChE;",
|
|
6
6
|
"names": ["path", "envPath", "fs", "dotenv"]
|
|
7
7
|
}
|
package/build/loadenv.mjs
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
+
}) : x)(function(x) {
|
|
4
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
// packages/tools/src/loadenv.ts
|
|
1
9
|
import fs from "fs";
|
|
2
10
|
import path from "path";
|
|
3
11
|
import dotenv from "dotenv";
|
|
@@ -10,7 +18,7 @@ function getRegion() {
|
|
|
10
18
|
function loadEnvFile(envFileOptions, log = "none") {
|
|
11
19
|
const envPaths = [];
|
|
12
20
|
envFileOptions.forEach((envFilename) => {
|
|
13
|
-
envPaths.push(path.resolve(path.dirname(
|
|
21
|
+
envPaths.push(path.resolve(path.dirname(__require?.main?.filename || process.cwd()), "..", envFilename));
|
|
14
22
|
envPaths.push(path.resolve(process.cwd(), envFilename));
|
|
15
23
|
});
|
|
16
24
|
const envPath = envPaths.find((envPath2) => fs.existsSync(envPath2));
|
package/build/loadenv.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/loadenv.ts"],
|
|
4
|
-
"sourcesContent": ["import fs from
|
|
5
|
-
"mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,YAAY;AAEnB,SAAS,aAAa;AACpB,SAAO,QAAQ,IAAI,YAAY;AACjC;AAEA,SAAS,YAAY;AAEnB,UAAQ,QAAQ,IAAI,UAAU,WAAW,YAAY;AACvD;AAEA,SAAS,YAAY,gBAA0B,MAAoC,QAAQ;AACvF,QAAM,WAAW,CAAC;AAClB,iBAAe,QAAQ,CAAC,gBAAgB;AACtC,aAAS,KAAK,KAAK,QAAQ,KAAK,QAAQ,
|
|
4
|
+
"sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport dotenv from 'dotenv';\n\nfunction getNodeEnv() {\n return process.env.NODE_ENV || \"development\";\n}\n\nfunction getRegion() {\n // EU, NA, AS, AF, AU, SA, UNKNOWN\n return (process.env.REGION || \"unknown\").toLowerCase();\n}\n\nfunction loadEnvFile(envFileOptions: string[], log: 'none' | 'success' | 'both' = 'none') {\n const envPaths = [];\n envFileOptions.forEach((envFilename) => {\n envPaths.push(path.resolve(path.dirname(require?.main?.filename || process.cwd()), \"..\", envFilename));\n envPaths.push(path.resolve(process.cwd(), envFilename));\n });\n\n // return the first .env path found\n const envPath = envPaths.find((envPath) => fs.existsSync(envPath));\n\n if (envPath) {\n dotenv.config({ path: envPath });\n\n if (log !== \"none\") {\n console.info(`\u2705 ${path.basename(envPath)} loaded.`);\n }\n\n } else if (log === \"both\") {\n console.info(`\u2139\uFE0F optional .env file not found: ${envFileOptions.join(\", \")}`);\n }\n}\n\n// load .env.cloud defined on admin panel\nif (process.env.COLYSEUS_CLOUD !== undefined) {\n loadEnvFile([`.env.cloud`]);\n}\n\n// (overrides previous env configs)\nloadEnvFile([`.env.${getNodeEnv()}`, `.env`], 'both');\n\nif (process.env.REGION !== undefined) {\n loadEnvFile([`.env.${getRegion()}.${getNodeEnv()}`], 'success');\n}"],
|
|
5
|
+
"mappings": ";;;;;;;;AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,YAAY;AAEnB,SAAS,aAAa;AACpB,SAAO,QAAQ,IAAI,YAAY;AACjC;AAEA,SAAS,YAAY;AAEnB,UAAQ,QAAQ,IAAI,UAAU,WAAW,YAAY;AACvD;AAEA,SAAS,YAAY,gBAA0B,MAAoC,QAAQ;AACvF,QAAM,WAAW,CAAC;AAClB,iBAAe,QAAQ,CAAC,gBAAgB;AACtC,aAAS,KAAK,KAAK,QAAQ,KAAK,QAAQ,WAAS,MAAM,YAAY,QAAQ,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC;AACrG,aAAS,KAAK,KAAK,QAAQ,QAAQ,IAAI,GAAG,WAAW,CAAC;AAAA,EACxD,CAAC;AAGD,QAAM,UAAU,SAAS,KAAK,CAACA,aAAY,GAAG,WAAWA,QAAO,CAAC;AAEjE,MAAI,SAAS;AACT,WAAO,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE/B,QAAI,QAAQ,QAAQ;AAChB,cAAQ,KAAK,UAAK,KAAK,SAAS,OAAO,CAAC,UAAU;AAAA,IACtD;AAAA,EAEJ,WAAW,QAAQ,QAAQ;AACvB,YAAQ,KAAK,+CAAqC,eAAe,KAAK,IAAI,CAAC,EAAE;AAAA,EACjF;AACJ;AAGA,IAAI,QAAQ,IAAI,mBAAmB,QAAW;AAC1C,cAAY,CAAC,YAAY,CAAC;AAC9B;AAGA,YAAY,CAAC,QAAQ,WAAW,CAAC,IAAI,MAAM,GAAG,MAAM;AAEpD,IAAI,QAAQ,IAAI,WAAW,QAAW;AACpC,cAAY,CAAC,QAAQ,UAAU,CAAC,IAAI,WAAW,CAAC,EAAE,GAAG,SAAS;AAChE;",
|
|
6
6
|
"names": ["envPath"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@colyseus/tools",
|
|
3
|
-
"version": "0.16.0-preview.
|
|
3
|
+
"version": "0.16.0-preview.2",
|
|
4
4
|
"description": "Colyseus Tools for Production",
|
|
5
5
|
"input": "./src/index.ts",
|
|
6
6
|
"main": "./build/index.js",
|
|
7
7
|
"module": "./build/index.mjs",
|
|
8
8
|
"typings": "./build/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./build/index.mjs",
|
|
12
|
+
"require": "./build/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
9
15
|
"bin": {
|
|
10
16
|
"colyseus-system-boot": "system-boot.js",
|
|
11
17
|
"colyseus-post-deploy": "post-deploy.js"
|
|
@@ -41,8 +47,8 @@
|
|
|
41
47
|
"cors": "^2.8.5",
|
|
42
48
|
"dotenv": "^8.2.0",
|
|
43
49
|
"express": "^4.16.2",
|
|
44
|
-
"@colyseus/core": "^0.16.0-preview.
|
|
45
|
-
"@colyseus/ws-transport": "^0.16.0-preview.
|
|
50
|
+
"@colyseus/core": "^0.16.0-preview.30",
|
|
51
|
+
"@colyseus/ws-transport": "^0.16.0-preview.7"
|
|
46
52
|
},
|
|
47
53
|
"publishConfig": {
|
|
48
54
|
"access": "public"
|