@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 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&&(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"}}function t(e){return(0,node_util_1.styleText)("number"==typeof e?"yellow":"blueBright",`${e}`)}async function version(){console.info(t(`\n Treefolder aka "tfold"\n Version ${package_json_1.version}\n \n https://npmjs.com/@khatastroffik/treefolder\n\n ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”\n | |\n ╭━┳━╭━╭━╮╮\n ā”ƒā”ˆā”ˆā”ˆā”£ā–„ā•‹ā–„ā”«\n ā”ƒā”ˆā”ƒā”ˆā•°ā”ā•°ā”ā”ā”ā”ā”ā”ā•® "K11K"\n ā•°ā”³ā•Æā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆ ā—¢ā–ˆā—£ a very pragmatic dog\n ā”ƒā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā–ˆā–ˆā–ˆā–ˆ\n ā”ƒā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā”ˆā—„ā–ˆā—¤\n ā”ƒā”ˆā”ˆā”ˆā”ˆā•­ā”ā”³ā”ā”ā”ā”ā•Æ\n ┣━━━━━━┫\n | |\n └──────────── made by khatastroffik ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜\n `))}async function main(){await configure(),console.info(await buildTree(config.root,"",!0,!0)),config.verbose&&(console.info(t("\nCommand line arguments:")),console.info(cliArgs),console.info(t("\nTreefolder configuration:")),console.info(config,"\n"),console.info(t(`Scanned ${t(folderCount)} folders and ${t(fileCount)} files.`)),console.info(t(`Filtered out ${t(ignoredCount)} items (folders or files).`)))}main();
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
@@ -113,4 +113,4 @@ treefolder
113
113
 
114
114
  ### Other topics
115
115
 
116
- - https://github.com/absolute-version/commit-and-tag-version
116
+ - <https://github.com/absolute-version/commit-and-tag-version>
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "@khatastroffik/treefolder",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "devEngines": {
5
- "packageManager": {
6
- "name": "pnpm",
7
- "version": "10.28.2"
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",