@khatastroffik/treefolder 1.0.0 ā 1.1.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.
- package/dist/index.js +1 -1
- package/docs/readme.md +1 -1
- package/package.json +10 -5
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,o,n,t){void 0===t&&(t=n);var r=Object.getOwnPropertyDescriptor(o,n);r&&!("get"in r?!o.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return o[n]}}),Object.defineProperty(e,t,r)}:function(e,o,n,t){void 0===t&&(t=n),e[t]=o[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}:function(e,o){e.default=o}),__importStar=this&&this.__importStar||function(){var e=function(o){return e=Object.getOwnPropertyNames||function(e){var o=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(o[o.length]=n);return o},e(o)};return function(o){if(o&&o.__esModule)return o;var n={};if(null!=o)for(var t=e(o),r=0;r<t.length;r++)"default"!==t[r]&&__createBinding(n,o,t[r]);return __setModuleDefault(n,o),n}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const node_fs_1=__importDefault(require("node:fs")),node_path_1=__importDefault(require("node:path")),node_process_1=require("node:process"),node_util_1=__importStar(require("node:util")),package_json_1=require("../package.json"),readdirPromise=node_util_1.default.promisify(node_fs_1.default.readdir),space=" ";var Style;!function(e){e.none="none",e.wireframe="wireframe",e.black="black",e.colored="colored"}(Style||(Style={}));const symbolStyles={none:{closed:"",open:"",file:""},wireframe:{closed:"š",open:"š",file:"š"},black:{closed:"šæ",open:"šæ",file:"š"},colored:{closed:"š",open:"š",file:"š"}},parseArgsOptionsConfig={style:{type:"string",default:"none",short:"s"},verbose:{type:"boolean",default:!1},unsorted:{type:"boolean",default:!1,short:"u"},version:{type:"boolean",default:!1,short:"v"}},config={style:Style.none,symbols:symbolStyles.none,root:".",ignores:["node_modules","dist","build",".git",".husky\\_","logs",".angular","coverage"],verbose:!1,unsorted:!1};let folderCount=0,fileCount=0,ignoredCount=0,cliArgs={};function compareFolderContentItems(e,o){return e.isDirectory()?o.isFile()?-1:e.name.localeCompare(o.name):o.isDirectory()?1:e.name.localeCompare(o.name)}function isIgnored(e,o){const n=config.ignores.includes(node_path_1.default.join(e,o));return n&&ignoredCount++,n}async function getFolderContent(e){const o=(await readdirPromise(e,{withFileTypes:!0})).filter(o=>!isIgnored(e,o.name));return config.unsorted?o:o.sort(compareFolderContentItems)}async function buildTree(e,o,n,t){const r=await getFolderContent(e),i=r.length<1?config.symbols.closed:config.symbols.open;let s=`${o+(n?"":t?`āā${i} `:`āā${i} `)}${n&&config.symbols.open?`${i} ${node_path_1.default.basename(e)}`:node_path_1.default.basename(e)}\n`;const l=n?"":t?" ":"ā ",a=r.length-1;for(let n=0;n<r.length;n++){const t=r[n];if(t.isDirectory()&&(s+=await buildTree(node_path_1.default.join(e,t.name),o+l,!1,n===a)),t.isFile()){fileCount++;s+=`${o+l+(n===a?`āā${config.symbols.file} `:`āā${config.symbols.file} `)+t.name}\n`}}return folderCount++,s}async function configure(){let e;try{e=(0,node_util_1.parseArgs)({options:parseArgsOptionsConfig,allowPositionals:!0,strict:!0})}catch(e){const o=e;console.error(`[${(0,node_util_1.styleText)("red",o.name)}]: ${o.message}`),(0,node_process_1.exit)(1)}const{values:o,positionals:n}=e;o.version
|
|
2
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,o,n,t){void 0===t&&(t=n);var r=Object.getOwnPropertyDescriptor(o,n);r&&!("get"in r?!o.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return o[n]}}),Object.defineProperty(e,t,r)}:function(e,o,n,t){void 0===t&&(t=n),e[t]=o[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}:function(e,o){e.default=o}),__importStar=this&&this.__importStar||function(){var e=function(o){return e=Object.getOwnPropertyNames||function(e){var o=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(o[o.length]=n);return o},e(o)};return function(o){if(o&&o.__esModule)return o;var n={};if(null!=o)for(var t=e(o),r=0;r<t.length;r++)"default"!==t[r]&&__createBinding(n,o,t[r]);return __setModuleDefault(n,o),n}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const node_fs_1=__importDefault(require("node:fs")),node_path_1=__importDefault(require("node:path")),node_process_1=require("node:process"),node_util_1=__importStar(require("node:util")),package_json_1=require("../package.json"),readdirPromise=node_util_1.default.promisify(node_fs_1.default.readdir),space=" ";var Style;!function(e){e.none="none",e.wireframe="wireframe",e.black="black",e.colored="colored"}(Style||(Style={}));const symbolStyles={none:{closed:"",open:"",file:""},wireframe:{closed:"š",open:"š",file:"š"},black:{closed:"šæ",open:"šæ",file:"š"},colored:{closed:"š",open:"š",file:"š"}},parseArgsOptionsConfig={style:{type:"string",default:"none",short:"s"},verbose:{type:"boolean",default:!1},unsorted:{type:"boolean",default:!1,short:"u"},version:{type:"boolean",default:!1,short:"v"}},config={style:Style.none,symbols:symbolStyles.none,root:".",ignores:["node_modules","dist","build",".git",".husky\\_","logs",".angular","coverage"],verbose:!1,unsorted:!1};let folderCount=0,fileCount=0,ignoredCount=0,cliArgs={};function colorText(e){return(0,node_util_1.styleText)("number"==typeof e?"yellow":"blueBright",`${e}`)}async function getLatestVersion(){const e=await fetch("https://registry.npmjs.org/@khatastroffik/treefolder");await new Promise(e=>setTimeout(e,100));return(await e.json())["dist-tags"].latest}function compareFolderContentItems(e,o){return e.isDirectory()?o.isFile()?-1:e.name.localeCompare(o.name):o.isDirectory()?1:e.name.localeCompare(o.name)}function isIgnored(e,o){const n=config.ignores.includes(node_path_1.default.join(e,o));return n&&ignoredCount++,n}async function getFolderContent(e){const o=(await readdirPromise(e,{withFileTypes:!0})).filter(o=>!isIgnored(e,o.name));return config.unsorted?o:o.sort(compareFolderContentItems)}async function buildTree(e,o,n,t){const r=await getFolderContent(e),i=r.length<1?config.symbols.closed:config.symbols.open;let s=`${o+(n?"":t?`āā${i} `:`āā${i} `)}${n&&config.symbols.open?`${i} ${node_path_1.default.basename(e)}`:node_path_1.default.basename(e)}\n`;const l=n?"":t?" ":"ā ",a=r.length-1;for(let n=0;n<r.length;n++){const t=r[n];if(t.isDirectory()&&(s+=await buildTree(node_path_1.default.join(e,t.name),o+l,!1,n===a)),t.isFile()){fileCount++;s+=`${o+l+(n===a?`āā${config.symbols.file} `:`āā${config.symbols.file} `)+t.name}\n`}}return folderCount++,s}async function configure(){let e;try{e=(0,node_util_1.parseArgs)({options:parseArgsOptionsConfig,allowPositionals:!0,strict:!0})}catch(e){const o=e;return console.error(`[${(0,node_util_1.styleText)("red",o.name)}]: ${o.message}`),(0,node_process_1.exit)(1)}const{values:o,positionals:n}=e;if(o.version)return await version(),(0,node_process_1.exit)(0);config.style=Style[o.style]??config.style,config.symbols=symbolStyles[config.style],config.root=node_path_1.default.resolve(n.length>0?n[0]:config.root),config.ignores=config.ignores.map(e=>node_path_1.default.join(config.root,e)),config.unsorted=Boolean(o.unsorted),config.verbose=Boolean(o.verbose),cliArgs={...o,root:n[0]??"n/a"}}async function version(){let e;const o=await getLatestVersion();o&&o!==package_json_1.version&&(e=(0,node_util_1.styleText)("yellow",`\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n| A new version of Treefolder is available: |\n| current: ${package_json_1.version} -> latest: ${o} |\n| |\n| Install the latest version with: |\n| "npm update -g @khatastroffik/treefolder@latest" |\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n`)),console.info(colorText(`\n Treefolder aka "tfold"\n Version ${package_json_1.version}\n \n https://npmjs.com/@khatastroffik/treefolder\n${e??'\n āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n | |\n āāā³āāāāāā®ā®\n āāāāā£āāāā«\n āāāāā°āā°āāāāāāā® "K11K"\n ā°ā³āÆāāāāāāāā ā¢ā⣠a very pragmatic dog\n āāāāāāāāāāāāāāā\n āāāāāāāāāāāā„āā¤\n āāāāāāāā³āāāāāÆ\n ā£āāāāāāā«\n | |\n āāāāāāāāāāāāā made by khatastroffik āāāāāāāāāāā\n '}`))}async function verbose(){config.verbose&&(console.info(colorText("\nCommand line arguments:")),console.info(cliArgs),console.info(colorText("\nTreefolder configuration:")),console.info(config,"\n"),console.info(colorText(`Scanned ${colorText(folderCount)} folders and ${colorText(fileCount)} files.`)),console.info(colorText(`Filtered out ${colorText(ignoredCount)} items (folders or files).`)))}async function main(){await configure();const e=await buildTree(config.root,"",!0,!0);console.info(e),await verbose()}main();
|
package/docs/readme.md
CHANGED
package/package.json
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@khatastroffik/treefolder",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"devEngines": {
|
|
5
|
-
"packageManager":
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
"packageManager": [
|
|
6
|
+
{
|
|
7
|
+
"name": "pnpm",
|
|
8
|
+
"version": "10.28.2"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "npm"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
9
14
|
},
|
|
10
15
|
"description": "A node.js CLI utility generating a tree representation (treeview) of a folder structure including its contained files and subfolders.",
|
|
11
16
|
"author": "khatastroffik",
|