We have an issue in the runtime right now where we serialize closures asynchronously, meaning we make it possible to form cycles between resource graphs (something that ought to be impossible in our model, where resources are "immutable" after creation and cannot form cycles). Let me tell you a tale of debugging this ... Well, no, let's not do that. But thankfully I've left behind some little utilities that might make debugging such a thing easier down the road. Namely: * By default, most of our core runtime promises leverage a leak handler that will log an error message should the process exit with certain critical unresolved promises. This error message will include some handy context (like whether it was an input promise) as well as a stack trace for its point of creation. * Optionally, with a flag in runtime/debuggable.ts, you may wire up a hang detector, for situations where we may want to detect this situation sooner than process exit, using the regular message loop. This uses a defined timeout, prints the same diagnostics as the leak detector when a hang is detected, and is disabled by default.
49 lines
1.2 KiB
JSON
49 lines
1.2 KiB
JSON
{
|
|
"compilerOptions": {
|
|
"outDir": "bin",
|
|
"target": "es6",
|
|
"module": "commonjs",
|
|
"moduleResolution": "node",
|
|
"declaration": true,
|
|
"sourceMap": true,
|
|
"stripInternal": true,
|
|
"experimentalDecorators": true,
|
|
"pretty": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
"noImplicitAny": true,
|
|
"noImplicitReturns": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"strictNullChecks": true
|
|
},
|
|
"files": [
|
|
"index.ts",
|
|
"computed.ts",
|
|
"config.ts",
|
|
"resource.ts",
|
|
|
|
"asset/index.ts",
|
|
"asset/asset.ts",
|
|
"asset/archive.ts",
|
|
|
|
"runtime/index.ts",
|
|
"runtime/closure.ts",
|
|
"runtime/config.ts",
|
|
"runtime/debuggable.ts",
|
|
"runtime/langhost.ts",
|
|
"runtime/log.ts",
|
|
"runtime/property.ts",
|
|
"runtime/resource.ts",
|
|
"runtime/settings.ts",
|
|
|
|
"cmd/langhost/index.ts",
|
|
"cmd/langhost/run.ts",
|
|
|
|
"tests/config.spec.ts",
|
|
"tests/init.spec.ts",
|
|
"tests/util.ts",
|
|
"tests/runtime/closure.spec.ts",
|
|
"tests/runtime/computed.spec.ts",
|
|
"tests/runtime/langhost/run.spec.ts"
|
|
]
|
|
}
|
|
|