From bf5f56ca2cceb73fc125eda60d293f188286f9fa Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Fri, 2 Apr 2021 11:25:42 +0300 Subject: [PATCH] docs... Signed-off-by: Alex A. Naanou --- Array.js | 1 + Date.js | 2 +- README.md | 329 +++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 4 files changed, 332 insertions(+), 2 deletions(-) diff --git a/Array.js b/Array.js index d69d837..c0ff669 100644 --- a/Array.js +++ b/Array.js @@ -92,6 +92,7 @@ var wrapIterFunc = function(iter){ // go through a chunk... // ...the mixin can be generic, i.e. applicable to Array, and // other stuff... +// XXX add time-based chunk iteration... var makeChunkIter = function(iter, wrapper){ wrapper = wrapper || function(res, func, array, e){ diff --git a/Date.js b/Date.js index 801391e..0186543 100644 --- a/Date.js +++ b/Date.js @@ -43,7 +43,7 @@ object.Mixin('DateMixin', 'soft', { + parseFloat(m || 0))*60 + parseFloat(s || 0))*1000 + ms) - // 00set format... + // 00sec format... } else { var val = parseFloat(str) str = str.trim() diff --git a/README.md b/README.md index f206c6f..891a64c 100644 --- a/README.md +++ b/README.md @@ -807,6 +807,9 @@ The `.map(..)`, `.filter(..)` and `.reduce(..)` alternatives respectively: (, , , ) -> ``` + + + All three support chunk handlers in the same way (illustrated on `.mapChunks(..)`): ```bnf @@ -823,6 +826,8 @@ All three support chunk handlers in the same way (illustrated on `.mapChunks(..) The `` gets the completed chunk of data after it is computed but before the timeout. + + ## `Map` @@ -831,8 +836,14 @@ but before the timeout. require('ig-types/Map') ``` + + + ### `.sort(..)` + + + ## `Set` @@ -841,15 +852,30 @@ require('ig-types/Map') require('ig-types/Set') ``` + + + ### `.unite(..)` + + + ### `.intersect(..)` + + + ### `.subtract(..)` + + + ### `.sort(..)` + + + ## `Date` @@ -857,18 +883,102 @@ require('ig-types/Set') require('ig-types/Date') ``` + + + ### `Date.timeStamp(..)` + + + ### `Date.fromTimeStamp(..)` + + + ### `Date.str2ms(..)` +Convert a string describing a time period into milliseconds. +```bnf +Date.str2ms() + -> +``` + +Examples: +```javascript +// time units (d/h/m/s/ms) and their variants... +var a = Date.str2ms('3 seconds') // -> 3000 + +var b = Date.str2ms('0.1h') // -> 360000 + +// time period (DD:HH:MM:SS:mmm)... +var c = Date.str2ms('00:20:001') // -> 20001 +var d = Date.str2ms('1:3') // -> 63000 +``` + +Note that time periods are seconds-based by default unless it contains three +digits then it defaults to milliseconds: +```javascript +// least significant unit is seconds by default... +var e = Date.str2ms(':3') // -> 3000 + +// when the least significant unit contains 3 digits it is read as ms... +var f = Date.str2ms(':030') // -> 30 +``` + + +Supported formats: +```bnf + ::= + + | + | + | + | + | + + ::= + + | ms + | m[illi][-]s[ec[ond[s]]] + + ::= + s + | s[ec[ond[s]]] + + ::= + m + | m[in[ute[s]]] + + ::= + h + | h[our[s]] + + ::= + d + | d[ay[s]] + + ::= + [[[DD:]HH:]MM]:SS[:mmm] + | [[[[DD:]HH:]MM]:SS]:mmm +``` + + ### `.toShortDate(..)` + + + ### `.getTimeStamp(..)` + + + ### `.setTimeStamp(..)` + + + ## `String` @@ -878,8 +988,14 @@ require('ig-types/String') ### `.capitalize()` + + + ### `.indent(..)` + + + ## `RegExp` @@ -887,8 +1003,14 @@ require('ig-types/String') require('ig-types/RegExp') ``` + + + ### `RegExp.quoteRegExp(..)` + + + ## `Promise` @@ -900,16 +1022,31 @@ or var promise = require('ig-types/Promise') ``` + + + ### Cooperative promises + + + #### `Promise.cooperative(..)` + + + #### `.set(..)` + + + #### `.isSet` + + + ### Promise iteration @@ -974,13 +1111,25 @@ Create an _iterable promise_ Promise.iter() -> ``` + + + #### `.map(..)` / `.filter(..)` / `.reduce(..)` + + + #### `.flat(..)` + + + #### `.then(..)` / `.catch(..)` / `.finally(..)` + + + #### Advanced handler ```bnf @@ -1027,6 +1176,9 @@ var p = Promise.iter( var generator = require('ig-types/generator') ``` + + + ### The basics @@ -1132,6 +1284,9 @@ XXX .reduce(..) can return a non-iterable -- test and document this case... -> ``` + + + @@ -1264,18 +1419,33 @@ XXX only list the differences + reference to the above... #### `.at(..)` + + + #### `.shift()` / `.pop()` + + + #### `.slice(..)` This is like `Array`'s `.slice(..)` but does not support negative indexes. #### `.map(..)` / `.filter(..)` / `.reduce(..)` / `.flat()` + + + #### `.toArray()` + + + #### `.then(..)` / `.catch(..)` / `.finally(..)` + + + ## Containers @@ -1404,18 +1574,39 @@ otherwise [`.unorderedRename(..)`](#unique-key-mapunorderedrename) is called. #### `.orderedRename(..)` + + + #### `.unorderedRename(..)` + + + #### `.keysOf(..)` + + + #### `.originalKey(..)` + + + #### `.uniqueKey(..)` + + + #### `.__key_pattern__` + + + #### `.__unordered_rename__` + + + ## Event @@ -1426,29 +1617,62 @@ var event = require('ig-types/event') ### `event.Eventfull(..)` + + + ### `event.Event(..)` + + + ### `event.TRIGGER` + + + Special value when passed to an event method as first argument will force it to trigger event if the first argument was a function. ### `event.EventHandlerMixin` + + + #### `.on(..)` + + + #### `.one(..)` + + + #### `.off(..)` + + + #### `.trigger(..)` + + + ### `event.EventDocMixin` + + + #### `.eventfull` + + + #### `.events` + + + ### `event.EventMixin` Combines [`event.EventHandlerMixin`](#eventeventhandlermixin) and @@ -1462,16 +1686,28 @@ var runner = require('ig-types/runner') ### Micro task queue + + + This includes [`event.EventMixin`](#eventeventmixin). #### `STOP` + + + #### `SKIP` + + + #### `Queue(..)` / `Queue.runTasks(..)` + + + #### `Queue.handle(..)` Create a handler queue object. @@ -1498,38 +1734,77 @@ var handler_queue = Queue({ #### `.state` + + + #### `.start(..)` + + + #### `.stop(..)` + + + #### `.runTask(..)` + + + #### `.tasksAdded(..)` (event) + + + #### `.taskStarting(..)` (event) + + + #### `.taskFailed(..)` (event) + + + #### `.taskCompleted(..)` (event) Event, triggered when a task is completed passing in its result. + + + #### `.queueEmpty(..)` (event) + + + #### `.prioritize(..)` + + + #### `.delay(..)` + + + #### `.add(..)` + + + #### `.clear(..)` + + + #### `FinalizableQueue(..)` / `FinalizableQueue.runTasks(..)` (Queue) @@ -1547,53 +1822,107 @@ When a `` reaches a terminal state it is frozen. #### `.done(..)` (event/method) + + + #### `.abort(..)` (event/method) + + + #### `.promise(..)` + + + #### `.then(..)` + + + #### `.catch(..)` + + + ### Large task management + + + #### `runner.TaskManager(..)` + + + This includes [`event.EventMixin`](#eventeventmixin). #### `.Task(..)` + + + #### `.sync_start` + + + #### `.record_times` + + + #### `.titled(..)` + + + #### `.send(..)` + + + #### `.stop(..)` + + + #### `.done(..)` (event) + + + #### `.error(..)` (event) + + + #### `.tasksDone(..)` (event) + + + #### `runner.TaskTicket(..)` + + + #### `runner.TaskMixin(..)` + + + ## License diff --git a/package.json b/package.json index eda777f..6ce3b9e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ig-types", - "version": "6.0.9", + "version": "6.0.10", "description": "Generic JavaScript types and type extensions...", "main": "main.js", "scripts": {