w-mesh-tecplot 1.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.
Files changed (51) hide show
  1. package/.editorconfig +9 -0
  2. package/.eslintignore +3 -0
  3. package/.eslintrc.js +55 -0
  4. package/.jsdoc +25 -0
  5. package/README.md +51 -0
  6. package/SECURITY.md +5 -0
  7. package/babel.config.js +15 -0
  8. package/dist/w-mesh-tecplot.umd.js +7 -0
  9. package/dist/w-mesh-tecplot.umd.js.map +1 -0
  10. package/docs/WMeshTecplot.mjs.html +174 -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/global.html +802 -0
  30. package/docs/index.html +84 -0
  31. package/docs/scripts/collapse.js +39 -0
  32. package/docs/scripts/commonNav.js +28 -0
  33. package/docs/scripts/linenumber.js +25 -0
  34. package/docs/scripts/nav.js +12 -0
  35. package/docs/scripts/polyfill.js +4 -0
  36. package/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  37. package/docs/scripts/prettify/lang-css.js +2 -0
  38. package/docs/scripts/prettify/prettify.js +28 -0
  39. package/docs/scripts/search.js +99 -0
  40. package/docs/styles/jsdoc.css +776 -0
  41. package/docs/styles/prettify.css +80 -0
  42. package/g.read.mjs +5 -0
  43. package/g.write.mjs +24 -0
  44. package/package.json +28 -0
  45. package/src/WMeshTecplot.mjs +102 -0
  46. package/test/all.test.mjs +10 -0
  47. package/toolg/addVersion.mjs +4 -0
  48. package/toolg/cleanFolder.mjs +4 -0
  49. package/toolg/gDistRollup.mjs +34 -0
  50. package/toolg/gDocsExams.mjs +48 -0
  51. package/toolg/modifyReadme.mjs +4 -0
