@@ -9,69 +9,66 @@ import { promises as fs } from "node:fs";
99// .length;
1010// console.log(countOfWordsContainingEs);
1111
12- function countHelper ( inputFiles ) {
13- return {
14- lines : inputFiles . split ( '\n' ) . length - 1 ,
15- words : inputFiles . split ( ' ' ) . filter ( w => w !== "" ) . length ,
16- bytes : inputFiles . length ,
17- } ;
12+ function calculateCounts ( inputFiles ) {
13+ return {
14+ lines : inputFiles . split ( "\n" ) . length - 1 ,
15+ words : inputFiles . split ( / \s + / ) . filter ( ( w ) => w !== "" ) . length ,
16+ bytes : inputFiles . length ,
17+ } ;
1818}
1919
20-
2120// * `wc -l sample-files/3.txt`
2221// * `wc -l sample-files/*`
2322async function countLines ( listOfFiles ) {
24- for ( const file of listOfFiles ) {
25- const content = await fs . readFile ( file , "utf-8" ) ;
23+ for ( const file of listOfFiles ) {
24+ const content = await fs . readFile ( file , "utf-8" ) ;
2625
27- // const linesNumbered = content.split('\n').length-1
28- const counts = countHelper ( content ) ;
29- console . log ( `${ counts . lines } ${ file } ` )
30- }
26+ // const linesNumbered = content.split('\n').length-1
27+ const counts = calculateCounts ( content ) ;
28+ console . log ( `${ counts . lines } ${ file } ` ) ;
29+ }
3130}
3231
3332// * `wc -w sample-files/3.txt`
3433async function countWords ( listOfFiles ) {
35- for ( const file of listOfFiles ) {
36- const content = await fs . readFile ( file , "utf-8" ) ;
37-
38- // const wordsCounted = content.split(" ").filter(word => word !== "").length;
39- // console.log(`${wordsCounted} ${file}`);
40- const counts = countHelper ( content ) ;
41- console . log ( `${ counts . words } ${ file } ` ) ;
42- }
43-
34+ for ( const file of listOfFiles ) {
35+ const content = await fs . readFile ( file , "utf-8" ) ;
36+
37+ // const wordsCounted = content.split(" ").filter(word => word !== "").length;
38+ // console.log(`${wordsCounted} ${file}`);
39+ const counts = calculateCounts ( content ) ;
40+ console . log ( `${ counts . words } ${ file } ` ) ;
41+ }
4442}
4543
4644// * `wc -c sample-files/3.txt`
4745async function countBytes ( listOfFiles ) {
48- for ( const file of listOfFiles ) {
49- const content = await fs . readFile ( file , "utf-8" ) ;
50- // const bytesCounted = content.length;
51- const counts = countHelper ( content ) ;
52- console . log ( `${ counts . bytes } ${ file } ` ) ;
53- }
46+ for ( const file of listOfFiles ) {
47+ const content = await fs . readFile ( file , "utf-8" ) ;
48+ // const bytesCounted = content.length;
49+ const counts = calculateCounts ( content ) ;
50+ console . log ( `${ counts . bytes } ${ file } ` ) ;
51+ }
5452}
5553
5654// * `wc sample-files/*`
5755async function countAll ( listOfFiles ) {
58- for ( const file of listOfFiles ) {
59- const content = await fs . readFile ( file , "utf-8" ) ;
60- const counts = countHelper ( content )
61-
62- console . log ( `${ counts . lines } ${ counts . words } ${ counts . bytes } ${ file } ` ) ;
63- }
56+ for ( const file of listOfFiles ) {
57+ const content = await fs . readFile ( file , "utf-8" ) ;
58+ const counts = calculateCounts ( content ) ;
59+ console . log ( `${ counts . lines } ${ counts . words } ${ counts . bytes } ${ file } ` ) ;
60+ }
6461}
6562
6663const argv = process . argv . slice ( 2 ) ;
67- const files = argv . filter ( arg => ! arg . startsWith ( '-' ) ) ;
64+ const files = argv . filter ( ( arg ) => ! arg . startsWith ( "-" ) ) ;
6865
69- if ( argv . includes ( '-l' ) ) {
70- await countLines ( files ) ;
71- } else if ( argv . includes ( '-w' ) ) {
72- await countWords ( files ) ;
73- } else if ( argv . includes ( '-c' ) ) {
74- await countBytes ( files ) ;
66+ if ( argv . includes ( "-l" ) ) {
67+ await countLines ( files ) ;
68+ } else if ( argv . includes ( "-w" ) ) {
69+ await countWords ( files ) ;
70+ } else if ( argv . includes ( "-c" ) ) {
71+ await countBytes ( files ) ;
7572} else {
76- await countAll ( files ) ;
77- }
73+ await countAll ( files ) ;
74+ }
0 commit comments