UNPKG

4.69 kBPlain TextView Raw
1{"code":"function defineName$__(cls,name){\n\tObject.defineProperty(cls,\"name\",{value:name,configurable:true});\n};;\nfunction inheritClass$__(cls){\n\tObject.getPrototypeOf(cls.prototype).constructor?.inherited?.(cls);\n};\nconst $__initor__$ = Symbol.for('#__initor__'), $__inited__$ = Symbol.for('#__inited__'), $__hooks__$ = Symbol.for('#__hooks__'), $idler$ = Symbol.for('#idler'), $resolve$ = Symbol.for('#resolve');\nvar $1 = Symbol();\n\n/*body*/\nimport {emit,listen,once,unlisten} from './utils';\n\nexport class Queue extends Set {\n\t\n\tconstructor(){\n\t\t\n\t\tsuper();\n\t\tthis[$idler$] = Promise.resolve(this);\n\t\tthis[$__initor__$]===$1 && (this[$__hooks__$]&&this[$__hooks__$].inited(this),this[$__inited__$] && this[$__inited__$]());\n\t}\n\t\n\temit(name,...params){\n\t\treturn emit(this,name,params);\n\t}\n\ton(name,...params){\n\t\treturn listen(this,name,...params);\n\t}\n\tonce(name,...params){\n\t\treturn once(this,name,...params);\n\t}\n\tun(name,...params){\n\t\treturn unlisten(this,name,...params);\n\t}\n\t\n\tadd(value){\n\t\tvar self = this;\n\t\t\n\t\tif (value instanceof Function) {\n\t\t\t\n\t\t\tvalue = value();\n\t\t};\n\t\t\n\t\tif (!(this.has(value))) {\n\t\t\t\n\t\t\tvalue.then(function() { return self.delete(value); });\n\t\t\tlet first = this.size == 0;\n\t\t\tsuper.add(value);\n\t\t\tif (first) {\n\t\t\t\t\n\t\t\t\tthis[$idler$] = this[$resolve$] = null;\n\t\t\t\tthis.emit('busy',this);\n\t\t\t};\n\t\t};\n\t\treturn value;\n\t}\n\t\n\tdelete(value){\n\t\t\n\t\tif (super.delete(value)) {\n\t\t\t\n\t\t\tif (this.size == 0) {\n\t\t\t\t\n\t\t\t\tif (this[$resolve$]) {\n\t\t\t\t\t\n\t\t\t\t\tthis[$resolve$](this);\n\t\t\t\t\tthis[$resolve$] = null;\n\t\t\t\t};\n\t\t\t\tthis.emit('idle',this);\n\t\t\t};\n\t\t\treturn true;\n\t\t};\n\t\treturn false;\n\t}\n\t\n\tget idle(){\n\t\tvar self = this;\n\t\t\n\t\treturn this[$idler$] ||= new Promise(function(resolve) {\n\t\t\t\n\t\t\treturn self[$resolve$] = resolve;\n\t\t});\n\t}\n\tstatic {\n\t\tthis.prototype[$__initor__$] = $1;defineName$__(this,'Queue');inheritClass$__(this);}\n};\n","map":{"version":3,"file":"queue.js","sourceRoot":"","sources":["/Users/abdellah/workspace/scrimba/imba/packages/imba/src/imba/queue.imba"],"sourcesContent":["import {emit,listen,once,unlisten} from './utils'\n\nexport class Queue < Set\n\tconstructor\n\t\tsuper()\n\t\t#idler = Promise.resolve(this)\n\n\tdef emit name, ...params do emit(self,name,params)\n\tdef on name, ...params do listen(self,name,...params)\n\tdef once name, ...params do once(self,name,...params)\n\tdef un name, ...params do unlisten(self,name,...params)\n\n\tdef add value\n\t\tif value isa Function\n\t\t\tvalue = value()\n\n\t\tunless has(value)\n\t\t\tvalue.then do self.delete(value)\n\t\t\tlet first = size == 0\n\t\t\tsuper(value)\n\t\t\tif first\n\t\t\t\t#idler = #resolve = null\n\t\t\t\tself.emit('busy',self)\n\t\treturn value\n\n\tdef delete value\n\t\tif super(value)\n\t\t\tif size == 0\n\t\t\t\tif #resolve\n\t\t\t\t\t#resolve(self)\n\t\t\t\t\t#resolve = null\n\t\t\t\tself.emit('idle',self)\n\t\t\treturn true\n\t\treturn false\n\n\tget idle\n\t\t#idler ||= new Promise do(resolve)\n\t\t\t#resolve = resolve"],"names":[],"mappings":";;;;;;;;;;AAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,OAAO,SAAS;;AAEjD,MAAM,CAAC,KAAK,CAAC,KAAK,SAAG,GAAG,EAAA;;CACvB,WAAW,EAAA;;EACV,KAAK,EAAE;EACP,aAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;EAAA;;CAE3B,IAAI,CAAC,IAAI,IAAK,MAAM;EAAI,OAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;EAPnD;CAQK,EAAE,CAAC,IAAI,IAAK,MAAM;EAAI,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;EARtD;CASK,IAAI,CAAC,IAAI,IAAK,MAAM;EAAI,OAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;EATtD;CAUK,EAAE,CAAC,IAAI,IAAK,MAAM;EAAI,OAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;EAVxD;;CAYK,GAAG,CAAC,KAAK,CAAA;;;EACZ,EAAE,EAAC,KAAK,YAAK,QAAQ,EAAA;;GACpB,KAAK,GAAG,KAAK,EAAE;GAAA;;EAEhB,EAAM,IAAC,KAAA,GAAG,CAAC,KAAK,CAAC,GAAA;;GAChB,KAAK,CAAC,IAAI,CAAC,QAAE,KAAC,OAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAtB;OACN,KAAK,GAAG,KAAA,IAAI,CAAC,EAAE,CAAC,CAAC;GACrB,MAPE,GAAG,CAOC,KAAK,CAAC;GACZ,EAAE,EAAC,KAAK,EAAA;;IACP,aAAM,GAAG,eAAQ,GAAG,IAAI;IACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAAA;GAAA;EACxB,MAAM,CAAC,KAAK;EAAA;;CAET,MAAM,CAAC,KAAK,CAAA;;EACf,EAAE,EAAC,MADA,MAAM,CACA,KAAK,CAAC,EAAA;;GACd,EAAE,EAAC,KAAA,IAAI,CAAC,EAAE,CAAC,CAAC,EAAA;;IACX,EAAE,iBAAS,EAAA;;oBACF,CAAC,IAAI,CAAC;KACd,eAAQ,GAAG,IAAI;KAAA;IAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAAA;GACvB,MAAM,CAAC,IAAI;GAAA;EACZ,MAAM,CAAC,KAAK;EAAA;;CAEb,GAAG,CAAC,IAAI,EAAA;;;sBACD,KAAK,GAAG,CAAC,OAAO,CAAC,QAAE,CAAC,OAAO,EAAC;;GACjC,OAAA,eAAQ,GAAG,OAAO;GAAA,CADG;EACH;;;AAAA,CAAA;AAAA;"},"dependencies":[],"meta":{"vite":{"lang":"js"}}}
\No newline at end of file