INNER CODE UNIT · TypeScript
buildContext
colyseus/colyseus · packages/admin/src-backend/index.ts:371
function buildContext(opts: AdminOptions): EndpointContext {
const database = opts.database ?? GameDatabase.current;
if (!database) {
throw new Error(
'[admin] no GameDatabase available — construct `new GameDatabase(...)` before calling admin(), or pass `database:` explicitly',
);
}
const apiPath = (opts.apiPath ?? '/admin-api').replace(/\/$/, '');
const uiPath = (opts.uiPath ?? '/admin').replace(/\/$/, '');
const uiDistDir = opts.uiDistDir ?? path.resolve(import.meta.dirname, '..', 'build');
const allowDevHeader = opts.allowDevHeader ?? (process.env.NODE_ENV !== 'production');
const resolveUserId = opts.resolveUserId ?? makeDefaultResolver(allowDevHeader, database);
const enforceRbac = opts.enforceRbac !== false;
const logger = opts.logger === null ? null : (opts.logger ?? defaultLogger);
const resolvedTables = opts.tables ?? database.tables;
if (!resolvedTables) {
throw new Error('[admin] no tables provided — pass `tables` or call database.boot() first');