w-data-collector 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.
Files changed (60) hide show
  1. package/.editorconfig +9 -0
  2. package/.eslintignore +3 -0
  3. package/.eslintrc.js +54 -0
  4. package/.jsdoc +25 -0
  5. package/LICENSE +21 -0
  6. package/README.md +43 -0
  7. package/SECURITY.md +5 -0
  8. package/babel.config.js +14 -0
  9. package/dist/w-data-collector.umd.js +7 -0
  10. package/dist/w-data-collector.umd.js.map +1 -0
  11. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  12. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  13. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  14. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  15. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  16. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  17. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  18. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  19. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  20. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +978 -0
  21. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  22. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  23. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  24. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  25. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1049 -0
  26. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  27. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  28. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  29. package/docs/genIndex.mjs.html +189 -0
  30. package/docs/genTestdata.mjs.html +162 -0
  31. package/docs/global.html +891 -0
  32. package/docs/index.html +81 -0
  33. package/docs/scripts/collapse.js +20 -0
  34. package/docs/scripts/linenumber.js +25 -0
  35. package/docs/scripts/nav.js +12 -0
  36. package/docs/scripts/polyfill.js +4 -0
  37. package/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  38. package/docs/scripts/prettify/lang-css.js +2 -0
  39. package/docs/scripts/prettify/prettify.js +28 -0
  40. package/docs/scripts/search.js +83 -0
  41. package/docs/styles/jsdoc.css +765 -0
  42. package/docs/styles/prettify.css +79 -0
  43. package/gi.mjs +13 -0
  44. package/gt.mjs +11 -0
  45. package/package.json +32 -0
  46. package/src/WDataCollector.mjs +13 -0
  47. package/src/build.mjs +127 -0
  48. package/src/genIndex.mjs +120 -0
  49. package/src/genTestdata.mjs +93 -0
  50. package/test/genIndex.test.mjs +17 -0
  51. package/test/schema/index.mjs +20 -0
  52. package/test/schema/index.mjs.txt +20 -0
  53. package/test/schema/tables/holeLabTabs.mjs +130 -0
  54. package/test/schema/tables/holeLabTabsItems.mjs +318 -0
  55. package/test/schema/tables/users.mjs +102 -0
  56. package/toolg/addVersion.mjs +4 -0
  57. package/toolg/cleanFolder.mjs +4 -0
  58. package/toolg/gDistRollup.mjs +35 -0
  59. package/toolg/gDocsExams.mjs +51 -0
  60. package/toolg/modifyReadme.mjs +4 -0
