Socket
Socket
Sign inDemoInstall

scheduler-polyfill

Package Overview
Dependencies
0
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.0 to 1.0.1

2

dist/scheduler-polyfill.js

@@ -1,2 +0,2 @@

!function(){var e=["user-blocking","user-visible","background"];class t{constructor(){this.channel_=new MessageChannel,this.sendPort_=this.channel_.port2,this.messages_={},this.nextMessageHandle_=1,this.channel_.port1.onmessage=e=>this.onMessageReceived_(e)}queueCallback(e){var t=this.nextMessageHandle_++;return this.messages_[t]=e,this.sendPort_.postMessage(t),t}cancelCallback(e){delete this.messages_[e]}onMessageReceived_(e){var t=e.data;if(t in this.messages_){var i=this.messages_[t];delete this.messages_[t],i()}}}function i(){return i.instance_||(i.instance_=new t),i.instance_}class s{constructor(e,t,i){void 0===i&&(i=0),this.callback_=e,this.callbackType_=null,this.handle_=null,this.canceled_=!1,this.schedule_(t,i)}isIdleCallback(){return 0===this.callbackType_}cancel(){if(!this.canceled_)switch(this.canceled_=!0,this.callbackType_){case 0:cancelIdleCallback(this.handle_);break;case 1:clearTimeout(this.handle_);break;case 2:i().cancelCallback(this.handle_);break;default:throw new TypeError("Unknown CallbackType")}}schedule_(t,s){if(s&&s>0||"function"!=typeof MessageChannel)return s||(s=0),this.callbackType_=1,void(this.handle_=setTimeout(()=>{this.runCallback_()},s));if(!e.includes(t))throw new TypeError("Invalid task priority : "+t);"background"===t&&"function"==typeof requestIdleCallback?(this.handle_=requestIdleCallback(()=>{this.runCallback_()}),this.callbackType_=0):(this.handle_=i().queueCallback(()=>{this.runCallback_()}),this.callbackType_=2)}runCallback_(){this.canceled_||this.callback_()}}var r=0;class a{constructor(){this.head_=null,this.tail_=null}isEmpty(){return null==this.head_}push(e){if("object"!=typeof e)throw new TypeError("Task must be an Object");e.tq_sequence_=r++,this.isEmpty()?(e.tq_prev_=null,this.head_=e):(e.tq_prev_=this.tail_,this.tail_.tq_next_=e),e.tq_next_=null,this.tail_=e}takeNextTask(){if(this.isEmpty())return null;var e=this.head_;return this.remove_(e),e}merge(e,t){if("function"!=typeof t)throw new TypeError("Must provide a selector function.");if(null==e)throw new Error("sourceQueue cannot be null");for(var i=this.head_,s=null,r=e.head_;r;){var a=r;if(r=r.tq_next_,t(a)){for(e.remove_(a);i&&i.tq_sequence_<a.tq_sequence_;)s=i,i=i.tq_next_;this.insert_(a,s),s=a}}}toArray(){for(var e=this.head_,t=[];null!==e;)t.push(e),e=e.tq_next_;return t}insert_(e,t){if(t!=this.tail_){var i=t?t.tq_next_:this.head_;e.tq_next_=i,i.tq_prev_=e,e.tq_prev_=t,null!=t?t.tq_next_=e:this.head_=e}else this.push(e)}remove_(e){if(null==e)throw new Error("Expected task to be non-null");e===this.head_&&(this.head_=e.tq_next_),e===this.tail_&&(this.tail_=this.tail_.tq_prev_),e.tq_next_&&(e.tq_next_.tq_prev_=e.tq_prev_),e.tq_prev_&&(e.tq_prev_.tq_next_=e.tq_next_)}}class n extends Event{constructor(t,i){if(!i||!e.includes(i.previousPriority))throw new TypeError("Invalid task priority: '"+i.previousPriority+"'");super(t),this.previousPriority=i.previousPriority}}class l extends AbortController{constructor(t){if(void 0===t&&(t={}),super(),null==t&&(t={}),"object"!=typeof t)throw new TypeError("'init' is not an object");var i,s,r=void 0===t.priority?"user-visible":t.priority;if(!e.includes(r))throw new TypeError("Invalid task priority: '"+r+"'");this.priority_=r,this.isPriorityChanging_=!1,s=(i=this).signal,Object.defineProperties(s,{priority:{get:function(){return i.priority_},enumerable:!0},onprioritychange:{value:null,writable:!0,enumerable:!0}}),s.addEventListener("prioritychange",e=>{s.onprioritychange&&s.onprioritychange(e)})}setPriority(t){if(!e.includes(t))throw new TypeError("Invalid task priority: "+t);if(this.isPriorityChanging_)throw new DOMException("","NotAllowedError");if(this.signal.priority!==t){this.isPriorityChanging_=!0;var i=this.priority_;this.priority_=t;var s=new n("prioritychange",{previousPriority:i});this.signal.dispatchEvent(s),this.isPriorityChanging_=!1}}}void 0===self.scheduler&&(self.scheduler=new class{constructor(){this.queues_={},e.forEach(e=>{this.queues_[e]=new a}),this.pendingHostCallback_=null,this.signals_=new WeakMap}postTask(t,i){if(void 0!==(i=Object.assign({},i)).signal){if(null===i.signal||!("aborted"in i.signal)||"function"!=typeof i.signal.addEventListener)return Promise.reject(new TypeError("'signal' is not a valid 'AbortSignal'"));if(i.signal&&i.signal.priority&&!e.includes(i.signal.priority))return Promise.reject(new TypeError("Invalid task priority: '"+i.signal.priority+"'"))}if(void 0!==i.priority&&(null===i.priority||!e.includes(i.priority)))return Promise.reject(new TypeError("Invalid task priority: '"+i.priority+"'"));if(void 0===i.delay&&(i.delay=0),i.delay=Number(i.delay),i.delay<0)return Promise.reject(new TypeError("'delay' must be a positive number."));var s={callback:t,options:i,resolve:null,reject:null,hostCallback:null,abortCallback:null,onTaskCompleted:function(){this.options.signal&&!this.abortCallback&&(this.options.signal.removeEventListener("abort",this.abortCallback),this.abortCallback=null)},onTaskAborted:function(){this.hostCallback&&(this.hostCallback.cancel(),this.hostCallback=null),this.options.signal.removeEventListener("abort",this.abortCallback),this.abortCallback=null,this.reject(new DOMException("The task was aborted.","AbortError"))},isAborted:function(){return this.options.signal&&this.options.signal.aborted}},r=new Promise((e,t)=>{s.resolve=e,s.reject=t});return this.schedule_(s),r}schedule_(e){var t=e.options.signal;if(t){if(t.aborted)return void e.reject(new DOMException("The task was aborted.","AbortError"));e.abortCallback=()=>{e.onTaskAborted()},t.addEventListener("abort",e.abortCallback)}e.options.delay>0?e.hostCallback=new s(()=>{e.hostCallback=null,this.onTaskDelayExpired_(e)},null,e.options.delay):(this.pushTask_(e),this.scheduleHostCallbackIfNeeded_())}onTaskDelayExpired_(e){this.pushTask_(e),this.pendingHostCallback_&&(this.pendingHostCallback_.cancel(),this.pendingHostCallback_=null),this.schedulerEntryCallback_()}onPriorityChange_(e){var t=this.signals_.get(e);if(void 0===t)throw new Error("Attempting to change priority on an unregistered signal");t!==e.priority&&(this.queues_[e.priority].merge(this.queues_[t],t=>t.options.signal===e),this.signals_.set(e,e.priority))}schedulerEntryCallback_(){this.pendingHostCallback_=null,this.runNextTask_(),this.scheduleHostCallbackIfNeeded_()}scheduleHostCallbackIfNeeded_(){var e=this.nextTaskPriority_();null!=e&&("background"!==e&&this.pendingHostCallback_&&this.pendingHostCallback_.isIdleCallback()&&(this.pendingHostCallback_.cancel(),this.pendingHostCallback_=null),this.pendingHostCallback_||(this.pendingHostCallback_=new s(()=>{this.schedulerEntryCallback_()},e,0)))}pushTask_(t){var i;if(!e.includes(i=t.options.priority?t.options.priority:t.options.signal&&t.options.signal.priority?t.options.signal.priority:"user-visible"))throw new TypeError("Invalid task priority: "+i);if(t.options.signal&&t.options.signal.priority){var s=t.options.signal;this.signals_.has(s)||(s.addEventListener("prioritychange",()=>{this.onPriorityChange_(s)}),this.signals_.set(s,s.priority))}this.queues_[i].push(t)}runNextTask_(){var e=null;do{var t=this.nextTaskPriority_();if(null==t)return;e=this.queues_[t].takeNextTask()}while(e.isAborted());try{var i=e.callback();e.resolve(i)}catch(t){e.reject(t)}finally{e.onTaskCompleted()}}nextTaskPriority_(){for(var t=0;t<e.length;t++){var i=e[t];if(!this.queues_[i].isEmpty())return i}return null}},self.TaskController=l,self.TaskPriorityChangeEvent=n)}();
!function(){var e=["user-blocking","user-visible","background"];class t{constructor(){this.channel_=new MessageChannel,this.sendPort_=this.channel_.port2,this.messages_={},this.nextMessageHandle_=1,this.channel_.port1.onmessage=e=>this.onMessageReceived_(e)}queueCallback(e){var t=this.nextMessageHandle_++;return this.messages_[t]=e,this.sendPort_.postMessage(t),t}cancelCallback(e){delete this.messages_[e]}onMessageReceived_(e){var t=e.data;if(t in this.messages_){var i=this.messages_[t];delete this.messages_[t],i()}}}function i(){return i.instance_||(i.instance_=new t),i.instance_}class s{constructor(e,t,i){void 0===i&&(i=0),this.callback_=e,this.callbackType_=null,this.handle_=null,this.canceled_=!1,this.schedule_(t,i)}isIdleCallback(){return 0===this.callbackType_}cancel(){if(!this.canceled_)switch(this.canceled_=!0,this.callbackType_){case 0:cancelIdleCallback(this.handle_);break;case 1:clearTimeout(this.handle_);break;case 2:i().cancelCallback(this.handle_);break;default:throw new TypeError("Unknown CallbackType")}}schedule_(t,s){if(s&&s>0||"function"!=typeof MessageChannel)return s||(s=0),this.callbackType_=1,void(this.handle_=setTimeout(()=>{this.runCallback_()},s));if(!e.includes(t))throw new TypeError("Invalid task priority : "+t);"background"===t&&"function"==typeof requestIdleCallback?(this.handle_=requestIdleCallback(()=>{this.runCallback_()}),this.callbackType_=0):(this.handle_=i().queueCallback(()=>{this.runCallback_()}),this.callbackType_=2)}runCallback_(){this.canceled_||this.callback_()}}var r=0;class n{constructor(){this.head_=null,this.tail_=null}isEmpty(){return null==this.head_}push(e){if("object"!=typeof e)throw new TypeError("Task must be an Object");e.tq_sequence_=r++,this.isEmpty()?(e.tq_prev_=null,this.head_=e):(e.tq_prev_=this.tail_,this.tail_.tq_next_=e),e.tq_next_=null,this.tail_=e}takeNextTask(){if(this.isEmpty())return null;var e=this.head_;return this.remove_(e),e}merge(e,t){if("function"!=typeof t)throw new TypeError("Must provide a selector function.");if(null==e)throw new Error("sourceQueue cannot be null");for(var i=this.head_,s=null,r=e.head_;r;){var n=r;if(r=r.tq_next_,t(n)){for(e.remove_(n);i&&i.tq_sequence_<n.tq_sequence_;)s=i,i=i.tq_next_;this.insert_(n,s),s=n}}}toArray(){for(var e=this.head_,t=[];null!==e;)t.push(e),e=e.tq_next_;return t}insert_(e,t){if(t!=this.tail_){var i=t?t.tq_next_:this.head_;e.tq_next_=i,i.tq_prev_=e,e.tq_prev_=t,null!=t?t.tq_next_=e:this.head_=e}else this.push(e)}remove_(e){if(null==e)throw new Error("Expected task to be non-null");e===this.head_&&(this.head_=e.tq_next_),e===this.tail_&&(this.tail_=this.tail_.tq_prev_),e.tq_next_&&(e.tq_next_.tq_prev_=e.tq_prev_),e.tq_prev_&&(e.tq_prev_.tq_next_=e.tq_next_)}}class a extends Event{constructor(t,i){if(!i||!e.includes(i.previousPriority))throw new TypeError("Invalid task priority: '"+i.previousPriority+"'");super(t),this.previousPriority=i.previousPriority}}class l extends AbortController{constructor(t){if(void 0===t&&(t={}),super(),null==t&&(t={}),"object"!=typeof t)throw new TypeError("'init' is not an object");var i,s,r=void 0===t.priority?"user-visible":t.priority;if(!e.includes(r))throw new TypeError("Invalid task priority: '"+r+"'");this.priority_=r,this.isPriorityChanging_=!1,s=(i=this).signal,Object.defineProperties(s,{priority:{get:function(){return i.priority_},enumerable:!0},onprioritychange:{value:null,writable:!0,enumerable:!0}}),s.addEventListener("prioritychange",e=>{s.onprioritychange&&s.onprioritychange(e)})}setPriority(t){if(!e.includes(t))throw new TypeError("Invalid task priority: "+t);if(this.isPriorityChanging_)throw new DOMException("","NotAllowedError");if(this.signal.priority!==t){this.isPriorityChanging_=!0;var i=this.priority_;this.priority_=t;var s=new a("prioritychange",{previousPriority:i});this.signal.dispatchEvent(s),this.isPriorityChanging_=!1}}}void 0===self.scheduler&&(self.scheduler=new class{constructor(){this.queues_={},e.forEach(e=>{this.queues_[e]=new n}),this.pendingHostCallback_=null,this.signals_=new WeakMap}postTask(t,i){if(void 0!==(i=Object.assign({},i)).signal){if(null===i.signal||!("aborted"in i.signal)||"function"!=typeof i.signal.addEventListener)return Promise.reject(new TypeError("'signal' is not a valid 'AbortSignal'"));if(i.signal&&i.signal.priority&&!e.includes(i.signal.priority))return Promise.reject(new TypeError("Invalid task priority: '"+i.signal.priority+"'"))}if(void 0!==i.priority&&(null===i.priority||!e.includes(i.priority)))return Promise.reject(new TypeError("Invalid task priority: '"+i.priority+"'"));if(void 0===i.delay&&(i.delay=0),i.delay=Number(i.delay),i.delay<0)return Promise.reject(new TypeError("'delay' must be a positive number."));var s={callback:t,options:i,resolve:null,reject:null,hostCallback:null,abortCallback:null,onTaskCompleted:function(){this.options.signal&&this.abortCallback&&(this.options.signal.removeEventListener("abort",this.abortCallback),this.abortCallback=null)},onTaskAborted:function(){this.hostCallback&&(this.hostCallback.cancel(),this.hostCallback=null),this.options.signal.removeEventListener("abort",this.abortCallback),this.abortCallback=null,this.reject(this.options.signal.reason)},isAborted:function(){return this.options.signal&&this.options.signal.aborted}},r=new Promise((e,t)=>{s.resolve=e,s.reject=t});return this.schedule_(s),r}schedule_(e){var t=e.options.signal;if(t){if(t.aborted)return void e.reject(t.reason);e.abortCallback=()=>{e.onTaskAborted()},t.addEventListener("abort",e.abortCallback)}e.options.delay>0?e.hostCallback=new s(()=>{e.hostCallback=null,this.onTaskDelayExpired_(e)},null,e.options.delay):(this.pushTask_(e),this.scheduleHostCallbackIfNeeded_())}onTaskDelayExpired_(e){this.pushTask_(e),this.pendingHostCallback_&&(this.pendingHostCallback_.cancel(),this.pendingHostCallback_=null),this.schedulerEntryCallback_()}onPriorityChange_(e){var t=this.signals_.get(e);if(void 0===t)throw new Error("Attempting to change priority on an unregistered signal");t!==e.priority&&(this.queues_[e.priority].merge(this.queues_[t],t=>t.options.signal===e),this.signals_.set(e,e.priority))}schedulerEntryCallback_(){this.pendingHostCallback_=null,this.runNextTask_(),this.scheduleHostCallbackIfNeeded_()}scheduleHostCallbackIfNeeded_(){var e=this.nextTaskPriority_();null!=e&&("background"!==e&&this.pendingHostCallback_&&this.pendingHostCallback_.isIdleCallback()&&(this.pendingHostCallback_.cancel(),this.pendingHostCallback_=null),this.pendingHostCallback_||(this.pendingHostCallback_=new s(()=>{this.schedulerEntryCallback_()},e,0)))}pushTask_(t){var i;if(!e.includes(i=t.options.priority?t.options.priority:t.options.signal&&t.options.signal.priority?t.options.signal.priority:"user-visible"))throw new TypeError("Invalid task priority: "+i);if(t.options.signal&&t.options.signal.priority){var s=t.options.signal;this.signals_.has(s)||(s.addEventListener("prioritychange",()=>{this.onPriorityChange_(s)}),this.signals_.set(s,s.priority))}this.queues_[i].push(t)}runNextTask_(){var e=null;do{var t=this.nextTaskPriority_();if(null==t)return;e=this.queues_[t].takeNextTask()}while(e.isAborted());try{var i=e.callback();e.resolve(i)}catch(t){e.reject(t)}finally{e.onTaskCompleted()}}nextTaskPriority_(){for(var t=0;t<e.length;t++){var i=e[t];if(!this.queues_[i].isEmpty())return i}return null}},self.TaskController=l,self.TaskPriorityChangeEvent=a)}();
//# sourceMappingURL=scheduler-polyfill.js.map
{
"name": "scheduler-polyfill",
"version": "1.0.0",
"version": "1.0.1",
"description": "Polyfill of self.scheduler API",

@@ -42,8 +42,8 @@ "main": "./dist/scheduler-polyfill.js",

"eslint-config-google": "^0.14.0",
"karma": "^5.2.3",
"karma": "^6.4.2",
"karma-chai": "^0.1.0",
"karma-chrome-launcher": "^3.1.0",
"karma-mocha": "^2.0.1",
"microbundle": "^0.14.1",
"mocha": "^8.2.1"
"microbundle": "^0.15.1",
"mocha": "^10.2.0"
},

@@ -50,0 +50,0 @@ "eslintConfig": {

@@ -16,12 +16,26 @@ # Scheduler Polyfill

## Requirements
A browser that supports ES6 is required for this polyfill.
## Usage
### Requirements
**Include via unpkg:**
A browser that supports ES6 is required for this polyfill.
```html
<script src="https://unpkg.com/scheduler-polyfill"></script>
```
### Local Builds
**Using with npm and a bundler**:
#### Download and Build the Polyfill
```console
npm install scheduler-polyfill
```
```js
import 'scheduler-polyfill';
```
**Building from source:**
```console

@@ -35,7 +49,2 @@ git clone https://github.com/GoogleChromeLabs/scheduler-polyfill

#### Usage in Browsers
The following will add `self.scheduler` if it does not exist, along with the
`TaskController` and `TaskPriorityChangeEvent` classes.
```html

@@ -42,0 +51,0 @@ <script src="/path_to_polyfill/scheduler-polyfill.js"></script>

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc