1
+ //Copyright WojtekGame 2023 - npm: code-gui, github: WojtekCodesToday/code-gui
2
+ import * as fs from 'fs/promises'
3
+ import colors from 'colors' ;
4
+ function __e ( err ) {
5
+ console . error ( "(err) " + err ) ;
6
+ }
7
+ /**
8
+ * # loadDir
9
+ * An code-gui function allowing to display folder contents in the terminal.
10
+ *
11
+ * Example:
12
+ * ```
13
+ * import loadDir from "code-gui";
14
+ * loadDir("C:/", {"type":"text"})
15
+ * ```
16
+ * ## History
17
+ * Added by [@WojtekCodesToday](github.com/WojtekCodesToday) on [GitHub](github.com)
18
+ */
19
+ async function loadDir ( dir , set ) {
20
+ let
21
+ gdir = colors . yellow . bold ( " " + dir ) ,
22
+ rest , name = "" ;
23
+ rest = ""
24
+ for ( let c = 0 ; c < gdir . length ; c ++ ) {
25
+ switch ( set . style ) {
26
+ case "emoji" :
27
+ rest = `${ rest } ` ;
28
+ break ;
29
+ case "emoji-hacker" :
30
+ rest = `${ rest } ` ;
31
+ break ;
32
+ case "text-hacker" :
33
+ rest = `${ rest } 1` ;
34
+ break ;
35
+ case "text" :
36
+ rest = `${ rest } -` ;
37
+ break ;
38
+ case "text-2" :
39
+ rest = `${ rest } ─` ;
40
+ break ;
41
+ case "keyboard" :
42
+ rest = `${ rest } I` ;
43
+ break ;
44
+ //default:
45
+ // break;
46
+ }
47
+ } try {
48
+ var folder = await fs . opendir ( dir ) ;
49
+ switch ( set . style ) {
50
+ case "emoji" :
51
+ console . log ( `⏹️⬅️⬅️ 🔍${ gdir } ` ) ;
52
+ break ;
53
+ case "emoji-hacker" :
54
+ console . log ( `#️⃣0️⃣1️⃣ 🔍${ gdir } ` ) ;
55
+ break ;
56
+ case "text" :
57
+ console . log ( `#--${ gdir } ` ) ;
58
+ break ;
59
+ case "text-2" :
60
+ console . log ( `┌──${ gdir } ` ) ;
61
+ break ;
62
+ case "keyboard" :
63
+ console . log ( `OIII${ gdir } ` ) ;
64
+ break ;
65
+ case "text-hacker" :
66
+ console . log ( `#0110${ gdir } ` ) ;
67
+ break ;
68
+ //default:
69
+ // break;
70
+ }
71
+ let dircount = 0 ,
72
+ filecount = 0 ,
73
+ nullcount = 0 ;
74
+ function __frame ( ) {
75
+ let about = "" ;
76
+ if ( e . isFile ( ) === false ) {
77
+ dircount = dircount + 1 ;
78
+ about = colors . gray ( ` // <Directory> Directory count: ${ dircount } ` ) ;
79
+ } else if ( e . isDirectory ( ) === true ) {
80
+ filecount = filecount + 1
81
+ about = colors . gray ( ` // <File> File count: ${ filecount } ` ) ;
82
+ } else {
83
+ nullcount = nullcount + 1
84
+ about = colors . gray ( ` // <NULL> Null count: ${ nullcount } ` ) ;
85
+ }
86
+ if ( set . limitNames === true ) {
87
+ if ( name . length > 20 ) {
88
+ let abc = "" ;
89
+ for ( let integr = 0 ; integr < 20 ; integr ++ ) {
90
+ abc = abc + name [ integr ] ;
91
+
92
+ }
93
+ name = `${ abc } ...` ;
94
+ }
95
+ }
96
+ switch ( set . style ) {
97
+ case "emoji" :
98
+ console . log ( `⬇️ ${ name } ${ about } ` ) ;
99
+ break ;
100
+ case "emoji-hacker" :
101
+ var z = Math . floor ( Math . random ( ) * 2 ) ;
102
+ switch ( z ) {
103
+ case 1 :
104
+ console . log ( `0️⃣ ${ name } ${ about } ` ) ;
105
+ break ;
106
+ default :
107
+ console . log ( `1️⃣${ name } ${ about } ` ) ;
108
+ break ;
109
+ }
110
+ break ;
111
+ case "text" :
112
+ console . log ( `| ${ name } ${ about } ` ) ;
113
+ break ;
114
+ case "text-2" :
115
+ console . log ( `│ ${ name } ${ about } ` ) ;
116
+ break ;
117
+ case "keyboard" :
118
+ console . log ( `l ${ name } ${ about } ` ) ;
119
+ break ;
120
+ case "text-hacker" :
121
+ var z = Math . floor ( Math . random ( ) * 2 ) ;
122
+ switch ( z ) {
123
+ case 1 :
124
+ console . log ( `0️ ${ name } ${ about } ` ) ;
125
+ break ;
126
+ default :
127
+ console . log ( `1️ ${ name } ${ about } ` ) ;
128
+ break ;
129
+ }
130
+ break ;
131
+ default :
132
+ break ;
133
+ }
134
+ }
135
+ if ( set . showItems === undefined ) {
136
+ for await ( var e of folder ) {
137
+ name = e . name ;
138
+ __frame ( )
139
+ }
140
+ } else {
141
+ var i = 0
142
+ for await ( var e of folder ) {
143
+ if ( i < set . showItems ) {
144
+ __frame ( )
145
+ }
146
+ i = i + 1
147
+ }
148
+ }
149
+ switch ( set . style ) {
150
+ case "emoji" :
151
+ console . log ( `⏹️➡️➡️${ rest } ` ) ;
152
+ break ;
153
+ case "emoji-hacker" :
154
+ console . log ( `#️⃣1️⃣0️⃣${ rest } ` ) ;
155
+ break ;
156
+ case "text" :
157
+ console . log ( `#--${ rest } ` ) ;
158
+ break ;
159
+ case "text-2" :
160
+ console . log ( `└──${ rest } ` )
161
+ break ;
162
+ case "keyboard" :
163
+ console . log ( `OII${ rest } ` )
164
+ break ;
165
+ case "text-hacker" :
166
+ console . log ( `#10${ rest } ` )
167
+ break ;
168
+
169
+ //default:
170
+ // break;
171
+ }
172
+ } catch ( err ) {
173
+ __e ( err ) ;
174
+ }
175
+ }
176
+ export default loadDir
0 commit comments