@k4a_l/dirtreeist 0.2.6 → 0.2.9

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
@@ -26,24 +26,24 @@ https://www.k4a.me/tools/dirtreeist
26
26
 
27
27
  ```markdown
28
28
  - /components
29
- - App.tsx
30
- - App.css
29
+  - App.tsx
30
+  - App.css
31
31
  - config.json
32
32
  - /utils
33
- - converter.ts
34
- - parser.ts
33
+  - converter.ts
34
+  - parser.ts
35
35
  ```
36
36
 
37
37
  ### Output
38
38
 
39
39
  ```text
40
40
  ├─/components
41
- ├─App.tsx
42
- └─App.css
41
+  ├─App.tsx
42
+  └─App.css
43
43
  ├─config.json
44
44
  └─/utils
45
- └─converter.ts
46
- └─parser.ts
45
+   └─converter.ts
46
+   └─parser.ts
47
47
  ```
48
48
 
49
49
  ## How to use
@@ -53,20 +53,20 @@ https://www.k4a.me/tools/dirtreeist
53
53
  ```ts
54
54
  const markdown = `
55
55
  - /components
56
- - App.tsx
57
- - App.css
56
+   - App.tsx
57
+   - App.css
58
58
  - config.json
59
59
  - /utils
60
- - converter.ts
61
- - parser.ts
60
+   - converter.ts
61
+   - parser.ts
62
62
  `
63
63
  ```
64
64
 
65
65
  ```tsx
66
- import dirtreest, { Options } from '@k4a_l/dirtreeist'
66
+ import dirtreeist, { Options } from '@k4a_l/dirtreeist'
67
67
 
68
68
  const options: Options = {}
69
- const outputs = dirtreest(markdown, options) // DirTree[] => output[]
69
+ const outputs = dirtreeist(markdown, options) // DirTree[] => output[]
70
70
 
71
71
  console.log(outputs)
72
72
  ```
@@ -90,8 +90,8 @@ console.log(outputs)
90
90
 
91
91
  ```ts
92
92
  type DirNode = {
93
- name: string
94
- children: DirNode[]
93
+  name: string
94
+  children: DirNode[]
95
95
  }
96
96
 
97
97
  type DirTree = DirNode[]
@@ -101,10 +101,10 @@ type DirTree = DirNode[]
101
101
 
102
102
  ```ts
103
103
  type Options = {
104
- treeType?: 'normal' | 'bold' | 'ascii'
105
- emptyBeforeUpperHierarche?: boolean
106
- spaceBeforeName?: boolean
107
- spaceSize?: number
104
+  treeType?: 'normal' | 'bold' | 'ascii'
105
+  emptyBeforeUpperHierarche?: boolean
106
+  spaceBeforeName?: boolean
107
+  spaceSize?: number
108
108
  }
109
109
  ```
110
110
 
@@ -150,13 +150,13 @@ default:`false`
150
150
  ```text
151
151
  (true)
152
152
  ├─/components
153
- ├─App.tsx
154
- └─App.css
153
+  ├─App.tsx
154
+  └─App.css
155
155
 
156
156
  ├─config.json
157
157
  └─/utils
158
- └─converter.ts
159
- └─parser.ts
158
+   └─converter.ts
159
+   └─parser.ts
160
160
  ```
161
161
 
162
162
  #### spaceBeforeName : boolean
@@ -167,12 +167,12 @@ default: `false`
167
167
 
168
168
  ```text
169
169
  ├─ /components
170
- ├─ App.tsx
171
- └─ App.css
170
+  ├─ App.tsx
171
+  └─ App.css
172
172
  ├─ config.json
173
173
  └─ /utils
174
- └─ converter.ts
175
- └─ parser.ts
174
+   └─ converter.ts
175
+   └─ parser.ts
176
176
  ```
177
177
 
178
178
  #### spaceSize : number
@@ -183,10 +183,10 @@ default:`2`
183
183
 
184
184
  ```text
185
185
  ├──/components
