mirror of
https://github.com/flynx/types.js.git
synced 2025-10-29 02:20:07 +00:00
event.js seems stable...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
7dc49d1bea
commit
aadb1a7c07
36
README.md
36
README.md
@ -87,6 +87,18 @@ A library of JavaScript type extensions, types and type utilities.
|
||||
- [`<unique-key-map>.uniqueKey(..)`](#unique-key-mapuniquekey)
|
||||
- [`<unique-key-map>.__key_pattern__`](#unique-key-map__key_pattern__)
|
||||
- [`<unique-key-map>.__unordered_rename__`](#unique-key-map__unordered_rename__)
|
||||
- [Event](#event)
|
||||
- [`event.Eventfull(..)`](#eventeventfull)
|
||||
- [`event.Event(..)`](#eventevent)
|
||||
- [`event.EventHandlerMixin`](#eventeventhandlermixin)
|
||||
- [`<obj>.on(..)`](#objon)
|
||||
- [`<obj>.one(..)`](#objone)
|
||||
- [`<obj>.off(..)`](#objoff)
|
||||
- [`<obj>.trigger(..)`](#objtrigger)
|
||||
- [`event.EventDocMixin`](#eventeventdocmixin)
|
||||
- [`<obj>.eventfull`](#objeventfull)
|
||||
- [`<obj>.events`](#objevents)
|
||||
- [`event.EventMixin`](#eventeventmixin)
|
||||
- [Runner](#runner)
|
||||
- [`runner.Queue(..)` / `runner.Queue.run(..)`](#runnerqueue--runnerqueuerun)
|
||||
- [`<queue>.state`](#queuestate)
|
||||
@ -771,6 +783,30 @@ otherwise [`.unorderedRename(..)`](#unique-key-mapunorderedrename) is called.
|
||||
#### `<unique-key-map>.__unordered_rename__`
|
||||
|
||||
|
||||
## Event
|
||||
|
||||
### `event.Eventfull(..)`
|
||||
|
||||
### `event.Event(..)`
|
||||
|
||||
### `event.EventHandlerMixin`
|
||||
|
||||
#### `<obj>.on(..)`
|
||||
|
||||
#### `<obj>.one(..)`
|
||||
|
||||
#### `<obj>.off(..)`
|
||||
|
||||
#### `<obj>.trigger(..)`
|
||||
|
||||
### `event.EventDocMixin`
|
||||
|
||||
#### `<obj>.eventfull`
|
||||
|
||||
#### `<obj>.events`
|
||||
|
||||
### `event.EventMixin`
|
||||
|
||||
## Runner
|
||||
|
||||
### `runner.Queue(..)` / `runner.Queue.run(..)`
|
||||
|
||||
4
event.js
4
event.js
@ -215,10 +215,10 @@ module.EventHandlerMixin = {
|
||||
one: function(evt, func){
|
||||
var handler
|
||||
this.on(evt,
|
||||
handler = Object.assing(
|
||||
handler = Object.assign(
|
||||
function(handle, ...args){
|
||||
this.off(evt, handler)
|
||||
return func.call(this, handle, ...args) },
|
||||
return func.call(this, handle, ...args) }.bind(this),
|
||||
{__event_original_handler__: func}))
|
||||
return this },
|
||||
// XXX do we need .off(evt, 'all')
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ig-types",
|
||||
"version": "3.7.0",
|
||||
"version": "3.7.1",
|
||||
"description": "Generic JavaScript types and type extensions...",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
||||
20
runner.js
20
runner.js
@ -27,12 +27,14 @@ var events = require('./event')
|
||||
/*********************************************************************/
|
||||
// helpers...
|
||||
|
||||
/* XXX LEGACY...
|
||||
var makeEvent = function(func, mode){
|
||||
return Object.assign(
|
||||
func,
|
||||
{__event__: mode || true}) }
|
||||
var makeActionEvent = function(func){
|
||||
return makeEvent(func, 'action') }
|
||||
//*/
|
||||
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
@ -133,7 +135,7 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
// .trigger('start')
|
||||
// .state = 'running'
|
||||
// and similar for 'stop'...
|
||||
/*/ XXX ASAP migrate to event.js...
|
||||
/* XXX LEGACY...
|
||||
start: makeActionEvent(function(handler){
|
||||
// register handler...
|
||||
if(typeof(handler) == 'function'){
|
||||
@ -146,7 +148,6 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
this.trigger('start!')
|
||||
this._run()
|
||||
return this }),
|
||||
// XXX ASAP migrate to event.js...
|
||||
stop: makeActionEvent(function(handler){
|
||||
// register handler...
|
||||
if(typeof(handler) == 'function'){
|
||||
@ -162,23 +163,20 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
start: events.Event('start', function(handle){
|
||||
// can't start while running...
|
||||
if(this.state == 'running'){
|
||||
handle(false)
|
||||
return this }
|
||||
return handle(false) }
|
||||
this.__state = 'running'
|
||||
this._run() }),
|
||||
stop: events.Event('stop', function(handle){
|
||||
// can't stop while not running...
|
||||
if(this.state == 'stopped'){
|
||||
handle(false)
|
||||
return this }
|
||||
this.__state = 'stopped'
|
||||
return this }),
|
||||
return handle(false) }
|
||||
this.__state = 'stopped' }),
|
||||
//*/
|
||||
|
||||
|
||||
// events/actions - state transitions...
|
||||
//
|
||||
/*/ XXX ASAP migrate to event.js...
|
||||
/* XXX LEGACY...
|
||||
clear: makeActionEvent(function(handler){
|
||||
if(typeof(handler) == 'function'){
|
||||
return this.on('clear', handler) }
|
||||
@ -306,7 +304,9 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
&& typeof(this[0].finally) != 'function'){
|
||||
Object.assign(this, this.shift()) }
|
||||
this._run() },
|
||||
}, events.EventMixin))
|
||||
},
|
||||
// the event API mixin...
|
||||
events.EventMixin))
|
||||
|
||||
|
||||
|
||||
|
||||
17
test.js
17
test.js
@ -463,17 +463,22 @@ Events.cases({
|
||||
assert(call('bareEvent') == 'bareEvent', '<obj-w-events>.bareEvent(..) return value.')
|
||||
|
||||
|
||||
// unbind: .one(..) / .off(..)
|
||||
obj.one('event', function(){
|
||||
called['event-one-time-handler'] =
|
||||
(called['event-one-time-handler'] || 0) + 1 })
|
||||
obj
|
||||
.event()
|
||||
.event()
|
||||
.event()
|
||||
assert(called['event-one-time-handler'] == 1, '.one("event", ..) handler cleared.')
|
||||
|
||||
// XXX test passing args...
|
||||
|
||||
// XXX test .one(..) / .off(..)
|
||||
|
||||
// unbind...
|
||||
|
||||
// trigger...
|
||||
// XXX test different mode events...
|
||||
|
||||
// re-bind...
|
||||
|
||||
// trigger...
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user