@@ -0,0 +1,318 @@
1
+ import map from 'lodash/map'
2
+ import keys from 'lodash/keys'
3
+ import get from 'lodash/get'
4
+ import genID from 'wsemi/src/genID.mjs'
5
+ import dtmapping from 'wsemi/src/dtmapping.mjs'
6
+ import now2str from 'wsemi/src/now2str.mjs'
7
+ import sep from 'wsemi/src/sep.mjs'
8
+ import isnum from 'wsemi/src/isnum.mjs'
9
+ import cdbl from 'wsemi/src/cdbl.mjs'
10
+
11
+
12
+ let keyTable = 'holeLabTabsItems'
13
+ let tableNameCht = '鑽孔試驗樣本資料'
14
+ let tableNameEng = 'Lab test data'
15
+
16
+ let settings = {
17
+ 'id': {
18
+ 'pk': true,
19
+ 'name': '主鍵',
20
+ 'type': 'STRING',
21
+ 'dig': null
22
+ },
23
+ 'mappingId': { //所屬對象主鍵
24
+ name: '關聯鍵',
25
+ type: 'STRING',
26
+ dig: null
27
+ },
28
+ 'order': {
29
+ name: '順序',
30
+ type: 'INTEGER',
31
+ dig: null
32
+ },
33
+ 'proj_no': {
34
+ name: '計畫編號',
35
+ type: 'STRING',
36
+ dig: null
37
+ },
38
+ 'proj_name': {
39
+ name: '計畫名稱',
40
+ type: 'STRING',
41
+ dig: null
42
+ },
43
+ 'hole_no': {
44
+ name: '孔號',
45
+ type: 'STRING',
46
+ dig: null
47
+ },
48
+ 'hole_depth': {
49
+ name: '孔深(m)',
50
+ type: 'STRING',
51
+ dig: null
52
+ },
53
+ 'regular': { //值: mdb, public
54
+ name: '佈告類型',
55
+ type: 'STRING',
56
+ dig: null
57
+ },
58
+ 'longitude': {
59
+ name: '經度',
60
+ type: 'STRING',
61
+ dig: null
62
+ },
63
+ 'latitude': {
64
+ name: '緯度',
65
+ type: 'STRING',
66
+ dig: null
67
+ },
68
+ 'elevation': {
69
+ name: '孔位高程(m)',
70
+ type: 'STRING',
71
+ dig: null
72
+ },
73
+ 'wt_depth': {
74
+ name: '地下水位(m)',
75
+ type: 'STRING',
76
+ dig: null
77
+ },
78
+ 'top_depth': {
79
+ name: '起始深度(m)',
80
+ type: 'STRING',
81
+ dig: null
82
+ },
83
+ 'bottom_depth': {
84
+ name: '結束深度(m)',
85
+ type: 'STRING',
86
+ dig: null
87
+ },
88
+ 'center_depth': {
89
+ name: '中點深度(m)',
90
+ type: 'STRING',
91
+ dig: null
92
+ },
93
+ 'code': {
94
+ name: '繪圖代碼',
95
+ type: 'STRING',
96
+ dig: null
97
+ },
98
+ 'description': {
99
+ name: '土壤描述',
100
+ type: 'STRING',
101
+ dig: null
102
+ },
103
+ 'cklpRough': {
104
+ name: '驗證粗估參數',
105
+ type: 'STRING',
106
+ dig: null
107
+ },
108
+ 'cklpStrictHBF': {
109
+ name: '驗證HBF參數',
110
+ type: 'STRING',
111
+ dig: null
112
+ },
113
+ 'cklpStrictNJRA': {
114
+ name: '驗證NJRA參數',
115
+ type: 'STRING',
116
+ dig: null
117
+ },
118
+ 'sample_nos': {
119
+ name: '所屬樣本編號',
120
+ type: 'STRING',
121
+ dig: null
122
+ },
123
+ 'SPTN': {
124
+ name: 'SPTN',
125
+ type: 'STRING',
126
+ dig: null
127
+ },
128
+ 'WC': {
129
+ keySrc: '含水量(%)',
130
+ name: '含水量(%)',
131
+ type: 'STRING',
132
+ dig: null
133
+ },
134
+ 'GS': {
135
+ keySrc: '比重',
136
+ name: '比重',
137
+ type: 'STRING',
138
+ dig: null
139
+ },
140
+ 'e': {
141
+ keySrc: '空隙比',
142
+ name: '孔隙比',
143
+ type: 'STRING',
144
+ dig: null
145
+ },
146
+ 'LL': {
147
+ keySrc: '液性限度(%)',
148
+ name: '液性限度(%)',
149
+ type: 'STRING',
150
+ dig: null
151
+ },
152
+ 'PI': {
153
+ keySrc: '塑性指數(%)',
154
+ name: '塑性指數(%)',
155
+ type: 'STRING',
156
+ dig: null
157
+ },
158
+ 'USCS': {
159
+ keySrc: '統一土壤分類',
160
+ name: '統一土壤分類',
161
+ type: 'STRING',
162
+ dig: null
163
+ },
164
+ 'r_tm3': {
165
+ keySrc: '單位重(t/m^3)',
166
+ name: '單位重(t/m³)',
167
+ type: 'STRING',
168
+ dig: null
169
+ },
170
+ 'r': {
171
+ name: '單位重(kN/m³)',
172
+ type: 'STRING',
173
+ dig: null
174
+ },
175
+ 'rd_tm3': {
176
+ keySrc: '乾單位重(t/m^3)',
177
+ name: '乾單位重(t/m³)',
178
+ type: 'STRING',
179
+ dig: null
180
+ },
181
+ 'rd': {
182
+ name: '乾單位重(kN/m³)',
183
+ type: 'STRING',
184
+ dig: null
185
+ },
186
+ 'D50': {
187
+ keySrc: 'D50(mm)',
188
+ name: 'D50(mm)',
189
+ type: 'STRING',
190
+ dig: null
191
+ },
192
+ 'D10': {
193
+ keySrc: 'D10(mm)',
194
+ name: 'D10(mm)',
195
+ type: 'STRING',
196
+ dig: null
197
+ },
198
+ 'FC': {
199
+ keySrc: '細料(%)',
200
+ name: '細粒料含量(%)',
201
+ type: 'STRING',
202
+ dig: null
203
+ },
204
+ 'ctGravel': {
205
+ name: '礫石含量(%)',
206
+ type: 'STRING',
207
+ dig: null
208
+ },
209
+ 'ctSand': {
210
+ name: '砂含量(%)',
211
+ type: 'STRING',
212
+ dig: null
213
+ },
214
+ 'ctSilt': {
215
+ name: '粉土含量(%)',
216
+ type: 'STRING',
217
+ dig: null
218
+ },
219
+ 'ctClay': {
220
+ name: '黏土含量(%)',
221
+ type: 'STRING',
222
+ dig: null
223
+ },
224
+ 'remark': {
225
+ keySrc: 'Remark',
226
+ name: '備註',
227
+ type: 'STRING',
228
+ dig: null
229
+ },
230
+ 'userId': {
231
+ name: '創建使用者主鍵',
232
+ type: 'STRING',
233
+ },
234
+ 'timeCreate': {
235
+ name: '創建時間',
236
+ type: 'STRING',
237
+ },
238
+ 'userIdUpdate': {
239
+ name: '最新變更使用者主鍵',
240
+ type: 'STRING',
241
+ },
242
+ 'timeUpdate': {
243
+ name: '更新時間',
244
+ type: 'STRING',
245
+ },
246
+ 'isActive': {
247
+ name: '是否有效',
248
+ type: 'STRING',
249
+ },
250
+ }
251
+
252
+ let parser = {
253
+ processRows: (rows) => {
254
+ let cv = (row) => {
255
+ let depth = get(row, 'depth', '')
256
+ if (depth.indexOf('-') >= 0) {
257
+ let s = sep(depth, '-')
258
+ let depthStart = get(s, 0, '')
259
+ if (isnum(depthStart)) {
260
+ depthStart = cdbl(depthStart)
261
+ }
262
+ let depthEnd = get(s, 1, '')
263
+ if (isnum(depthEnd)) {
264
+ depthEnd = cdbl(depthEnd)
265
+ }
266
+ row.depthStart = depthStart
267
+ row.depthEnd = depthEnd
268
+ }
269
+ else if (isnum(depth)) {
270
+ depth = cdbl(depth)
271
+ let dlen = 0.1 //有些深度給予單值非起訖值, 預設自動產生樣本起訖深度
272
+ let depthStart = depth - dlen
273
+ let depthEnd = depth + dlen
274
+ row.depthStart = depthStart
275
+ row.depthEnd = depthEnd
276
+ }
277
+ return row
278
+ }
279
+ return map(rows, cv)
280
+ },
281
+ }
282
+
283
+ let fnew = (ndata = {}) => {
284
+ let o = dtmapping(ndata, keys(settings))
285
+ o.id = genID()
286
+ o.userIdUpdate = get(o, 'userId', '')
287
+ o.timeCreate = now2str()
288
+ o.timeUpdate = o.timeCreate
289
+ o.isActive = 'y'
290
+ return o
291
+ }
292
+
293
+ let ftest = () => {
294
+ let r = map([
295
+ ['BS-1', 'id-for-BH-1'],
296
+ ['BS-2', 'id-for-BH-1'],
297
+ ['BS-3', 'id-for-BH-2'],
298
+ ], ([name, mappingId]) => {
299
+ let o = fnew({ userId: 'id-for-admin', mappingId })
300
+ o.id = `id-for-${name}`
301
+ return o
302
+ })
303
+ console.log(`${keyTable} data`, r)
304
+ return r
305
+ }
306
+
307
+ let holeLabTabsItems = {
308
+ keyTable,
309
+ tableNameCht,
310
+ tableNameEng,
311
+ settings,
312
+ parser,
313
+ fnew,
314
+ ftest,
315
+ }
316
+
317
+
318
+ export default holeLabTabsItems
@@ -0,0 +1,102 @@
1
+ import map from 'lodash/map'
2
+ import keys from 'lodash/keys'
3
+ import get from 'lodash/get'
4
+ import genID from 'wsemi/src/genID.mjs'
5
+ import dtmapping from 'wsemi/src/dtmapping.mjs'
6
+ import now2str from 'wsemi/src/now2str.mjs'
7
+
8
+
9
+ let keyTable = 'users'
10
+ let tableNameCht = '使用者'
11
+ let tableNameEng = 'Users'
12
+
13
+ let settings = {
14
+ 'id': {
15
+ pk: true,
16
+ name: '主鍵',
17
+ type: 'STRING',
18
+ },
19
+ 'name': {
20
+ name: '名稱',
21
+ type: 'STRING',
22
+ },
23
+ 'email': {
24
+ name: '電子郵件',
25
+ type: 'STRING',
26
+ },
27
+ 'from': {
28
+ name: '來源',
29
+ type: 'STRING',
30
+ },
31
+ 'roleLevel': {
32
+ name: '角色層級',
33
+ type: 'STRING',
34
+ },
35
+ 'isAdmin': {
36
+ name: '是否為系統管理員',
37
+ type: 'STRING',
38
+ },
39
+ 'userId': {
40
+ name: '創建使用者主鍵',
41
+ type: 'STRING',
42
+ },
43
+ 'timeCreate': {
44
+ name: '創建時間',
45
+ type: 'STRING',
46
+ },
47
+ 'userIdUpdate': {
48
+ name: '最新變更使用者主鍵',
49
+ type: 'STRING',
50
+ },
51
+ 'timeUpdate': {
52
+ name: '更新時間',
53
+ type: 'STRING',
54
+ },
55
+ 'isActive': {
56
+ name: '是否有效',
57
+ type: 'STRING',
58
+ },
59
+ }
60
+
61
+ let fnew = (ndata = {}) => {
62
+ let o = dtmapping(ndata, keys(settings))
63
+ o.id = genID()
64
+ o.userIdUpdate = get(o, 'userId', '')
65
+ o.timeCreate = now2str()
66
+ o.timeUpdate = o.timeCreate
67
+ o.isActive = 'y'
68
+ return o
69
+ }
70
+
71
+ let ftest = () => {
72
+ let r = map([
73
+ '王小明',
74
+ 'peter',
75
+ 'mary',
76
+ 'john',
77
+ 'admin',
78
+ ], (name) => {
79
+ let o = fnew({ userId: 'id-for-admin' })
80
+ o.id = `id-for-${name}`
81
+ o.email = `${name}@example.com`
82
+ o.from = '中興社'
83
+ o.roleLevel = 'L0'
84
+ o.isAdmin = 'n'
85
+ return o
86
+ })
87
+ r[4].isAdmin = 'y' //admin
88
+ console.log(`${keyTable} data`, r)
89
+ return r
90
+ }
91
+
92
+ let users = {
93
+ keyTable,
94
+ tableNameCht,
95
+ tableNameEng,
96
+ settings,
97
+ fnew,
98
+ ftest,
99
+ }
100
+
101
+
102
+ export default users
@@ -0,0 +1,4 @@
1
+ import addVersion from 'w-package-tools/src/addVersion.mjs'
2
+
3
+
4
+ addVersion()
@@ -0,0 +1,4 @@
1
+ import cleanFolder from 'w-package-tools/src/cleanFolder.mjs'
2
+
3
+
4
+ cleanFolder('docs')
@@ -0,0 +1,35 @@
1
+ import rollupFiles from 'w-package-tools/src/rollupFiles.mjs'
2
+
3
+
4
+ let fdSrc = './src'
5
+ let fdTar = './dist'
6
+
7
+
8
+ async function rp() {
9
+
10
+ await rollupFiles({ //rollupFiles預設會clean folder
11
+ fns: 'WDataCollector.mjs',
12
+ fdSrc,
13
+ fdTar,
14
+ nameDistType: 'kebabCase',
15
+ // bNodePolyfill: true,
16
+ // bMinify: false,
17
+ globals: {
18
+ 'path': 'path',
19
+ 'fs': 'fs',
20
+ },
21
+ external: [
22
+ 'path',
23
+ 'fs',
24
+ ],
25
+ })
26
+ .catch((err) => {
27
+ console.log(err)
28
+ })
29
+
30
+ }
31
+ rp()
32
+ .catch((err) => {
33
+ console.log(err)
34
+ })
35
+
@@ -0,0 +1,51 @@
1
+ import fs from 'fs'
2
+ import _ from 'lodash'
3
+ import getFiles from 'w-package-tools/src/getFiles.mjs'
4
+ import getPks from 'w-package-tools/src/getPks.mjs'
5
+
6
+
7
+ let fdSrc = './examples/'
8
+ let fdTar = './docs/examples/'
9
+
10
+
11
+ function main() {
12
+ //把example裡面cdn更換, 再複製到docs的example內, 作為日後發佈為靜態網站
13
+
14
+ // //pks
15
+ // let pks = getPks()
16
+
17
+ // //url
18
+ // let url = `https://cdn.jsdelivr.net/npm/w-data-collector@${pks.version}/dist/w-data-collector.umd.js`
19
+ // let urlww = `https://cdn.jsdelivr.net/npm/w-data-collector@${pks.version}/dist/w-data-collector.wk.umd.js`
20
+
21
+ // //mkdirSync
22
+ // if (!fs.existsSync(fdTar)) {
23
+ // fs.mkdirSync(fdTar)
24
+ // }
25
+
26
+ // //getFiles
27
+ // let ltfs = getFiles(fdSrc)
28
+
29
+ // _.each(ltfs, function(v) {
30
+
31
+ // //fn
32
+ // let fn = fdSrc + v
33
+
34
+ // //c
35
+ // let c = fs.readFileSync(fn, 'utf8')
36
+
37
+ // //replace
38
+ // let r
39
+ // r = `../dist/w-data-collector.umd.js`
40
+ // c = c.replace(r, url)
41
+ // r = `../dist/w-data-collector.wk.umd.js`
42
+ // c = c.replace(r, urlww)
43
+
44
+ // //write
45
+ // //console.log(c)
46
+ // fs.writeFileSync(fdTar + v, c, 'utf8')
47
+
48
+ // })
49
+
50
+ }
51
+ main()
@@ -0,0 +1,4 @@
1
+ import modifyReadme from 'w-package-tools/src/modifyReadme.mjs'
2
+
3
+
4
+ modifyReadme()