{"version":3,"sources":["jsdelivr-header.js","/npm/luge@0.0.1/server.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,KAAO,QAAQ,QACf,UAAY,QAAQ,aACpB,SAAW,QAAQ,cACnB,SAAW,SAAS,OAAO,CAC3B,eAAgB,SAAS,gBAAgB,YAkBzC,SAAW,WAAY,EAEvB,OAAS,WACT,SAAS,KAAK,KAClB,EACA,OAAO,UAAY,OAAO,OAAO,IAAI,UACrC,OAAO,UAAU,YAAc,OAE/B,IAAI,MAAQ,WACR,OAAO,KAAK,KAChB,EACA,MAAM,UAAY,OAAO,OAAO,IAAI,QACpC,MAAM,UAAU,YAAc,MAE9B,IAAI,IAAM,WACN,OAAO,KAAK,KAChB,EACA,IAAI,UAAY,OAAO,OAAO,IAAI,QAClC,IAAI,UAAU,YAAc,IAE5B,IAAI,OAAS,WACT,OAAO,KAAK,MACZ,MAAM,KAAK,MACX,IAAI,KAAK,KACb,EACA,OAAO,UAAY,OAAO,OAAO,IAAI,OAAU,IAAI,MAAS,IAAI,KAChE,OAAO,UAAU,YAAc,OAE/B,IAAI,EAAI,IAAI,MACR,WAAa,EACb,aAAe,EAEnB,SAAS,aAAa,UAAU,SAAU,GAE1C,IAEA,SAAS,aAAa,QAAQ,SAAU,GAExC,IAEA,SAAS,aAAa,OAAO,SAAU,GAEnC,cACJ,IAEA,SAAS,aAAa,KAAK,SAAU,GAEjC,YACJ,IAcA,QAAQ,IAAI,gBACZ,SAAS,KAAK,IAAI,QAElB,IAAI,MAAQ,IAAI,UAAU,MAEtB,UAAY,KAAK,MACjB,QAAU,EAEd,MAAM,IAAI,UAAU,WAChB,SAAS,KAAK,IAAI,QAClB,SACJ,IACC,GAAG,YAAY,WACZ,IAAI,EAAc,KAAK,MAAQ,UAC3B,EAAgB,QAAU,EAAc,IAC5C,QAAQ,IAAI,WAAY,EAAe,mBACvC,QAAQ,IAAI,SAAW,WAAa,EAAG,SAAW,aAAe,GACjE,QAAQ,IAAI,QAAS,WAAY,aACrC,IACC","file":"/npm/luge@0.0.1/server.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/luge@0.0.1/server.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var http = require('http');\nvar Benchmark = require('benchmark');\nvar Pipeline = require('./pipeline');\nvar pipeline = Pipeline.create({\n    ctorComparator: Pipeline.CtorComparators.DUCK_TYPE\n});\n\n// http.createServer(function (req, res) {\n//     pipeline.handle(req);\n//   res.writeHead(200, {'Content-Type': 'text/plain'});\n\n//   try {\n//     console.log(typeof req, req.constructor.name, req instanceof http.IncomingMessage)\n//   } catch (e) {\n//     console.error(e);\n//   }\n\n//   res.end('Hello World\\n');\n// }).listen(1337, '127.0.0.1');\n// console.log('Server running at http://127.0.0.1:1337/');\n//\n//\nvar Creature = function() {};\n\nvar Mammal = function() {\n    Creature.call(this);\n};\nMammal.prototype = Object.create(new Creature());\nMammal.prototype.constructor = Mammal;\n\nvar Human = function() {\n    Mammal.call(this);\n};\nHuman.prototype = Object.create(new Mammal());\nHuman.prototype.constructor = Human;\n\nvar Dog = function() {\n    Mammal.call(this);\n};\nDog.prototype = Object.create(new Mammal());\nDog.prototype.constructor = Dog;\n\nvar ManDog = function() {\n    Mammal.call(this);\n    Human.call(this);\n    Dog.call(this);\n};\nManDog.prototype = Object.create(new Mammal(), new Human(), new Dog());\nManDog.prototype.constructor = ManDog;\n\nvar a = new Human();\nvar dogCounter = 0;\nvar humanCounter = 0;\n\npipeline.onInstanceOf(Creature, function (creature) {\n    // console.log(\"Received a creature\");\n})\n\npipeline.onInstanceOf(Mammal, function (mammal) {\n    // console.log(\"Received a mammal\");\n})\n\npipeline.onImplements(Human, function (human) {\n    // console.log(\"Received a human\");\n    humanCounter++;\n})\n\npipeline.onImplements(Dog, function (human) {\n    // console.log(\"Received a dog\");\n    dogCounter++;\n})\n\n// console.log(\"---Human---\");\n// pipeline.emit(new Human());\n// pipeline.emit(new Human());\n// console.log(\"---Mammal---\");\n// pipeline.emit(new Mammal());\n// pipeline.emit(new Mammal());\n// console.log(\"---Creature---\");\n// pipeline.emit(new Creature());\n// pipeline.emit(new Creature());\n// console.log(\"---Dog---\");\n// pipeline.emit(new Dog());\n// pipeline.emit(new Dog());\nconsole.log(\"---ManDog---\");\npipeline.emit(new ManDog());\n\nvar suite = new Benchmark.Suite();\n\nvar startTime = Date.now();\nvar counter = 0;\n\nsuite.add('ManDog', function() {\n    pipeline.emit(new ManDog());\n    counter++;\n})\n.on('complete', function() {\n    var elapsedTime = Date.now() - startTime;\n    var runsPerSecond = counter / elapsedTime * 1000;\n    console.log(\"Finished\", runsPerSecond, \"runs per second\");\n    console.log(counter == dogCounter - 1, counter == humanCounter - 1);\n    console.log(counter, dogCounter, humanCounter);\n})\n.run();\n\n\n// pipeline\n//     .on(http.IncomingMessage, function (req) {\n//         console.log(\"Received an http request\");\n//     })\n"]}