2021年3月6日星期六

Is it possible to get all variables in scope through typescript?

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

没有评论:

发表评论