I know there is an old post about this functionality in javascript: Getting All Variables In Scope
But I am desperately looking and thought I'd just ask in case there might be transpile magic in typescript (or a way we can extend it) that may acheve this..(e.g.)
.ts
() => { const a = 123; console.log(scope) } .js transpile
var scope = {}; () => { scope.a = 123; console.log(scope); } The reason I'm asking is that I'm looking for a node backend solution to be able to log a function's scope state and save it in a debug database for review. (So any time an error occurs the state is never lost but recorded instead)
@k0pernikus
Getting specific on my issue, I'm trying to get more context on what went wrong with my handler for a firebase event. functions.firestore.document('users/{uid}').onUpdate
// ====== Pretend code I wish would work ===== const logScopeSomewhere = (anonymousScope) => (err) => { console.log(anonymousScope) // { pie: 'pie', apple: 'apple' } // or write error to database.. // Main goal is that all variables in the function that errored are logged with the Type Error.. } const handleUpdate = (change: Change<QueryDocumentSnapshot>, context: EventContext) => { let anonymousScope; return (async () => { anonymousScope = scope; // special reserved - // Possible JS transpile manipulation can have a closure on top.. const pie = 'pie'; // anonymousScope.pie const apple = 'apple'; // anonymousScope.apple // apple.core.seed - // TypeError (will go to catch..) })().catch(logScopeSomewhere(anonymousScope)) } functions.firestore.document('users/{uid}').onUpdate(handleUpdate) Trying to be more clear, I want to have an object that has a snapshot of the state of the executing function when the error occurred. I plan to catch it and will use it as logging information.
https://stackoverflow.com/questions/66470460/is-it-possible-to-get-all-variables-in-scope-through-typescript March 04, 2021 at 03:34PM
没有评论:
发表评论