w-orm-postgresql 1.0.0 → 1.0.1

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/g-basic.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import wo from './src/WOrmPostgresql.mjs'
2
- //import wo from './dist/w-orm-postgresql.umd.js'
1
+ import WOrm from './src/WOrmPostgresql.mjs'
2
+ //import WOrm from './dist/w-orm-postgresql.umd.js'
3
3
 
4
4
 
5
5
  let opt = {
@@ -105,11 +105,11 @@ let rsm = [
105
105
 
106
106
  async function test() {
107
107
 
108
- //w
109
- let w = wo(opt)
110
- // console.log('w', w)
108
+ //wo
109
+ let wo = WOrm(opt)
110
+ // console.log('wo', wo)
111
111
 
112
- await w.createTable(opt.cl, 'time', {
112
+ await wo.createTable(opt.cl, 'time', {
113
113
  time: '2000-01-01T00:00:00Z', //time
114
114
  name: 'abc', //string
115
115
  value: 0.1, //float
@@ -122,12 +122,12 @@ async function test() {
122
122
  })
123
123
 
124
124
  //on
125
- w.on('change', function(mode, data, res) {
125
+ wo.on('change', function(mode, data, res) {
126
126
  console.log('change', mode)
127
127
  })
128
128
 
129
129
  //delAll
130
- await w.delAll()
130
+ await wo.delAll()
131
131
  .then(function(msg) {
132
132
  console.log('delAll then', msg)
133
133
  })
@@ -136,7 +136,7 @@ async function test() {
136
136
  })
137
137
 
138
138
  //insert
139
- await w.insert(rs)
139
+ await wo.insert(rs)
140
140
  .then(function(msg) {
141
141
  console.log('insert then', msg)
142
142
  })
@@ -145,7 +145,7 @@ async function test() {
145
145
  })
146
146
 
147
147
  //save
148
- await w.save(rsm, { autoInsert: true })
148
+ await wo.save(rsm, { autoInsert: true })
149
149
  .then(function(msg) {
150
150
  console.log('save then', msg)
151
151
  })
@@ -154,34 +154,34 @@ async function test() {
154
154
  })
155
155
 
156
156
  //select all
157
- let ss = await w.select()
157
+ let ss = await wo.select()
158
158
  console.log('select all', ss)
159
159
 
160
160
  //select
161
- let so = await w.select({ name: 'rosemary' })
161
+ let so = await wo.select({ name: 'rosemary' })
162
162
  console.log('select by name', so)
163
163
 
164
164
  //select by $and, $gt, $lt
165
- let spa = await w.select({ '$and': [{ value: { '$gt': 123 } }, { value: { '$lt': 200 } }] })
165
+ let spa = await wo.select({ '$and': [{ value: { '$gt': 123 } }, { value: { '$lt': 200 } }] })
166
166
  console.log('select by $and, $gt, $lt', spa)
167
167
 
168
168
  //select by $or, $gte, $lte
169
- let spb = await w.select({ '$or': [{ value: { '$lte': -1 } }, { value: { '$gte': 200 } }] })
169
+ let spb = await wo.select({ '$or': [{ value: { '$lte': -1 } }, { value: { '$gte': 200 } }] })
170
170
  console.log('select by $or, $gte, $lte', spb)
171
171
 
172
172
  //select by $or, $and, $ne, $in, $nin
173
- let spc = await w.select({ '$or': [{ '$and': [{ value: { '$ne': 123 } }, { value: { '$in': [123, 321, 123.456, 456] } }, { value: { '$nin': [456, 654] } }] }, { '$or': [{ value: { '$lte': -1 } }, { value: { '$gte': 400 } }] }] })
173
+ let spc = await wo.select({ '$or': [{ '$and': [{ value: { '$ne': 123 } }, { value: { '$in': [123, 321, 123.456, 456] } }, { value: { '$nin': [456, 654] } }] }, { '$or': [{ value: { '$lte': -1 } }, { value: { '$gte': 400 } }] }] })
174
174
  console.log('select by $or, $and, $ne, $in, $nin', spc)
175
175
 
176
176
  // //select by regex
177
- // let sr = await w.select({ name: { $regex: 'PeT', $options: '$i' } })
177
+ // let sr = await wo.select({ name: { $regex: 'PeT', $options: '$i' } })
178
178
  // console.log('selectReg', sr)
179
179
 
180
180
  //del
181
181
  let d = {
182
182
  time: '2024-01-01T00:00:00Z',
183
183
  }
184
- await w.del(d)
184
+ await wo.del(d)
185
185
  .then(function(msg) {
186
186
  console.log('del then', msg)
187
187
  })
@@ -193,7 +193,7 @@ async function test() {
193
193
  let ds = ss.filter(function(v) {
194
194
  return v.name.indexOf('peter') >= 0 || v.name.indexOf('kettle') >= 0 || v.name.indexOf('sandler') >= 0
195
195
  })
196
- await w.del(ds)
196
+ await wo.del(ds)
197
197
  .then(function(msg) {
198
198
  console.log('del then', msg)
199
199
  })
@@ -202,7 +202,7 @@ async function test() {
202
202
  })
203
203
 
204
204
  //select all final
205
- let ss2 = await w.select()
205
+ let ss2 = await wo.select()
206
206
  console.log('select all final', ss2)
207
207
 
208
208
  }
@@ -303,4 +303,4 @@ test()
303
303
  // }
304
304
  // ]
305
305
 
306
- //node --experimental-modules g-basic.mjs
306
+ //node g-basic.mjs
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "w-orm-postgresql",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "main": "dist/w-orm-postgresql.umd.js",
5
5
  "dependencies": {
6
6
  "mongo-sql": "^6.2.0",
7
- "pg": "^8.14.1",
7
+ "pg": "^8.15.6",
8
8
  "lodash-es": "^4.17.21",
9
- "wsemi": "^1.7.72"
9
+ "wsemi": "^1.7.90"
10
10
  },
11
11
  "devDependencies": {
12
- "w-package-tools": "^1.0.82"
12
+ "w-package-tools": "^1.0.90"
13
13
  },
14
14
  "scripts": {
15
- "test": "mocha --parallel --timeout 60000 --experimental-modules",
15
+ "test": "mocha --parallel --timeout 60000",
16
16
  "deploy": "gh-pages -d docs"
17
17
  },
18
18
  "repository": {
package/script.txt CHANGED
@@ -1,10 +1,10 @@
1
- #node --experimental-modules toolg/addVersion.mjs
2
- node --experimental-modules toolg/modifyReadme.mjs
1
+ #node toolg/addVersion.mjs
2
+ node toolg/modifyReadme.mjs
3
3
 
4
- node --experimental-modules toolg/cleanFolder.mjs
4
+ node toolg/cleanFolder.mjs
5
5
  ./node_modules/.bin/jsdoc -c .jsdoc
6
6
 
7
- node --experimental-modules toolg/gDistRollup.mjs
7
+ node toolg/gDistRollup.mjs
8
8
 
9
9
  git add . -A
10
10
  git commit -m 'modify: '
@@ -37,7 +37,6 @@ function WOrmPostgresql(opt = {}) {
37
37
  //url
38
38
  let url = get(opt, 'url')
39
39
  if (!isestr(url)) {
40
- // url = `postgresql://${user}:${password}@${ip}:${port}`
41
40
  url = 'postgresql://user:password@127.0.0.1:5432'
42
41
  }
43
42
 
@@ -146,14 +145,14 @@ function WOrmPostgresql(opt = {}) {
146
145
  // console.log('PgClient', PgClient)
147
146
 
148
147
  /**
149
- * 創建資料表
150
- *
151
- * @memberOf WOrmPostgresql
152
- * @param {String} cl 輸入資料表名字串
153
- * @param {String} pk 輸入主鍵字串
154
- * @param {Array|Object} arr 輸入數據物件陣列或數據物件
155
- * @returns {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
156
- */
148
+ * 創建資料表
149
+ *
150
+ * @memberOf WOrmPostgresql
151
+ * @param {String} cl 輸入資料表名字串
152
+ * @param {String} pk 輸入主鍵字串
153
+ * @param {Array|Object} arr 輸入數據物件陣列或數據物件
154
+ * @returns {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
155
+ */
157
156
  async function createTable(cl, pk, arr) {
158
157
  let isErr = false
159
158
  let res = null
@@ -228,13 +227,13 @@ function WOrmPostgresql(opt = {}) {
228
227
  }
229
228
 
230
229
  /**
231
- * 查詢數據
232
- *
233
- * @memberOf WOrmPostgresql
234
- * @param {Object} [find={}] 輸入查詢條件物件
235
- * @param {Object} [order={}] 輸入排序條件物件
236
- * @returns {Promise} 回傳Promise,resolve回傳數據,reject回傳錯誤訊息
237
- */
230
+ * 查詢數據
231
+ *
232
+ * @memberOf WOrmPostgresql
233
+ * @param {Object} [find={}] 輸入查詢條件物件
234
+ * @param {Object} [order={}] 輸入排序條件物件
235
+ * @returns {Promise} 回傳Promise,resolve回傳數據,reject回傳錯誤訊息
236
+ */
238
237
  async function select(find = {}, order = {}) {
239
238
  let isErr = false
240
239
  let res = null
@@ -307,16 +306,25 @@ function WOrmPostgresql(opt = {}) {
307
306
  }
308
307
 
309
308
  /**
310
- * 插入數據
311
- *
312
- * @memberOf WOrmPostgresql
313
- * @param {Object|Array} data 輸入數據物件或陣列
314
- * @returns {Promise} 回傳Promise,resolve回傳插入結果,reject回傳錯誤訊息
315
- */
309
+ * 插入數據
310
+ *
311
+ * @memberOf WOrmPostgresql
312
+ * @param {Object|Array} data 輸入數據物件或陣列
313
+ * @returns {Promise} 回傳Promise,resolve回傳插入結果,reject回傳錯誤訊息
314
+ */
316
315
  async function insert(data) {
317
316
  let isErr = false
318
317
  let res = null
319
318
 
319
+ //check
320
+ if (!iseobj(data) && !isearr(data)) {
321
+ return {
322
+ n: 0,
323
+ nInserted: 0,
324
+ ok: 1,
325
+ }
326
+ }
327
+
320
328
  //cloneDeep
321
329
  data = cloneDeep(data)
322
330
 
@@ -409,18 +417,23 @@ function WOrmPostgresql(opt = {}) {
409
417
  }
410
418
 
411
419
  /**
412
- * 儲存數據
413
- *
414
- * @memberOf WOrmPostgresql
415
- * @param {Object|Array} data 輸入數據物件或陣列
416
- * @param {Object} [option={}] 輸入設定物件,預設為{}
417
- * @param {boolean} [option.autoInsert=true] 輸入是否於儲存時發現原本無數據,則自動改以插入處理,預設為true
418
- * @returns {Promise} 回傳Promise,resolve回傳儲存結果,reject回傳錯誤訊息
419
- */
420
+ * 儲存數據
421
+ *
422
+ * @memberOf WOrmPostgresql
423
+ * @param {Object|Array} data 輸入數據物件或陣列
424
+ * @param {Object} [option={}] 輸入設定物件,預設為{}
425
+ * @param {boolean} [option.autoInsert=true] 輸入是否於儲存時發現原本無數據,則自動改以插入處理,預設為true
426
+ * @returns {Promise} 回傳Promise,resolve回傳儲存結果,reject回傳錯誤訊息
427
+ */
420
428
  async function save(data, option = {}) {
421
429
  let isErr = false
422
430
  let res = null
423
431
 
432
+ //check
433
+ if (!iseobj(data) && !isearr(data)) {
434
+ return []
435
+ }
436
+
424
437
  //cloneDeep
425
438
  data = cloneDeep(data)
426
439
 
@@ -650,16 +663,21 @@ function WOrmPostgresql(opt = {}) {
650
663
  }
651
664
 
652
665
  /**
653
- * 刪除數據
654
- *
655
- * @memberOf WOrmPostgresql
656
- * @param {Object|Array} data 輸入數據物件或陣列
657
- * @returns {Promise} 回傳Promise,resolve回傳刪除結果,reject回傳錯誤訊息
658
- */
666
+ * 刪除數據
667
+ *
668
+ * @memberOf WOrmPostgresql
669
+ * @param {Object|Array} data 輸入數據物件或陣列
670
+ * @returns {Promise} 回傳Promise,resolve回傳刪除結果,reject回傳錯誤訊息
671
+ */
659
672
  async function del(data) {
660
673
  let isErr = false
661
674
  let res = null
662
675
 
676
+ //check
677
+ if (!iseobj(data) && !isearr(data)) {
678
+ return []
679
+ }
680
+
663
681
  //cloneDeep
664
682
  data = cloneDeep(data)
665
683
 
@@ -770,12 +788,12 @@ function WOrmPostgresql(opt = {}) {
770
788
  }
771
789
 
772
790
  /**
773
- * 刪除全部數據,需與del分開,避免未傳數據導致直接刪除全表
774
- *
775
- * @memberOf WOrmPostgresql
776
- * @param {Object} [find={}] 輸入刪除條件物件
777
- * @returns {Promise} 回傳Promise,resolve回傳刪除結果,reject回傳錯誤訊息
778
- */
791
+ * 刪除全部數據,需與del分開,避免未傳數據導致直接刪除全表
792
+ *
793
+ * @memberOf WOrmPostgresql
794
+ * @param {Object} [find={}] 輸入刪除條件物件
795
+ * @returns {Promise} 回傳Promise,resolve回傳刪除結果,reject回傳錯誤訊息
796
+ */
779
797
  async function delAll(find = {}) {
780
798
  let isErr = false
781
799
  let res = null
@@ -1,5 +1,5 @@
1
1
  import assert from 'assert'
2
- import wo from '../src/WOrmPostgresql.mjs'
2
+ import WOrm from '../src/WOrmPostgresql.mjs'
3
3
 
4
4
 
5
5
  function isWindows() {
@@ -13,7 +13,6 @@ if (isWindows()) {
13
13
  let vans = {}
14
14
  let vget = {}
15
15
 
16
-
17
16
  before(async function () {
18
17
 
19
18
  let opt = {
@@ -117,15 +116,15 @@ if (isWindows()) {
117
116
  },
118
117
  ]
119
118
 
120
- //w
121
- let w = wo(opt)
119
+ //wo
120
+ let wo = WOrm(opt)
122
121
 
123
122
  //on
124
- w.on('change', function(mode, data, res) {
123
+ wo.on('change', function(mode, data, res) {
125
124
  // console.log('change', mode)
126
125
  })
127
126
 
128
- await w.createTable(opt.cl, 'time', {
127
+ await wo.createTable(opt.cl, 'time', {
129
128
  time: '2000-01-01T00:00:00Z', //time
130
129
  name: 'abc', //string
131
130
  value: 0.1, //float
@@ -140,7 +139,7 @@ if (isWindows()) {
140
139
  //delAll
141
140
  rt = null
142
141
  vans[1] = { ok: 1 }
143
- await w.delAll()
142
+ await wo.delAll()
144
143
  .then(function(msg) {
145
144
  // console.log('delAll then', msg)
146
145
  //考慮有不同初始狀態, 僅比對ok欄位
@@ -157,7 +156,7 @@ if (isWindows()) {
157
156
  //insert
158
157
  rt = null
159
158
  vans[2] = { n: 13, nInserted: 13, ok: 1 }
160
- await w.insert(rs)
159
+ await wo.insert(rs)
161
160
  .then(function(msg) {
162
161
  // console.log('insert then', msg)
163
162
  rt = msg
@@ -177,7 +176,7 @@ if (isWindows()) {
177
176
  { n: 1, nModified: 1, ok: 1 },
178
177
  { n: 1, nInserted: 1, ok: 1 }
179
178
  ]
180
- await w.save(rsm, { autoInsert: true })
179
+ await wo.save(rsm, { autoInsert: true })
181
180
  .then(function(msg) {
182
181
  // console.log('save then', msg)
183
182
  rt = msg
@@ -206,7 +205,7 @@ if (isWindows()) {
206
205
  { time: new Date('2025-01-01T00:12:00.000Z'), name: 'peter', value: 99 },
207
206
  { time: new Date('2025-01-01T00:13:00.000Z'), name: 'sandler', value: null }
208
207
  ]
209
- await w.select()
208
+ await wo.select()
210
209
  .then(function(msg) {
211
210
  // console.log('select all then', msg)
212
211
  rt = msg
@@ -224,7 +223,7 @@ if (isWindows()) {
224
223
  { time: new Date('2025-01-01T00:04:00.000Z'), name: 'rosemary', value: 123.1236 },
225
224
  { time: new Date('2025-01-01T00:07:00.000Z'), name: 'rosemary', value: 124.76 }
226
225
  ]
227
- await w.select({ name: 'rosemary' })
226
+ await wo.select({ name: 'rosemary' })
228
227
  .then(function(msg) {
229
228
  // console.log('select all then', msg)
230
229
  rt = msg
@@ -244,7 +243,7 @@ if (isWindows()) {
244
243
  { time: new Date('2025-01-01T00:07:00.000Z'), name: 'rosemary', value: 124.76 },
245
244
  { time: new Date('2025-01-01T00:09:00.000Z'), name: 'peter', value: 127 }
246
245
  ]
247
- await w.select({ '$and': [{ value: { '$gt': 123 } }, { value: { '$lt': 200 } }] })
246
+ await wo.select({ '$and': [{ value: { '$gt': 123 } }, { value: { '$lt': 200 } }] })
248
247
  .then(function(msg) {
249
248
  // console.log('select all then', msg)
250
249
  rt = msg
@@ -264,7 +263,7 @@ if (isWindows()) {
264
263
  { time: new Date('2025-01-01T00:08:00.000Z'), name: 'kettle', value: 524 },
265
264
  { time: new Date('2025-01-01T00:11:00.000Z'), name: 'kettle(modify)', value: 447 }
266
265
  ]
267
- await w.select({ '$or': [{ value: { '$lte': -1 } }, { value: { '$gte': 200 } }] })
266
+ await wo.select({ '$or': [{ value: { '$lte': -1 } }, { value: { '$gte': 200 } }] })
268
267
  .then(function(msg) {
269
268
  // console.log('select all then', msg)
270
269
  rt = msg
@@ -284,7 +283,7 @@ if (isWindows()) {
284
283
  { time: new Date('2025-01-01T00:08:00.000Z'), name: 'kettle', value: 524 },
285
284
  { time: new Date('2025-01-01T00:11:00.000Z'), name: 'kettle(modify)', value: 447 }
286
285
  ]
287
- await w.select({ '$or': [{ '$and': [{ value: { '$ne': 123 } }, { value: { '$in': [123, 321, 123.456, 456] } }, { value: { '$nin': [456, 654] } }] }, { '$or': [{ value: { '$lte': -1 } }, { value: { '$gte': 400 } }] }] })
286
+ await wo.select({ '$or': [{ '$and': [{ value: { '$ne': 123 } }, { value: { '$in': [123, 321, 123.456, 456] } }, { value: { '$nin': [456, 654] } }] }, { '$or': [{ value: { '$lte': -1 } }, { value: { '$gte': 400 } }] }] })
288
287
  .then(function(msg) {
289
288
  // console.log('select all then', msg)
290
289
  rt = msg
@@ -298,7 +297,7 @@ if (isWindows()) {
298
297
  // //select by regex
299
298
  // rt = null
300
299
  // vans[9] = []
301
- // let sr = await w.select({ name: { $regex: 'PeT', $options: '$i' } })
300
+ // let sr = await wo.select({ name: { $regex: 'PeT', $options: '$i' } })
302
301
  // .then(function(msg) {
303
302
  // // console.log('select all then', msg)
304
303
  // rt = msg
@@ -315,7 +314,7 @@ if (isWindows()) {
315
314
  let d = {
316
315
  time: '2024-01-01T00:00:00Z',
317
316
  }
318
- await w.del(d)
317
+ await wo.del(d)
319
318
  .then(function(msg) {
320
319
  // console.log('del then', msg)
321
320
  rt = msg
@@ -340,11 +339,11 @@ if (isWindows()) {
340
339
  { n: 1, nDeleted: 1, ok: 1 },
341
340
  { n: 1, nDeleted: 1, ok: 1 }
342
341
  ]
343
- let ss = await w.select()
342
+ let ss = await wo.select()
344
343
  let ds = ss.filter(function(v) {
345
344
  return v.name.indexOf('peter') >= 0 || v.name.indexOf('kettle') >= 0 || v.name.indexOf('sandler') >= 0
346
345
  })
347
- await w.del(ds)
346
+ await wo.del(ds)
348
347
  .then(function(msg) {
349
348
  // console.log('del then', msg)
350
349
  rt = msg
@@ -363,7 +362,7 @@ if (isWindows()) {
363
362
  { time: new Date('2025-01-01T00:07:00.000Z'), name: 'rosemary', value: 124.76 },
364
363
  { time: new Date('2025-01-01T00:10:00.000Z'), name: 'rosemary(modify)', value: 113.98 }
365
364
  ]
366
- await w.select()
365
+ await wo.select()
367
366
  .then(function(msg) {
368
367
  // console.log('select all then', msg)
369
368
  rt = msg