queueobj 7.2.4 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,9 +7,9 @@ Included tag appenders:
7
7
  * func_all - asynchronous - process custom functions to added objects.
8
8
  * top_one - asynchronous - process only the object in the 0(zero) position of the process array.
9
9
  * bottom_one - asynchronous - process only the object in the last position of the process array.
10
- * sync - synchronous - process array objects in various ways: by items, by Ids as well as custom functions.
11
10
  * sync_all - synchronous - queue and process all objects by items as well as custom functions.
12
11
  * status - synchronous - queue and process all objects by status.
12
+ * version - synchronous - queue and process all objects by version.
13
13
 
14
14
  Installation
15
15
  ---------
@@ -30,9 +30,9 @@ node test_all
30
30
  node test_top_one
31
31
  node test_bottom_one
32
32
  node test_func_all
33
- node test_sync
34
33
  node test_sync_all
35
34
  node test_status
35
+ node test_version
36
36
 
37
37
  ```
38
38
 
package/app.js CHANGED
@@ -10,7 +10,8 @@ var colors = require('colors'),
10
10
  bottom_one = require('./lib/appenders/bottom_one'),
11
11
  sync = require('./lib/appenders/sync'),
12
12
  sync_all = require('./lib/appenders/sync_all'),
13
- status = require('./lib/appenders/status')
13
+ status = require('./lib/appenders/status'),
14
+ version = require('./lib/appenders/version')
14
15
 
15
16
  class QueueObj {
16
17
 
@@ -24,8 +25,8 @@ class QueueObj {
24
25
  t.top_one = null
25
26
  t.bottom_one = null
26
27
  t.array = null
27
- t.sync = null
28
28
  t.status = null
29
+ t.version = null
29
30
  t.stats = false
30
31
  t.sync_all = null
31
32
  t.func_all = null
@@ -47,10 +48,10 @@ class QueueObj {
47
48
  }
48
49
  }
49
50
 
50
- getStats (){
51
+ getStats() {
51
52
  return this.stats
52
53
  }
53
-
54
+
54
55
  getObjectById(id) {
55
56
  let t = this, i
56
57
  for (i = 0; i < t.objs.length; i++) {
@@ -75,13 +76,25 @@ class QueueObj {
75
76
  return null
76
77
  }
77
78
 
79
+ getObjectByVersion(version) {
80
+ let t = this, i
81
+ for (i = 0; i < t.objs.length; i++) {
82
+ if (typeof t.objs[i] != 'undefined' &&
83
+ typeof t.objs[i].version != 'undefined' &&
84
+ t.objs[i].version == version) {
85
+ return t.objs[i]
86
+ }
87
+ }
88
+ return null
89
+ }
90
+
78
91
  count() {
79
- return t.objs.length
92
+ return this.objs.length
80
93
  }
81
94
 
82
95
  get(num) {
83
- if (num < t.objs.length)
84
- return t.objs[num]
96
+ if (num < this.objs.length)
97
+ return this.objs[num]
85
98
  return false
86
99
  }
87
100
 
@@ -101,12 +114,12 @@ class QueueObj {
101
114
  try {
102
115
  var t = this
103
116
  t.props = props
104
- t.stats = (typeof props.stats != 'undefined') ? props.stats : false;
117
+ t.stats = (typeof props.stats != 'undefined') ? props.stats : false;
105
118
  if (typeof props != `undefined` &&
106
119
  typeof props.appender != `undefined` &&
107
120
  typeof props.appender == 'string') {
108
121
  props.getParent = t.getParent
109
- switch (props.appender) {
122
+ switch (props.appender) {
110
123
  case 'all':
111
124
  t.all = new all(props)
112
125
  break
@@ -125,9 +138,11 @@ class QueueObj {
125
138
  case 'status':
126
139
  t.status = new status(props)
127
140
  break
128
- case 'sync':
141
+ case 'version':
142
+ t.version = new version(props)
143
+ break
129
144
  case 'sync_all':
130
- t.sync = new sync(props)
145
+ t.sync_all = new sync_all(props)
131
146
  break
132
147
  default:
133
148
  throw new Error(`appender(${props.appender}) not found`)
@@ -142,13 +157,55 @@ class QueueObj {
142
157
  }
143
158
 
144
159
  add(obj) {
160
+ var t = this
145
161
  try {
146
- var t = this
162
+ if (t.all != null) {
163
+ obj.getType = (o) => {
164
+ return 'all'
165
+ }
166
+ }
167
+ if (t.top_one != null) {
168
+ obj.getType = (o) => {
169
+ return 'top_one'
170
+ }
171
+ }
172
+ if (t.bottom_one != null) {
173
+ t.objs = []
174
+ obj.getType = (o) => {
175
+ return 'bottom_one'
176
+ }
177
+ }
178
+ if (t.func_all != null) {
179
+ obj.getType = (o) => {
180
+ return 'func_all'
181
+ }
182
+ }
183
+ if (t.sync_all != null) {
184
+ obj.getType = (o) => {
185
+ return 'sync_all'
186
+ }
187
+ }
188
+ if (typeof obj.status != 'undefined') {
189
+ obj.getType = (o) => {
190
+ return o.status
191
+ }
192
+ }
193
+ if (typeof obj.version != 'undefined') {
194
+ obj.getType = (o) => {
195
+ return o.version
196
+ }
197
+ }
198
+ if (t.top_one != null) {
199
+ if (t.objs.length == 0) {
200
+ t.objs.push(obj)
201
+ }
202
+ return t
203
+ }
147
204
  t.objs.push(obj)
148
205
  return t
149
206
  } catch (e) {
150
207
  e.message = "queueObj app.js add error: " + e.message
151
- console.log(e.message)
208
+ console.log(e.message.red)
152
209
  throw (e)
153
210
  }
154
211
  }
@@ -163,57 +220,68 @@ class QueueObj {
163
220
 
164
221
  process() {
165
222
  try {
166
- var t = this, pro = { items: [] }
167
- switch (t.props.appender) {
223
+ var t = this, pro = { dat_array: [] }
224
+ switch (t.props.appender) {
168
225
  case 'all':
169
- t.objs.map((item, i) => {
170
- pro.items.push(i)
171
- })
226
+ pro.dat_array.push('all')
172
227
  t.all.await(pro)
173
228
  return t.all.process()
174
229
  case 'top_one':
175
- pro.items = [0]
230
+ pro.dat_array.push('top_one')
231
+ t.top_one.await(pro)
176
232
  return t.top_one.process()
177
233
  case 'bottom_one':
178
- pro.items = [pro.items.length - 1]
234
+ pro.dat_array.push('bottom_one')
235
+ t.bottom_one.await(pro)
179
236
  return t.bottom_one.process()
180
237
  case 'func_all':
181
- t.objs.map((item, i) => {
182
- pro.items.push(i)
183
- })
238
+ pro.dat_array.push('func_all')
184
239
  t.func_all.await(pro)
185
240
  return t.func_all.process()
186
241
  case 'sync':
187
- return t.sync.process()
242
+ case 'sync_all':
243
+ pro.dat_array.push('sync_all')
244
+ t.sync_all.await(pro)
245
+ return t.sync_all.process()
188
246
  case 'status':
189
247
  return t.status.process()
190
- case 'sync_all':
191
- t.objs.map((item, i) => {
192
- pro.items.push(i)
193
- })
194
- t.sync.await(pro).then(res => {
195
- console.log(`done with ${JSON.stringify(pro)}: (${res})`.green)
196
- }, err => {
197
- console.log(`error ${JSON.stringify(pro)}: (${err})`.red)
198
- })
199
- return t.sync.process()
248
+ case 'version':
249
+ return t.version.process()
250
+ // case 'sync_all':
251
+ // t.objs.map((item, i) => {
252
+ // pro.items.push(i)
253
+ // })
254
+ // t.sync.await(pro).then(res => {
255
+ // console.log(`done with ${JSON.stringify(pro)}: (${res})`.green)
256
+ // }, err => {
257
+ // console.log(`error ${JSON.stringify(pro)}: (${err})`.red)
258
+ // })
259
+ // return t.sync.process()
200
260
  default:
201
261
  throw new Error(`nothing to process`)
202
262
  }
203
263
  } catch (e) {
204
264
  e.message = "queueObj app.js load error: " + e.message
205
- console.log(e.message)
265
+ console.log(e.message.red)
206
266
  throw (e)
207
267
  }
208
268
  }
209
269
 
210
270
  await(props) {
271
+ var t = this, pro
211
272
  try {
212
- var t = this
213
- if (t.sync != null)
273
+ if (t.sync != null) {
274
+ pro = { dat_array: props.items }
214
275
  return t.sync.await(props)
215
- if (t.status != null)
216
- return t.status.await(props)
276
+ }
277
+ if (t.status != null) {
278
+ pro = { dat_array: props.status }
279
+ return t.status.await(pro)
280
+ }
281
+ if (t.version != null) {
282
+ pro = { dat_array: props.version }
283
+ return t.version.await(pro)
284
+ }
217
285
  } catch (e) {
218
286
  e.message = "queueObj app.js load error: " + e.message
219
287
  console.log(e.message)
@@ -9,12 +9,11 @@ var colors = require('colors')
9
9
  exports = module.exports = class base {
10
10
  constructor(props) {
11
11
  let t = this
12
- t.props_array = []
12
+ t.await_array = []
13
13
  t.resolve_array = []
14
14
  t.reject_array = []
15
- t.status_props_array = []
16
- t.process_item = -1
17
- t.process_array_item = -1
15
+ t.process_objs_item = 0
16
+ t.process_props_item = 0
18
17
  t.any_errors = false
19
18
  t.getParent = props.getParent
20
19
  t.dt_start = null
@@ -24,9 +23,10 @@ exports = module.exports = class base {
24
23
  t.process_all = t.process_all.bind(this)
25
24
  }
26
25
 
26
+
27
27
  await(props) {
28
28
  let t = this
29
- t.props_array.push(props)
29
+ t.await_array.push(props)
30
30
  return new Promise((resolve, reject) => {
31
31
  t.resolve_array.push(resolve)
32
32
  t.reject_array.push(reject)
@@ -35,16 +35,16 @@ exports = module.exports = class base {
35
35
 
36
36
  process() {
37
37
  let t = this
38
- t.process_item = 0
39
- t.process_array_item = 0
38
+ t.process_objs_item = 0
39
+ t.process_props_item = 0
40
+ t.await_item = 0
40
41
  t.dt_start = new Date(); // start measuring time
41
- // t.props_array = []
42
+ // t.await_array = []
42
43
  // t.resolve_array = []
43
44
  // t.reject_array = []
44
45
  // t.status_props_array = []
45
46
 
46
47
  return new Promise((resolve, reject) => {
47
- t.props_array.push({ the: 'end' })
48
48
  t.resolve_array.push(resolve)
49
49
  t.reject_array.push(reject)
50
50
  t.process_all()
@@ -60,94 +60,105 @@ exports = module.exports = class base {
60
60
  }
61
61
 
62
62
  process_all() {
63
- let t = this, obj, xItems = null, pro, itm, msg
64
- t.props_array.map((props, i) => {
65
- if (i == t.process_item) {
66
- if (typeof props != 'undefined' && typeof props.the != 'undefined' && props.the == 'end') {
67
- if (t.any_errors)
68
- t.reject_array[i](`there were errors`)
69
- else {
70
- t.dt_end = new Date();
71
- t.resolve_array[i](t.getStats())
72
- }
63
+ let t = this, obj, pro, itm, msg, itm_type, props_type, datA
64
+ try {
65
+ try {
66
+ if (t.process_objs_item >= t.getParent().getObjs().length) {
67
+ t.await_item++
68
+ t.resolve_array[t.resolve_array.length - 1](t.getStats())
73
69
  return
74
70
  }
71
+ } catch (e) {
72
+ return
73
+ }
74
+ try {
75
+ datA = t.await_array[t.await_item].dat_array
76
+ } catch (e) {
77
+ return
78
+ }
79
+ try {
75
80
 
76
- if (typeof props != 'undefined') {
77
- if (typeof props.items != 'undefined') {
78
- xItems = props.items
79
- itm = 'items'
80
- }
81
- if (typeof props.byIds != 'undefined') {
82
- xItems = props.byIds
83
- itm = 'byIds'
84
- }
85
- if (typeof props.status != 'undefined') {
86
- xItems = []
87
- if (t.status_props_array.length == 0) {
88
- t.getParent().getObjs().map((aItem, i) => {
89
- xItems.push(i)
90
- })
91
- }
92
- itm = 'status'
93
- }
94
- }
95
-
96
- if (xItems != null) {
97
- xItems.map((pItem, x) => {
98
- if (x == t.process_array_item) {
99
- try {
100
- switch (itm) {
101
- case 'status':
102
- case 'items':
103
- obj = t.getParent().getItemToProcess(pItem)
104
- break
105
- case 'byIds':
106
- obj = t.getParent().getObjectById(pItem);
107
- break
108
- }
109
- } catch (e) {
110
- console.log(`base error: (${e.message})`.red)
111
- }
112
- pro = (typeof obj == 'function') ? obj : obj.process;
113
- if (itm == 'status') {
114
- if (typeof pro != 'undefined' &&
115
- typeof obj.status != 'undefined' &&
116
- props.status.indexOf(obj.status) > -1) {
117
- //do nothing
118
- } else {
119
- t.process_array_item++
120
- if (t.process_array_item < xItems.length)
121
- t.process_all()
122
- return
123
- }
81
+ datA.map((dat_item, i) => {
82
+ if (i == t.process_props_item) {
83
+ if (t.process_props_item < datA.length) {
84
+ if ((t.await_item) >= t.await_array.length) {
85
+ t.resolve_array[t.resolve_array.length - 1](t.getStats())
86
+ return
124
87
  }
88
+ t.getParent().getObjs().map((pItem, x) => {
89
+ if (x == t.process_objs_item) {
90
+ try {
91
+ obj = t.getParent().getItemToProcess(x)
92
+ } catch (e) {
93
+ e.message = `base error: (${e.message})`
94
+ throw e
95
+ }
96
+ if (typeof obj != 'undefined' && typeof obj.getType != 'function') {
97
+ obj.getType = (o) => { return t.aname }
98
+ }
99
+ if (obj.getType(obj) == dat_item) {
100
+ try {
101
+ pro = (typeof obj == 'function') ? obj : obj.process;
102
+ } catch (e) {
103
+ console.log(`pro error: (${e.message})`.red)
104
+ throw e
105
+ }
125
106
 
126
- pro((obj_props) => {
127
- if (typeof obj_props != 'undefined' &&
128
- typeof obj_props.error != 'undefined' &&
129
- typeof obj_props.error.msg != 'undefined' &&
130
- typeof obj_props.error.msg == 'string') {
131
- msg = `error: ${obj_props.error.msg}`
132
- msg += (typeof obj.id != 'undefined') ? ` id(${obj.id})` : ``;
133
- t.any_errors = true
134
- t.reject_array[t.process_item](msg)
135
- }
136
- t.process_array_item++
137
- if (t.process_array_item < xItems.length)
138
- t.process_all()
139
- else {
140
- t.dt_end = new Date();
141
- t.resolve_array[t.process_item](t.getStats())
142
- t.process_item++
143
- t.process_array_item = 0
107
+ pro((obj_props) => {
108
+ try {
109
+
110
+ if (typeof obj_props != 'undefined' &&
111
+ typeof obj_props.error != 'undefined' &&
112
+ typeof obj_props.error.msg != 'undefined' &&
113
+ typeof obj_props.error.msg == 'string') {
114
+ msg = `error: ${obj_props.error.msg}`
115
+ msg += (typeof obj.id != 'undefined') ? ` id(${obj.id})` : ``;
116
+ t.any_errors = true
117
+ t.reject_array[t.process_props_item](msg)
118
+ }
119
+ t.process_objs_item++
120
+ if (t.process_props_item < datA.length) {
121
+ t.process_all()
122
+ } else {
123
+ t.dt_end = new Date();
124
+ t.resolve_array[t.process_props_item - 1](t.getStats())
125
+ t.process_props_item = 0
126
+ t.process_objs_item = 0
127
+ }
128
+ } catch (e) {
129
+ console.log(`proessing error: (${e.message})`.red)
130
+ throw e
131
+ }
132
+ })
133
+ } else {
134
+ t.process_objs_item++
135
+ if (t.process_objs_item >= t.getParent().getObjs().length) {
136
+ t.resolve_array[t.resolve_array.length - 1](t.getStats())
137
+ }
138
+ }
139
+ } else {
140
+ if (t.process_objs_item >= t.getParent().getObjs().length) {
141
+ t.process_objs_item = 0
142
+ t.process_props_item++
143
+ if (t.process_props_item >= datA.length) {
144
+ t.await_item++
145
+ t.process_props_item = 0
146
+ if (t.await_item <= t.await_array.length)
147
+ t.process_all()
148
+ }
149
+ }
144
150
  }
145
151
  })
146
152
  }
147
- })
148
- }
153
+ }
154
+ })
155
+ } catch (e) {
156
+ e.message = `await error: ${e.message}`
157
+ throw e
149
158
  }
150
- })
159
+ } catch (e) {
160
+ console.log(`process_all error: ${e.message}`.red)
161
+ }
151
162
  }
152
163
  }
153
164
 
@@ -0,0 +1,17 @@
1
+ /*
2
+ * @author Jim Manton: jrman@risebroadband.net
3
+ * @since 2021-03-22
4
+ * lib/appenders/status.js
5
+ */
6
+
7
+ var base = require('./base.js')
8
+
9
+ exports = module.exports = class version extends base {
10
+ constructor(props) {
11
+ super(props)
12
+ var t = this
13
+ t.aname = 'version'
14
+ t.pro_types = ['version']
15
+ return t
16
+ }
17
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": {
3
3
  "name": "Jim Manton"
4
4
  },
5
- "version": "7.2.4",
5
+ "version": "8.0.0",
6
6
  "bundleDependencies": false,
7
7
  "dependencies": {
8
8
  "chai": "^4.3.3",
package/test/package.js CHANGED
@@ -6,7 +6,7 @@ const packageMock = {
6
6
  "author": {
7
7
  "name": "Jim Manton"
8
8
  },
9
- "version": "7.2.4",
9
+ "version": "8.0.0",
10
10
  "bundleDependencies": false,
11
11
  "dependencies": {
12
12
  "chai": "^4.3.3",
@@ -23,24 +23,10 @@ class test3 {
23
23
  }
24
24
  }
25
25
 
26
- let qObj = new queue(), props = { appender: 'bottom_one' }
26
+ let qObj = new queue(), props = { appender: 'bottom_one', stats: true}
27
27
 
28
- qObj.load(props).add(new test1()).add(new test2()).add(new test3())
29
-
30
- qObj.process().then(res => {
31
- console.log(`done with 3rd obj`.green)
32
- })
33
-
34
- qObj.process().then(res => {
35
- console.log(`done with 2nd obj`.green)
36
- })
37
-
38
- qObj.process().then(res => {
39
- console.log(`done with 1st obj`.green)
40
- })
41
-
42
- qObj.process().then(res => {
43
- console.log(`done with 1st obj`.green)
28
+ qObj.load(props).add(new test1()).add(new test2(qObj)).add(new test3()).process({}).then(res => {
29
+ console.log(res)
44
30
  }, err => {
45
- console.log(err.red)
31
+ console.log(`errors with bottom item processing: (${err})`.red)
46
32
  })
package/test_func_all.js CHANGED
@@ -41,6 +41,6 @@ let tst1 = new test1(),
41
41
  tst3 = new test3(qObj, tst4)
42
42
 
43
43
  qObj.load(props).add(tst1.some_function).add(tst2.a_func).add(tst3.cool).process().then(res => {
44
- console.log(`done`)
44
+ console.log(`success processing`.green)
45
45
  })
46
46
 
package/test_status.js CHANGED
@@ -36,9 +36,9 @@ class test2 {
36
36
  let t = this, msg = `some kinda problem here`
37
37
  console.log(`processing test2`.cyan)
38
38
  t.status = "error"
39
- callback({error: {msg: msg}}) //this will show errors
40
- //t.status = "done"
41
- //callback() //this will show no errors
39
+ // callback({error: {msg: msg}}) //this will show errors
40
+ t.status = "done"
41
+ callback() //this will show no errors
42
42
  }
43
43
 
44
44
  ping() {
@@ -56,12 +56,10 @@ class test3 {
56
56
  }
57
57
 
58
58
  process(callback) {
59
- setTimeout(()=>{
60
- console.log(`processing test3`.cyan)
61
- console.log(`some async process`)
62
- this.status = "done"
63
- callback()
64
- }, 2000)
59
+ console.log(`processing test3`.cyan)
60
+ console.log(`some async process`)
61
+ this.status = "done"
62
+ callback()
65
63
  }
66
64
  }
67
65
 
@@ -70,10 +68,13 @@ class test4 {
70
68
  let t = this
71
69
  t.id = 400
72
70
  t.status = "new"
71
+
72
+ t.process = t.process.bind(t)
73
73
  }
74
74
 
75
75
  process(callback) {
76
76
  console.log(`processing test4`.cyan)
77
+ this.status = "done"
77
78
  callback()
78
79
  }
79
80
  }
package/test_sync_all.js CHANGED
@@ -69,7 +69,7 @@ let qObj = new queue(), props = { appender: 'sync_all' }
69
69
  qObj.load(props).add(new test1()).add(new test2()).add(new test3()).add(tst4.custom_function)
70
70
 
71
71
  qObj.process().then(res => {
72
- console.log(`done with all sync processing: (${res})`.bold.italic.white)
72
+ console.log(`done with all sync processing: (${res})`.bold.italic.blue)
73
73
  }, err => {
74
74
  console.log(`errors with all sync processing: (${err})`.red)
75
75
  })
package/test_top_one.js CHANGED
@@ -23,14 +23,10 @@ class test3 {
23
23
  }
24
24
  }
25
25
 
26
- let qObj = new queue(), props = { appender: 'top_one'}
26
+ let qObj = new queue(), props = { appender: 'top_one', stats: true}
27
27
 
28
- qObj.load(props).add(new test1()).add(new test2()).add(new test3())
29
-
30
- qObj.process().then(res => {
31
- console.log(`done with 1st obj`.green)
32
- })
33
-
34
- qObj.process().then(res => {
35
- console.log(`done with 2nd obj`.green)
28
+ qObj.load(props).add(new test1()).add(new test2(qObj)).add(new test3()).process({}).then(res => {
29
+ console.log(res)
30
+ }, err => {
31
+ console.log(`errors with top item processing: (${err})`.red)
36
32
  })
@@ -0,0 +1,122 @@
1
+ /*
2
+ * @author Jim Manton: jrman@risebroadband.net
3
+ * @since 2021-03-22
4
+ * test_status.js
5
+ */
6
+
7
+ var colors = require('colors')
8
+ var queue = require("./app.js");
9
+
10
+ class test1 {
11
+ constructor() {
12
+ let t = this
13
+ t.id = 100
14
+ t.version = "dev"
15
+
16
+ t.process = t.process.bind(t)
17
+ }
18
+
19
+ process(callback) {
20
+ let t = this
21
+ console.log(`processing test1 version(${t.version})`.cyan)
22
+ this.status = "done"
23
+ callback()
24
+ }
25
+ }
26
+
27
+ class test2 {
28
+ constructor() {
29
+ let t = this
30
+ t.id = 200
31
+ t.version = "dev"
32
+
33
+ t.process = t.process.bind(t)
34
+ }
35
+
36
+ process(callback) {
37
+ let t = this, msg = `some kinda error is detected here`
38
+ console.log(`processing test2 version(${t.version})`.cyan)
39
+ // callback({error: {msg: msg}}) //this will show errors
40
+ callback() //this will have no errors
41
+ }
42
+
43
+ ping() {
44
+ console.log('hello from test2'.rainbow)
45
+ }
46
+ }
47
+
48
+ class test3 {
49
+ constructor() {
50
+ let t = this
51
+ t.id = 300
52
+ t.version = "test"
53
+
54
+ t.process = t.process.bind(t)
55
+ }
56
+
57
+ process(callback) {
58
+ let t = this
59
+ console.log(`processing test3 version(${t.version})`.cyan)
60
+ console.log(`some async process`)
61
+ callback()
62
+ }
63
+ }
64
+
65
+ class test4 {
66
+ constructor() {
67
+ let t = this
68
+ t.id = 400
69
+ t.version = "prod"
70
+
71
+ t.process = t.process.bind(t)
72
+ }
73
+
74
+ process(callback) {
75
+ let t = this
76
+ console.log(`processing test4 version(${t.version})`.cyan)
77
+ callback()
78
+ }
79
+ }
80
+
81
+ class test5 {
82
+ constructor() {
83
+ let t = this
84
+ t.id = 500
85
+ t.version = "v1234"
86
+
87
+ t.process = t.process.bind(t)
88
+ }
89
+
90
+ process(callback) {
91
+ let t = this
92
+ console.log(`processing test5 version(${t.version})`.cyan)
93
+ callback()
94
+ }
95
+ }
96
+ let qObj = new queue(), props = { appender: 'version' }
97
+
98
+ qObj.load(props).add(new test1()).add(new test2()).add(new test3()).add(new test4()).add(new test5())
99
+
100
+ qObj.await({ version: ['dev', 'test'] }).then(res => {
101
+ console.log(`1) done with version['dev', 'test']: (${res})`.green)
102
+ }, err => {
103
+ console.log(`1) error['dev', 'test']: (${err})`.red)
104
+ })
105
+
106
+ qObj.await({ version: ['prod'] }).then(res => {
107
+ console.log(`2) done with version['prod']: (${res})`.green)
108
+ }, err => {
109
+ console.log(`2) error['prod']: (${err})`.red)
110
+ })
111
+
112
+ qObj.await({ version: ['v1234'] }).then(res => {
113
+ console.log(`3) done with version['v1234']: (${res})`.green)
114
+ }, err => {
115
+ console.log(`3) error['v1234']: (${err})`.red)
116
+ })
117
+
118
+ qObj.process().then(res => {
119
+ console.log(`4) done with version synchronous processing: (${res})`.bold.italic.blue)
120
+ }, err => {
121
+ console.log(`4) errors with version synchronous processing: (${err})`.red)
122
+ })
package/test_sync.js DELETED
@@ -1,121 +0,0 @@
1
- /*
2
- * @author Jim Manton: jrman@risebroadband.net
3
- * @since 2021-03-22
4
- * test_sync.js
5
- */
6
-
7
- var colors = require('colors')
8
- var queue = require("./app.js");
9
-
10
- class test1 {
11
- constructor() {
12
- this.id = 100
13
- }
14
-
15
- process(callback) {
16
- console.log(`processing test1`.cyan)
17
- callback()
18
- }
19
- }
20
-
21
- class test2 {
22
- constructor() {
23
- this.id = 200
24
- }
25
-
26
- process(callback) {
27
- let msg = `some kinda problem here`
28
- console.log(`processing test2`.cyan)
29
- //callback({error: {msg: msg}}) //this will show errors
30
- callback() //this will show no errors
31
- }
32
-
33
- ping() {
34
- console.log('hello from test2'.rainbow)
35
- }
36
- }
37
-
38
- class test3 {
39
- constructor() {
40
- this.id = 300
41
- }
42
-
43
- process(callback) {
44
- setTimeout(()=>{
45
- console.log(`processing test3`.cyan)
46
- console.log(`some async process`)
47
- callback()
48
- }, 2000)
49
- }
50
- }
51
-
52
- class test4 {
53
- constructor() {
54
- let t = this
55
- t.id = 400
56
- t.custom_function = t.custom_function.bind(this)
57
- }
58
-
59
- custom_function(callback) {
60
- let msg = `custom func problem here id(${this.id})`
61
- console.log(`processing test4`.cyan)
62
- //callback({error: {msg: msg}}) //this will show errors
63
- callback() //this will show no errors
64
- }
65
- }
66
- let tst4 = new test4()
67
- let qObj = new queue(), props = { appender: 'sync', stats: false }
68
-
69
- qObj.load(props).add(new test1()).add(new test2()).add(new test3()).add(tst4.custom_function)
70
-
71
- qObj.await({ items: [0, 1] }).then(res => {
72
- console.log(`1) done with items[0,1]: (${res})`.green)
73
- }, err => {
74
- console.log(`1) error[0, 1]: (${err})`.red)
75
- })
76
-
77
- qObj.await({ items: [1, 2] }).then(res => {
78
- console.log(`2) done with items[1,2]: (${res})`.green)
79
- }, err => {
80
- console.log(`2) error[1,2]: (${err})`.red)
81
- })
82
-
83
- qObj.await({ items: [2, 1, 2] }).then(res => {
84
- console.log(`3) done with items[2,1,2]: (${res})`.green)
85
- }, err => {
86
- console.log(`3) error[2, 1, 2]: (${err})`.red)
87
- })
88
-
89
- qObj.await({ items: [2, 3] }).then(res => {
90
- console.log(`4) done with item[2, 3]: (${res})`.green)
91
- }, err => {
92
- console.log(`4) error[2, 3]: (${err})`.red)
93
- })
94
-
95
- qObj.await({ items: [0] }).then(res => {
96
- console.log(`5) done with item[0]: (${res})`.green)
97
- }, err => {
98
- console.log(err.red)
99
- })
100
-
101
- qObj.getObjectById(200).ping()
102
-
103
- qObj.await({ byIds: [300, 200, 100] }).then(res => {
104
- console.log(`6) done with byId: [300, 200, 100] (${res})`.bold.italic.underline.yellow)
105
- }, err => {
106
- console.log(`6) error[300, 200, 100]: (${err})`.red)
107
- })
108
-
109
- qObj.await({ byIds: [100, 300] }).then(res => {
110
- console.log(`7) done with byId: [100, 300] (${res})`.bold.italic.underline.yellow)
111
- }, err => {
112
- console.log(`7) error[100, 300]: (${err})`.red)
113
- })
114
-
115
- qObj.process().then(res => {
116
- console.log(`8) done with all sync processing: (${res})`.bold.italic.white)
117
- }, err => {
118
- console.log(`8) errors with all sync processing: (${err})`.red)
119
- })
120
-
121
-