@k4a_l/dirtreeist 0.2.6 → 0.2.7
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 +32 -32
- package/dist/constants/constant.js +2 -2
- package/dist/constants/constant.js.map +1 -1
- package/dist/index.cjs +17 -9
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/convert.d.ts.map +1 -1
- package/dist/modules/convert.js +13 -5
- package/dist/modules/convert.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,24 +26,24 @@ https://www.k4a.me/tools/dirtreeist
|
|
|
26
26
|
|
|
27
27
|
```markdown
|
|
28
28
|
- /components
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
- App.tsx
|
|
30
|
+
- App.css
|
|
31
31
|
- config.json
|
|
32
32
|
- /utils
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
- converter.ts
|
|
34
|
+
- parser.ts
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
### Output
|
|
38
38
|
|
|
39
39
|
```text
|
|
40
40
|
├─/components
|
|
41
|
-
│
|
|
42
|
-
│
|
|
41
|
+
│ ├─App.tsx
|
|
42
|
+
│ └─App.css
|
|
43
43
|
├─config.json
|
|
44
44
|
└─/utils
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
57
|
-
|
|
56
|
+
- App.tsx
|
|
57
|
+
- App.css
|
|
58
58
|
- config.json
|
|
59
59
|
- /utils
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
- converter.ts
|
|
61
|
+
- parser.ts
|
|
62
62
|
`
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
```tsx
|
|
66
|
-
import
|
|
66
|
+
import dirtreeist, { Options } from '@k4a_l/dirtreeist'
|
|
67
67
|
|
|
68
68
|
const options: Options = {}
|
|
69
|
-
const outputs =
|
|
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
|
-
|
|
94
|
-
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
-
│
|
|
154
|
-
│
|
|
153
|
+
│ ├─App.tsx
|
|
154
|
+
│ └─App.css
|
|
155
155
|
│
|
|
156
156
|
├─config.json
|
|
157
157
|
└─/utils
|
|
158
|
-
|
|
159
|
-
|
|
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
|
-
│
|
|
171
|
-
│
|
|
170
|
+
│ ├─ App.tsx
|
|
171
|
+
│ └─ App.css
|
|
172
172
|
├─ config.json
|
|
173
173
|
└─ /utils
|
|
174
|
-
|
|
175
|
-
|
|
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
|
-
│
|
|
187
|
-
│
|
|
186
|
+
│ ├──App.tsx
|
|
187
|
+
│ └──App.css
|
|
188
188
|
├──config.json
|
|
189
189
|
└──/utils
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
└──converter.ts
|
|
191
|
+
└──parser.ts
|
|
192
192
|
```
|
|
@@ -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: '|',
|
|
@@ -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,
|
|
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,OAAO,EAAE,UAAU,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: '|',
|
|
@@ -9893,6 +9893,16 @@ const makeSymbol = (symbolSet, isLast) => {
|
|
|
9893
9893
|
return symbolSet.end;
|
|
9894
9894
|
return symbolSet.crossing;
|
|
9895
9895
|
};
|
|
9896
|
+
const makeAsciiSpace = (spaceSize) => {
|
|
9897
|
+
return new Array(spaceSize).fill(' ').reduce((prev, cur) => {
|
|
9898
|
+
return prev + cur;
|
|
9899
|
+
}, '');
|
|
9900
|
+
};
|
|
9901
|
+
const makeSpace = (spaceSize) => {
|
|
9902
|
+
return (new Array(Math.floor(spaceSize / 2)).fill(' ').reduce((prev, cur) => {
|
|
9903
|
+
return prev + cur;
|
|
9904
|
+
}, '') + (spaceSize % 2 == 1 ? ' ' : ''));
|
|
9905
|
+
};
|
|
9896
9906
|
const reduce = (dirTree, options, prefix, hie, isLastGroup) => {
|
|
9897
9907
|
let result = ``;
|
|
9898
9908
|
dirTree.some((dirNode, dirNodeIndex) => {
|
|
@@ -9908,11 +9918,9 @@ const reduce = (dirTree, options, prefix, hie, isLastGroup) => {
|
|
|
9908
9918
|
.reduce((prev, cur) => prev + cur, '');
|
|
9909
9919
|
const currentLine = `${currentPrefix}${options.spaceBeforeName ? ' ' : ''}${dirNode.name}`;
|
|
9910
9920
|
// 子
|
|
9911
|
-
const spaces =
|
|
9912
|
-
.
|
|
9913
|
-
.
|
|
9914
|
-
return prev + cur;
|
|
9915
|
-
}, '');
|
|
9921
|
+
const spaces = options.treeType === 'ascii'
|
|
9922
|
+
? makeAsciiSpace(options.spaceSize)
|
|
9923
|
+
: makeSpace(options.spaceSize);
|
|
9916
9924
|
const childrenLines = reduce(dirNode.children, options, prefix + (isLast ? symbolSet.space : symbolSet.vertical) + spaces, hie + 1, isLastGroup || isLast);
|
|
9917
9925
|
// 追加
|
|
9918
9926
|
result +=
|
|
@@ -9929,10 +9937,10 @@ const convert = (dirTree, options) => {
|
|
|
9929
9937
|
return reduce(dirTree, buildOption(options, defaultOptions), '', 0, false);
|
|
9930
9938
|
};
|
|
9931
9939
|
|
|
9932
|
-
const
|
|
9940
|
+
const dirtreeist = (markdown, option) => {
|
|
9933
9941
|
return parse(markdown).map((dirtree) => convert(dirtree, option));
|
|
9934
9942
|
};
|
|
9935
9943
|
|
|
9936
9944
|
exports.convert = convert;
|
|
9937
|
-
exports["default"] =
|
|
9945
|
+
exports["default"] = dirtreeist;
|
|
9938
9946
|
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
|
|
4
|
+
declare const dirtreeist: (markdown: string, option?: Options) => string[];
|
|
5
5
|
export { parse, convert };
|
|
6
|
-
export default
|
|
6
|
+
export default dirtreeist;
|
|
7
7
|
export type { DirTree, Options };
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
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,
|
|
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;
|
|
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,MAEtD,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
package/dist/modules/convert.js
CHANGED
|
@@ -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 =
|
|
24
|
-
.
|
|
25
|
-
.
|
|
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 +=
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/modules/convert.ts"],"names":[],"mappings":"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"}
|