@makano/rew 1.4.3 → 1.4.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/lib/rew/modules/context.js +10 -3
- package/package.json +1 -1
| @@ -13,10 +13,12 @@ const runtime = require("./runtime"); | |
| 13 13 | 
             
            const { straceLog } = require("../misc/strace");
         | 
| 14 14 | 
             
            const reval = require("../functions/reval");
         | 
| 15 15 | 
             
            const STDNS = require("../const/stdns");
         | 
| 16 | 
            +
            const emitter = require("../functions/emitter");
         | 
| 16 17 |  | 
| 17 18 | 
             
            let mainFile = "";
         | 
| 18 19 | 
             
            const isMainFile = (filepath) => filepath == mainFile;
         | 
| 19 20 | 
             
            const globalContext = {};
         | 
| 21 | 
            +
            const globalEmitter = emitter();
         | 
| 20 22 | 
             
            module.exports.prepareContext = function (
         | 
| 21 23 | 
             
              custom_context,
         | 
| 22 24 | 
             
              options,
         | 
| @@ -61,6 +63,10 @@ module.exports.prepareContext = function ( | |
| 61 63 | 
             
                  ...custom_context,
         | 
| 62 64 | 
             
                  Usage
         | 
| 63 65 | 
             
                };
         | 
| 66 | 
            +
                globalEmitter.on('attach_name', (name, object) => {
         | 
| 67 | 
            +
                  context[name] = object;
         | 
| 68 | 
            +
                });
         | 
| 69 | 
            +
                globalEmitter.on('detach_name', (name) => delete context[name]);
         | 
| 64 70 | 
             
                std.prototype = { ns: (cb) => {
         | 
| 65 71 | 
             
                  return new (class extends STDNS {
         | 
| 66 72 | 
             
                    constructor(){
         | 
| @@ -75,6 +81,7 @@ module.exports.prepareContext = function ( | |
| 75 81 | 
             
                      this.detach = std.prototype.detach;
         | 
| 76 82 | 
             
                      this.out = std.prototype.out;
         | 
| 77 83 | 
             
                      this.inp = std.prototype.in;
         | 
| 84 | 
            +
                      this.signal = std.prototype.signal;
         | 
| 78 85 | 
             
                      this['@cb'] = cb;
         | 
| 79 86 | 
             
                    }
         | 
| 80 87 | 
             
                  });
         | 
| @@ -120,17 +127,17 @@ module.exports.prepareContext = function ( | |
| 120 127 | 
             
                  }
         | 
| 121 128 | 
             
                  if(!name) return false;
         | 
| 122 129 | 
             
                  globalContext[name] = object;
         | 
| 123 | 
            -
                   | 
| 130 | 
            +
                  globalEmitter.emit('attach_name', name, object);
         | 
| 124 131 | 
             
                  return true;
         | 
| 125 132 | 
             
                }, detach: (nameOrObject) => {
         | 
| 126 133 | 
             
                  const name = Object.keys(globalContext).find((key) => key == nameOrObject || globalContext[key] == nameOrObject);
         | 
| 127 134 | 
             
                  if(name) {
         | 
| 128 135 | 
             
                    delete globalContext[name];
         | 
| 129 | 
            -
                     | 
| 136 | 
            +
                    globalEmitter.emit('detach_name', name);
         | 
| 130 137 | 
             
                    return true;
         | 
| 131 138 | 
             
                  }
         | 
| 132 139 | 
             
                  return false;
         | 
| 133 | 
            -
                } }
         | 
| 140 | 
            +
                }, signal: globalEmitter }
         | 
| 134 141 | 
             
                Object.defineProperty(std.prototype, 'void', {
         | 
| 135 142 | 
             
                  get: () => void 0
         | 
| 136 143 | 
             
                })
         |