greybel-interpreter 2.8.4 → 2.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/context.d.ts CHANGED
@@ -46,6 +46,9 @@ export interface ExitObserver {
46
46
  export declare class ProcessState extends EventEmitter {
47
47
  isPending: boolean;
48
48
  last: OperationContext;
49
+ private observer;
50
+ private observerWithExitOccurence;
51
+ constructor();
49
52
  createExitObserver(): ExitObserver;
50
53
  }
51
54
  export declare class LoopState {
package/dist/context.js CHANGED
@@ -19,6 +19,7 @@ const default_1 = require("./types/default");
19
19
  const map_1 = require("./types/map");
20
20
  const path_1 = require("./utils/path");
21
21
  const set_immediate_1 = require("./utils/set-immediate");
22
+ const uuid_1 = require("uuid");
22
23
  var ContextType;
23
24
  (function (ContextType) {
24
25
  ContextType[ContextType["Api"] = 0] = "Api";
@@ -124,22 +125,22 @@ class Debugger {
124
125
  exports.Debugger = Debugger;
125
126
  class ProcessState extends events_1.EventEmitter {
126
127
  constructor() {
127
- super(...arguments);
128
+ super();
128
129
  this.isPending = false;
129
130
  /* eslint-disable no-use-before-define */
130
131
  this.last = null;
132
+ this.observer = new Set();
133
+ this.observerWithExitOccurence = new Set();
134
+ this.once('exit', () => {
135
+ this.observerWithExitOccurence = new Set(this.observer);
136
+ });
131
137
  }
132
138
  createExitObserver() {
133
- let isExit = false;
134
- const listener = () => {
135
- isExit = true;
136
- };
137
- this.once('exit', listener);
139
+ const id = (0, uuid_1.v4)();
140
+ this.observer.add(id);
138
141
  return {
139
- occured: () => isExit,
140
- close: () => {
141
- this.off('exit', listener);
142
- }
142
+ occured: () => this.observerWithExitOccurence.has(id),
143
+ close: () => this.observer.delete(id)
143
144
  };
144
145
  }
145
146
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greybel-interpreter",
3
- "version": "2.8.4",
3
+ "version": "2.8.5",
4
4
  "description": "Interpreter",
5
5
  "main": "dist/index",
6
6
  "typings": "dist/index",
@@ -50,7 +50,8 @@
50
50
  "dependencies": {
51
51
  "greybel-core": "^0.10.0",
52
52
  "greyscript-core": "^0.10.0",
53
- "lru-cache": "^10.0.1"
53
+ "lru-cache": "^10.0.1",
54
+ "uuid": "^9.0.1"
54
55
  },
55
56
  "keywords": [
56
57
  "greyscript",