feat: harden support, localize knowledge and add operator availability [skip ci]
Source-only publication of reviewed commit 64e96a7f423673dc29ad56485be9fc79bce8af1c.
Passed in isolation: focused frontend/backend tests, race checks, TypeScript typecheck, lint, Go compilation, Flowgram build, and deterministic SDK build/tests.
Not accepted as a production release: Next.js export/native assembly remains blocked by environment memory limits; browser interaction and MySQL staging acceptance remain unverified. No production server, database/schema, runtime configuration, deployment, release tag, or workflow execution was performed.
Expected source tree: 0a4a7528e9.
This commit is contained in:
28
web/lib/test-support/load-typescript-module.mjs
Normal file
28
web/lib/test-support/load-typescript-module.mjs
Normal file
@@ -0,0 +1,28 @@
|
||||
import { readFileSync } from "node:fs"
|
||||
import vm from "node:vm"
|
||||
import ts from "typescript"
|
||||
|
||||
/** Runs the real module with explicitly supplied offline transports/dependencies. */
|
||||
export function loadTypeScriptModule(url, dependencies, globals = {}) {
|
||||
const { outputText } = ts.transpileModule(readFileSync(url, "utf8"), {
|
||||
compilerOptions: { target: ts.ScriptTarget.ES2022, module: ts.ModuleKind.CommonJS, jsx: ts.JsxEmit.ReactJSX },
|
||||
fileName: url.pathname,
|
||||
})
|
||||
const moduleContext = { exports: {} }
|
||||
const require = (name) => {
|
||||
if (!Object.hasOwn(dependencies, name)) throw new Error(`Unmocked dependency: ${name}`)
|
||||
return dependencies[name]
|
||||
}
|
||||
vm.runInNewContext(outputText, { module: moduleContext, exports: moduleContext.exports, require, ...globals }, { filename: url.pathname })
|
||||
return moduleContext.exports
|
||||
}
|
||||
|
||||
export function deferred() {
|
||||
let resolve
|
||||
let reject
|
||||
const promise = new Promise((resolvePromise, rejectPromise) => {
|
||||
resolve = resolvePromise
|
||||
reject = rejectPromise
|
||||
})
|
||||
return { promise, resolve, reject }
|
||||
}
|
||||
Reference in New Issue
Block a user