• Jump To … +
    descend.js indexify.js listen.bin.js listener.js map.js mock.js mock2.js monitor.js olio.bin.js olio.js prolific.configure.js run.bin.js runner.js search.js serve.bin.js serve.child.js server.js
  • map.js

  • ¶
    var Keyify = require('keyify')
    
    function Map () {
        this._objects = { map: {}, array: [] }
    }
    
    Map.prototype.push = function (argv, object) {
        this._objects.array.push({ argv: argv, object: object })
    }
    
    Map.prototype.get = function (argv) {
        var key = Keyify.stringify(argv)
        var entry
        if (entry = this._objects.map[key]) {
            return entry
        }
        LINKS: for (var i = 0, entry; (entry = this._objects.array[i]) != null; i++) {
            if (entry.argv.length <= argv.length) {
                for (var j = 0; j < entry.argv.length; j++) {
                    if (entry.argv[j] != argv[j]) {
                        continue LINKS
                    }
                }
                return this._objects.map[key] = entry.object
            }
        }
        return null
    }
    
    module.exports = Map