@@ -0,0 +1,80 @@
1
+ .pln {
2
+ color: #ddd;
3
+ }
4
+
5
+ /* string content */
6
+ .str {
7
+ color: #61ce3c;
8
+ }
9
+
10
+ /* a keyword */
11
+ .kwd {
12
+ color: #fbde2d;
13
+ }
14
+
15
+ /* a comment */
16
+ .com {
17
+ color: #aeaeae;
18
+ }
19
+
20
+ /* a type name */
21
+ .typ {
22
+ color: #8da6ce;
23
+ }
24
+
25
+ /* a literal value */
26
+ .lit {
27
+ color: #fbde2d;
28
+ }
29
+
30
+ /* punctuation */
31
+ .pun {
32
+ color: #ddd;
33
+ }
34
+
35
+ /* lisp open bracket */
36
+ .opn {
37
+ color: #000000;
38
+ }
39
+
40
+ /* lisp close bracket */
41
+ .clo {
42
+ color: #000000;
43
+ }
44
+
45
+ /* a markup tag name */
46
+ .tag {
47
+ color: #8da6ce;
48
+ }
49
+
50
+ /* a markup attribute name */
51
+ .atn {
52
+ color: #fbde2d;
53
+ }
54
+
55
+ /* a markup attribute value */
56
+ .atv {
57
+ color: #ddd;
58
+ }
59
+
60
+ /* a declaration */
61
+ .dec {
62
+ color: #EF5050;
63
+ }
64
+
65
+ /* a variable name */
66
+ .var {
67
+ color: #c82829;
68
+ }
69
+
70
+ /* a function name */
71
+ .fun {
72
+ color: #4271ae;
73
+ }
74
+
75
+ /* Specify class=linenums on a pre to get line numbering */
76
+ ol.linenums {
77
+ margin-top: 0;
78
+ margin-bottom: 0;
79
+ padding-bottom: 2px;
80
+ }
package/g.read.mjs ADDED
@@ -0,0 +1,5 @@
1
+
2
+ //尚待開發
3
+
4
+ //node --no-warnings --max-old-space-size=120000 --es-module-specifier-resolution=node g.read.mjs
5
+
package/g.write.mjs ADDED
@@ -0,0 +1,24 @@
1
+ import fs from 'fs'
2
+ import wmt from './src/WMeshTecplot.mjs'
3
+
4
+
5
+ let fpIn = './_mesh/mesh.json'
6
+ let fpOut = './_mesh/cv2tecplot.dat'
7
+ let name = 'cv2tecplot'
8
+
9
+ console.log('reading...')
10
+ let j = fs.readFileSync(fpIn, 'utf8')
11
+ let m = JSON.parse(j)
12
+ // console.log('m', m)
13
+
14
+ console.log('writing...')
15
+ wmt.writeTecplot(name, m.nodes, m.eles, fpOut)
16
+ .then((r) => {
17
+ console.log('finish.')
18
+ })
19
+ .catch((err) => {
20
+ console.log(err)
21
+ })
22
+
23
+ //node --no-warnings --max-old-space-size=120000 --es-module-specifier-resolution=node g.write.mjs
24
+
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "w-mesh-tecplot",
3
+ "version": "1.0.0",
4
+ "main": "dist/w-mesh-tecplot.umd.js",
5
+ "dependencies": {
6
+ "lodash": "^4.17.21",
7
+ "wsemi": "^1.7.39"
8
+ },
9
+ "devDependencies": {
10
+ "w-package-tools": "^1.0.70"
11
+ },
12
+ "scripts": {
13
+ "test": "mocha --parallel --timeout 60000 --experimental-modules --es-module-specifier-resolution=node",
14
+ "deploy": "gh-pages -d docs"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/yuda-lyu/w-mesh-tecplot.git"
19
+ },
20
+ "keywords": [
21
+ "package",
22
+ "tool",
23
+ "tecplot",
24
+ "nodejs"
25
+ ],
26
+ "author": "yuda-lyu(semisphere)",
27
+ "license": "MIT"
28
+ }
@@ -0,0 +1,102 @@
1
+ import fs from 'fs'
2
+ import get from 'lodash/get'
3
+ import each from 'lodash/each'
4
+ import size from 'lodash/size'
5
+ import join from 'lodash/join'
6
+
7
+
8
+ /**
9
+ * 讀取Tecplot的ASCII檔
10
+ *
11
+ * @param {String} fp 輸入檔案位置字串
12
+ * @return {Promise} 回傳Promise,resolve回傳ltdt(各數據列為物件陣列),reject回傳錯誤訊息
13
+ * @example
14
+ *
15
+
16
+ *
17
+ */
18
+ async function readTecplot(fpDat, name, fpOut) {
19
+
20
+ console.log('尚待開發')
21
+
22
+ return null
23
+ }
24
+
25
+
26
+ /**
27
+ * 輸出數據至Tecplot檔案
28
+ *
29
+ * @param {String} fp 輸入檔案位置字串
30
+ * @param {Array} data 輸入數據陣列,為mat或ltdt格式
31
+ * @param {Object} [opt={}] 輸入設定物件,預設{}
32
+ * @param {String} [opt.mode='ltdt'] 輸入數據格式字串,可選ltdt或mat,預設ltdt
33
+ * @param {Array} [opt.keys=[]] 輸入指定欲輸出鍵值陣列,預設[]
34
+ * @param {Object} [opt.kphead={}] 輸入指定鍵值轉換物件,預設{}
35
+ * @return {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
36
+ * @example
37
+ *
38
+
39
+ *
40
+ */
41
+ async function writeTecplot(name, nodes, eles, fpOut, opt = {}) {
42
+
43
+ //head
44
+ let head = `TITLE = "Mesh" VARIABLES = "X", "Y", "Z", "M"`
45
+
46
+ //c
47
+ let c = head + '\n'
48
+
49
+ //nd
50
+ let nd = size(nodes)
51
+ // console.log('nd', nd)
52
+
53
+ //ne
54
+ let ne = size(eles)
55
+ // console.log('ne', ne)
56
+
57
+ //h
58
+ let h = `ZONE T="${name}",N=${nd}, E=${ne}, F=fepoint, ET=brick`
59
+ c += h + '\n'
60
+
61
+ each(nodes, (node) => {
62
+ let vs = [
63
+ get(node, 'x', 0),
64
+ get(node, 'y', 0),
65
+ get(node, 'z', 0),
66
+ get(node, 'mat', 0),
67
+ // v1,
68
+ // v2,
69
+ // v3,
70
+ ]
71
+ let t = join(vs, ' ')
72
+ c += t + '\n'
73
+ })
74
+
75
+ each(eles, (ele) => {
76
+ let vs = ele.nodes
77
+ let t = join(vs, ' ')
78
+ c += t + '\n'
79
+ })
80
+
81
+ //writeFileSync
82
+ fs.writeFileSync(fpOut, c, 'utf8')
83
+
84
+ return null
85
+ }
86
+
87
+ /**
88
+ * 讀寫Tecplot的ASCII檔檔
89
+ *
90
+ * @return {Object} 回傳物件,其內有readTecplot與writeTecplot函式
91
+ * @example
92
+ *
93
+
94
+ *
95
+ */
96
+ let WMeshTecplot = {
97
+ readTecplot,
98
+ writeTecplot,
99
+ }
100
+
101
+
102
+ export default WMeshTecplot
@@ -0,0 +1,10 @@
1
+ import assert from 'assert'
2
+
3
+
4
+ describe('all', function() {
5
+
6
+ it('test in localhost', function() {
7
+ assert.strict.deepEqual(1, 1)
8
+ })
9
+
10
+ })
@@ -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,34 @@
1
+ // import path from 'path'
2
+ import rollupFiles from 'w-package-tools/src/rollupFiles.mjs'
3
+
4
+
5
+ let fdSrc = './src'
6
+ let fdTar = './dist'
7
+
8
+
9
+ async function rp() {
10
+
11
+ await rollupFiles({ //rollupFiles預設會clean folder
12
+ fns: 'WMeshTecplot.mjs',
13
+ fdSrc,
14
+ fdTar,
15
+ nameDistType: 'kebabCase',
16
+ // bNodePolyfill: true,
17
+ // bMinify: false,
18
+ globals: {
19
+ 'fs': 'fs',
20
+ },
21
+ external: [
22
+ 'fs',
23
+ ],
24
+ })
25
+ .catch((err) => {
26
+ console.log(err)
27
+ })
28
+
29
+ }
30
+ rp()
31
+ .catch((err) => {
32
+ console.log(err)
33
+ })
34
+
@@ -0,0 +1,48 @@
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-mesh-tecplot@${pks.version}/dist/w-mesh-tecplot.umd.js`
19
+
20
+ //mkdirSync
21
+ if (!fs.existsSync(fdTar)) {
22
+ fs.mkdirSync(fdTar)
23
+ }
24
+
25
+ //getFiles
26
+ let ltfs = getFiles(fdSrc)
27
+
28
+ _.each(ltfs, function(v) {
29
+
30
+ //fn
31
+ let fn = fdSrc + v
32
+
33
+ //c
34
+ let c = fs.readFileSync(fn, 'utf8')
35
+
36
+ //replace
37
+ let r
38
+ r = `../dist/w-mesh-tecplot.umd.js`
39
+ c = c.replace(r, url)
40
+
41
+ //write
42
+ //console.log(c)
43
+ fs.writeFileSync(fdTar + v, c, 'utf8')
44
+
45
+ })
46
+
47
+ }
48
+ // main()
@@ -0,0 +1,4 @@
1
+ import modifyReadme from 'w-package-tools/src/modifyReadme.mjs'
2
+
3
+
4
+ modifyReadme()