186
- ├──App.tsx
187
- └──App.css
186
+   ├──App.tsx
187
+   └──App.css
188
188
  ├──config.json
189
189
  └──/utils
190
- └──converter.ts
191
- └──parser.ts
190
+    └──converter.ts
191
+    └──parser.ts
192
192
  ```
@@ -3,5 +3,6 @@ declare const symbolSets: {
3
3
  [key in OptionsBase['treeType']]: SymbolSet;
4
4
  };
5
5
  declare const defaultOptions: OptionsBase;
6
- export { symbolSets, defaultOptions };
6
+ declare const treeTypeValues: string[];
7
+ export { symbolSets, defaultOptions, treeTypeValues };
7
8
  //# sourceMappingURL=constant.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../src/constants/constant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE9C,QAAA,MAAM,UAAU,EAAE;KACf,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,SAAS;CAuB5C,CAAA;AAED,QAAA,MAAM,cAAc,EAAE,WAKrB,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../src/constants/constant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE9C,QAAA,MAAM,UAAU,EAAE;KACf,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,SAAS;CAuB5C,CAAA;AAED,QAAA,MAAM,cAAc,EAAE,WAKrB,CAAA;AAED,QAAA,MAAM,cAAc,UAA8B,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,CAAA"}
@@ -4,14 +4,14 @@ const symbolSets = {
4
4
  horizontal: '─',
5
5
  crossing: '├',
6
6
  end: '└',
7
- space: ' ',
7
+ space: ' ',
8
8
  },
9
9
  bold: {
10
10
  vertical: '┃',
11
11
  horizontal: '━',
12
12
  crossing: '┣',
13
13
  end: '┗',
14
- space: ' ',
14
+ space: ' ',
15
15
  },
16
16
  ascii: {
17
17
  vertical: '|',
@@ -27,5 +27,6 @@ const defaultOptions = {
27
27
  spaceSize: 2,
28
28
  emptyBeforeUpperHierarche: false,
29
29
  };
30
- export { symbolSets, defaultOptions };
30
+ const treeTypeValues = ['normal', 'bold', 'ascii'];
31
+ export { symbolSets, defaultOptions, treeTypeValues };
31
32
  //# sourceMappingURL=constant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/constants/constant.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAEZ;IACF,MAAM,EAAE;QACN,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,IAAI;KACZ;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,IAAI;KACZ;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,GAAG;KACX;CACF,CAAA;AAED,MAAM,cAAc,GAAgB;IAClC,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,KAAK;IACtB,SAAS,EAAE,CAAC;IACZ,yBAAyB,EAAE,KAAK;CACjC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/constants/constant.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAEZ;IACF,MAAM,EAAE;QACN,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,GAAG;KACX;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,GAAG;KACX;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,GAAG;KACX;CACF,CAAA;AAED,MAAM,cAAc,GAAgB;IAClC,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,KAAK;IACtB,SAAS,EAAE,CAAC;IACZ,yBAAyB,EAAE,KAAK;CACjC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,CAAA"}
package/dist/index.cjs CHANGED
@@ -9848,14 +9848,14 @@ const symbolSets = {
9848
9848
  horizontal: '─',
9849
9849
  crossing: '├',
9850
9850
  end: '└',
9851
- space: ' ',
9851
+ space: ' ',
9852
9852
  },
9853
9853
  bold: {
9854
9854
  vertical: '┃',
9855
9855
  horizontal: '━',
9856
9856
  crossing: '┣',
9857
9857
  end: '┗',
9858
- space: ' ',
9858
+ space: ' ',
9859
9859
  },
9860
9860
  ascii: {
9861
9861
  vertical: '|',
@@ -9870,13 +9870,40 @@ const defaultOptions = {
9870
9870
  spaceBeforeName: false,
9871
9871
  spaceSize: 2,
9872
9872
  emptyBeforeUpperHierarche: false,
9873
- };
9874
-
9873
+ };
9874
+ const treeTypeValues = ['normal', 'bold', 'ascii'];
9875
+
9876
+ const optionGuard = (value, defaultValue, key) => {
9877
+ if (key === 'spaceSize') {
9878
+ if (typeof value !== 'number')
9879
+ return defaultValue;
9880
+ if (value < 1)
9881
+ return defaultValue;
9882
+ return value;
9883
+ }
9884
+ if (key === 'emptyBeforeUpperHierarche') {
9885
+ if (typeof value !== 'boolean')
9886
+ return defaultValue;
9887
+ return value;
9888
+ }
9889
+ if (key === 'spaceBeforeName') {
9890
+ if (typeof value !== 'boolean')
9891
+ return defaultValue;
9892
+ return value;
9893
+ }
9894
+ if (key === 'treeType') {
9895
+ if (!treeTypeValues.includes(value))
9896
+ return defaultValue;
9897
+ return value;
9898
+ }
9899
+ return defaultValue;
9900
+ };
9875
9901
  const pickOption = (option, defaultOption, key) => {
9876
9902
  if (option === undefined)
9877
9903
  return defaultOptions[key];
9878
- if (option[key] !== undefined)
9879
- return option[key];
9904
+ if (option[key] !== undefined) {
9905
+ return optionGuard(option[key], defaultOption[key], key);
9906
+ }
9880
9907
  return defaultOption[key];
9881
9908
  };
9882
9909
  const buildOption = (options, defaultOptions) => {
@@ -9893,6 +9920,16 @@ const makeSymbol = (symbolSet, isLast) => {
9893
9920
  return symbolSet.end;
9894
9921
  return symbolSet.crossing;
9895
9922
  };
9923
+ const makeAsciiSpace = (spaceSize) => {
9924
+ return new Array(spaceSize).fill(' ').reduce((prev, cur) => {
9925
+ return prev + cur;
9926
+ }, '');
9927
+ };
9928
+ const makeSpace = (spaceSize) => {
9929
+ return (new Array(Math.floor(spaceSize / 2)).fill(' ').reduce((prev, cur) => {
9930
+ return prev + cur;
9931
+ }, '') + (spaceSize % 2 == 1 ? ' ' : ''));
9932
+ };
9896
9933
  const reduce = (dirTree, options, prefix, hie, isLastGroup) => {
9897
9934
  let result = ``;
9898
9935
  dirTree.some((dirNode, dirNodeIndex) => {
@@ -9908,11 +9945,9 @@ const reduce = (dirTree, options, prefix, hie, isLastGroup) => {
9908
9945
  .reduce((prev, cur) => prev + cur, '');
9909
9946
  const currentLine = `${currentPrefix}${options.spaceBeforeName ? ' ' : ''}${dirNode.name}`;
9910
9947
  // 子
9911
- const spaces = new Array(options.spaceSize)
9912
- .fill(' ')
9913
- .reduce((prev, cur) => {
9914
- return prev + cur;
9915
- }, '');
9948
+ const spaces = options.treeType === 'ascii'
9949
+ ? makeAsciiSpace(options.spaceSize)
9950
+ : makeSpace(options.spaceSize);
9916
9951
  const childrenLines = reduce(dirNode.children, options, prefix + (isLast ? symbolSet.space : symbolSet.vertical) + spaces, hie + 1, isLastGroup || isLast);
9917
9952
  // 追加
9918
9953
  result +=
@@ -9926,13 +9961,18 @@ const reduce = (dirTree, options, prefix, hie, isLastGroup) => {
9926
9961
  return result.slice(0, hie === 0 ? -1 : result.length);
9927
9962
  };
9928
9963
  const convert = (dirTree, options) => {
9929
- return reduce(dirTree, buildOption(options, defaultOptions), '', 0, false);
9964
+ try {
9965
+ return reduce(dirTree, buildOption(options, defaultOptions), '', 0, false);
9966
+ }
9967
+ catch (error) {
9968
+ return 'Some errors occurred!\n\n' + String(error) + '\n\n' + 'Please contact to developper.';
9969
+ }
9930
9970
  };
9931
9971
 
9932
- const dirtreest = (markdown, option) => {
9972
+ const dirtreeist = (markdown, option) => {
9933
9973
  return parse(markdown).map((dirtree) => convert(dirtree, option));
9934
9974
  };
9935
9975
 
9936
9976
  exports.convert = convert;
9937
- exports["default"] = dirtreest;
9977
+ exports["default"] = dirtreeist;
9938
9978
  exports.parse = parse;
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { parse } from './modules/parse.js';
2
2
  import { convert } from './modules/convert.js';
3
3
  import { DirTree, Options } from './types/index';
4
- declare const dirtreest: (markdown: string, option?: Options) => string[];
4
+ declare const dirtreeist: (markdown: string, option?: Options) => string[];
5
5
  export { parse, convert };
6
- export default dirtreest;
6
+ export default dirtreeist;
7
7
  export type { DirTree, Options };
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEhD,QAAA,MAAM,SAAS,aAAc,MAAM,WAAW,OAAO,aAEpD,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AACzB,eAAe,SAAS,CAAA;AACxB,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEhD,QAAA,MAAM,UAAU,aAAc,MAAM,WAAW,OAAO,aAErD,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AACzB,eAAe,UAAU,CAAA;AACzB,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA"}
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { parse } from './modules/parse.js';
2
2
  import { convert } from './modules/convert.js';
3
- const dirtreest = (markdown, option) => {
3
+ const dirtreeist = (markdown, option) => {
4
4
  return parse(markdown).map((dirtree) => convert(dirtree, option));
5
5
  };
6
6
  export { parse, convert };
7
- export default dirtreest;
7
+ export default dirtreeist;
8
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAI9C,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,MAAgB,EAAE,EAAE;IACvD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AACnE,CAAC,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AACzB,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAI9C,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,MAAgB,EAAE,EAAE;IACxD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AACnE,CAAC,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AACzB,eAAe,UAAU,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/modules/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAA0B,MAAM,aAAa,CAAA;AA+DtE,QAAA,MAAM,OAAO,+BAAgC,OAAO,KAAG,MAEtD,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/modules/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAA0B,MAAM,aAAa,CAAA;AA6EtE,QAAA,MAAM,OAAO,+BAAgC,OAAO,KAAG,MAMtD,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
@@ -5,6 +5,16 @@ const makeSymbol = (symbolSet, isLast) => {
5
5
  return symbolSet.end;
6
6
  return symbolSet.crossing;
7
7
  };
8
+ const makeAsciiSpace = (spaceSize) => {
9
+ return new Array(spaceSize).fill(' ').reduce((prev, cur) => {
10
+ return prev + cur;
11
+ }, '');
12
+ };
13
+ const makeSpace = (spaceSize) => {
14
+ return (new Array(Math.floor(spaceSize / 2)).fill(' ').reduce((prev, cur) => {
15
+ return prev + cur;
16
+ }, '') + (spaceSize % 2 == 1 ? ' ' : ''));
17
+ };
8
18
  const reduce = (dirTree, options, prefix, hie, isLastGroup) => {
9
19
  let result = ``;
10
20
  dirTree.some((dirNode, dirNodeIndex) => {
@@ -20,11 +30,9 @@ const reduce = (dirTree, options, prefix, hie, isLastGroup) => {
20
30
  .reduce((prev, cur) => prev + cur, '');
21
31
  const currentLine = `${currentPrefix}${options.spaceBeforeName ? ' ' : ''}${dirNode.name}`;
22
32
  // 子
23
- const spaces = new Array(options.spaceSize)
24
- .fill(' ')
25
- .reduce((prev, cur) => {
26
- return prev + cur;
27
- }, '');
33
+ const spaces = options.treeType === 'ascii'
34
+ ? makeAsciiSpace(options.spaceSize)
35
+ : makeSpace(options.spaceSize);
28
36
  const childrenLines = reduce(dirNode.children, options, prefix + (isLast ? symbolSet.space : symbolSet.vertical) + spaces, hie + 1, isLastGroup || isLast);
29
37
  // 追加
30
38
  result +=
@@ -38,7 +46,12 @@ const reduce = (dirTree, options, prefix, hie, isLastGroup) => {
38
46
  return result.slice(0, hie === 0 ? -1 : result.length);
39
47
  };
40
48
  const convert = (dirTree, options) => {
41
- return reduce(dirTree, buildOption(options, defaultOptions), '', 0, false);
49
+ try {
50
+ return reduce(dirTree, buildOption(options, defaultOptions), '', 0, false);
51
+ }
52
+ catch (error) {
53
+ return 'Some errors occurred!\n\n' + String(error) + '\n\n' + 'Please contact to developper.';
54
+ }
42
55
  };
43
56
  export { convert };
44
57
  //# sourceMappingURL=convert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/modules/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,UAAU,GAAG,CAAC,SAAoB,EAAE,MAAe,EAAU,EAAE;IACnE,IAAI,MAAM;QAAE,OAAO,SAAS,CAAC,GAAG,CAAA;IAChC,OAAO,SAAS,CAAC,QAAQ,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CACb,OAAgB,EAChB,OAAoB,EACpB,MAAc,EACd,GAAW,EACX,WAAoB,EACZ,EAAE;IACV,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;QACrC,KAAK;QACL,MAAM,MAAM,GAAG,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;QACjD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAE5C,KAAK;QACL,MAAM,aAAa,GACjB,MAAM;YACN,MAAM;YACN,IAAI,KAAK,CACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvE;iBACE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;QAE1C,MAAM,WAAW,GAAG,GAAG,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GACvE,OAAO,CAAC,IACV,EAAE,CAAA;QAEF,IAAI;QACJ,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;aACxC,IAAI,CAAC,GAAG,CAAC;aACT,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACpB,OAAO,IAAI,GAAG,GAAG,CAAA;QACnB,CAAC,EAAE,EAAE,CAAC,CAAA;QACR,MAAM,aAAa,GAAG,MAAM,CAC1B,OAAO,CAAC,QAAQ,EAChB,OAAO,EACP,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,EACjE,GAAG,GAAG,CAAC,EACP,WAAW,IAAI,MAAM,CACtB,CAAA;QAED,KAAK;QACL,MAAM;YACJ,WAAW;gBACX,IAAI;gBACJ,aAAa;gBACb,CAAC,OAAO,CAAC,yBAAyB,IAAI,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,IAAI,CAAC,CAAC;oBACxE,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,IAAI;oBAC3B,CAAC,CAAC,EAAE,CAAC,CAAA;IACX,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,OAAiB,EAAU,EAAE;IAC9D,OAAO,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;AAC5E,CAAC,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/modules/convert.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/modules/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAY5C,QAAA,MAAM,WAAW,YACN,OAAO,GAAG,SAAS,kBACZ,WAAW,KAC1B,WASF,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/modules/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAuC5C,QAAA,MAAM,WAAW,YACN,OAAO,GAAG,SAAS,kBACZ,WAAW,KAC1B,WASF,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1,9 +1,35 @@
1
- import { defaultOptions } from '../constants/constant.js';
1
+ import { defaultOptions, treeTypeValues } from '../constants/constant.js';
2
+ const optionGuard = (value, defaultValue, key) => {
3
+ if (key === 'spaceSize') {
4
+ if (typeof value !== 'number')
5
+ return defaultValue;
6
+ if (value < 1)
7
+ return defaultValue;
8
+ return value;
9
+ }
10
+ if (key === 'emptyBeforeUpperHierarche') {
11
+ if (typeof value !== 'boolean')
12
+ return defaultValue;
13
+ return value;
14
+ }
15
+ if (key === 'spaceBeforeName') {
16
+ if (typeof value !== 'boolean')
17
+ return defaultValue;
18
+ return value;
19
+ }
20
+ if (key === 'treeType') {
21
+ if (!treeTypeValues.includes(value))
22
+ return defaultValue;
23
+ return value;
24
+ }
25
+ return defaultValue;
26
+ };
2
27
  const pickOption = (option, defaultOption, key) => {
3
28
  if (option === undefined)
4
29
  return defaultOptions[key];
5
- if (option[key] !== undefined)
6
- return option[key];
30
+ if (option[key] !== undefined) {
31
+ return optionGuard(option[key], defaultOption[key], key);
32
+ }
7
33
  return defaultOption[key];
8
34
  };
9
35
  const buildOption = (options, defaultOptions) => {
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/modules/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,MAAM,UAAU,GAAG,CACjB,MAA2B,EAC3B,aAA0B,EAC1B,GAAsB,EACnB,EAAE;IACL,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC,GAAG,CAAM,CAAA;IACzD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,GAAG,CAAM,CAAA;IACtD,OAAO,aAAa,CAAC,GAAG,CAAM,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAClB,OAA4B,EAC5B,cAA2B,EACd,EAAE;IACf,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAClD,OAAO;YACL,GAAG;YACH,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAwB,CAAC;SAC9D,CAAA;IACH,CAAC,CAAC,CACY,CAAA;AAClB,CAAC,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/modules/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtE,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,YAAiB,EAAE,GAAsB,EAAE,EAAE;IAC5E,IAAI,GAAG,KAAK,WAAW,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,YAAY,CAAA;QAClD,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,YAAY,CAAA;QAClC,OAAO,KAAK,CAAA;KACb;IAED,IAAI,GAAG,KAAK,2BAA2B,EAAE;QACvC,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,YAAY,CAAA;QACnD,OAAO,KAAK,CAAA;KACb;IAED,IAAI,GAAG,KAAK,iBAAiB,EAAE;QAC7B,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,YAAY,CAAA;QACnD,OAAO,KAAK,CAAA;KACb;IAED,IAAI,GAAG,KAAK,UAAU,EAAE;QACtB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,YAAY,CAAA;QACxD,OAAO,KAAK,CAAA;KACb;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CACjB,MAA2B,EAC3B,aAA0B,EAC1B,GAAsB,EACnB,EAAE;IACL,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC,GAAG,CAAM,CAAA;IACzD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;QAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,CAAM,CAAA;KAC9D;IACD,OAAO,aAAa,CAAC,GAAG,CAAM,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAClB,OAA4B,EAC5B,cAA2B,EACd,EAAE;IACf,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAClD,OAAO;YACL,GAAG;YACH,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAwB,CAAC;SAC9D,CAAA;IACH,CAAC,CAAC,CACY,CAAA;AAClB,CAAC,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1,10 +1,11 @@
1
+ import { treeTypeValues } from "constants/constant.js";
1
2
  declare type DirNode = {
2
3
  name: string;
3
4
  children: DirNode[];
4
5
  };
5
6
  declare type DirTree = DirNode[];
6
7
  declare type OptionsBase = {
7
- treeType: 'normal' | 'bold' | 'ascii';
8
+ treeType: typeof treeTypeValues[number];
8
9
  emptyBeforeUpperHierarche: boolean;
9
10
  spaceBeforeName: boolean;
10
11
  spaceSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,aAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB,CAAA;AAED,aAAK,OAAO,GAAG,OAAO,EAAE,CAAA;AAExB,aAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACrC,yBAAyB,EAAE,OAAO,CAAA;IAClC,eAAe,EAAE,OAAO,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,aAAK,SAAS,GAAG;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,aAAK,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAEnC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,aAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB,CAAA;AAED,aAAK,OAAO,GAAG,OAAO,EAAE,CAAA;AAExB,aAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;IACvC,yBAAyB,EAAE,OAAO,CAAA;IAClC,eAAe,EAAE,OAAO,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,aAAK,SAAS,GAAG;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,aAAK,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAEnC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k4a_l/dirtreeist",
3
- "version": "0.2.6",
3
+ "version": "0.2.9",
4
4
  "main": "dist/index.js",
5
5
  "exports": {
6
6
  "import": "./dist/index.js",