inquirer-file-selector
Advanced tools
Comparing version
@@ -111,3 +111,3 @@ import * as _inquirer_type from '@inquirer/type'; | ||
*/ | ||
type?: 'file' | 'directory' | 'file+directory'; | ||
type?: SelectionType; | ||
/** | ||
@@ -160,6 +160,4 @@ * The maximum number of items to display in the list. | ||
}; | ||
/** | ||
* Internal types | ||
*/ | ||
type Status = 'idle' | 'done' | 'canceled'; | ||
type SelectionType = 'file' | 'directory' | 'file+directory'; | ||
@@ -166,0 +164,0 @@ declare const _default: _inquirer_type.Prompt<string, FileSelectorConfig>; |
@@ -1,6 +0,6 @@ | ||
import B from"node:path";import{createPrompt as N,isBackspaceKey as Q,isDownKey as q,isEnterKey as V,isSpaceKey as X,isUpKey as b,makeTheme as Y,useKeypress as Z,useMemo as T,usePagination as ee,usePrefix as te,useState as w}from"@inquirer/core";import c from"@inquirer/figures";import i from"chalk";import P from"node:fs";import x from"node:path";var R="\x1B[?25l";function U(e){return e.name==="escape"}function S(e){return e.endsWith(x.sep)?e:`${e}${x.sep}`}function J(e){return e.replace(/\x1B\[\d+m/g,"")}function j(e){return e.reduce((n,r)=>Math.max(n,J(r).length),0)}function M(e){return P.readdirSync(e).map(n=>{let r=x.join(e,n),o=P.statSync(r);return Object.assign(o,{name:n,path:r,isDisabled:!1})})}function k(e,n){return e.sort((r,o)=>r.isDisabled&&!o.isDisabled?1:!r.isDisabled&&o.isDisabled||r.isDirectory()&&!o.isDirectory()?-1:!r.isDirectory()&&o.isDirectory()?1:r.name.localeCompare(o.name)).filter(r=>n||!r.isDisabled)}var se={prefix:{idle:i.cyan("?"),done:i.green(c.tick),canceled:i.red(c.cross)},icon:{linePrefix:e=>e?`${c.lineUpRight}${c.line.repeat(2)} `:`${c.lineUpDownRight}${c.line.repeat(2)} `},style:{disabled:e=>i.dim(e),active:e=>i.cyan(e),cancelText:e=>i.red(e),emptyText:e=>i.red(e),directory:e=>i.yellow(e),file:e=>i.white(e),currentDir:e=>i.magenta(e),message:(e,n)=>i.bold(e),help:e=>i.white(e),key:e=>i.cyan(e)}},ue=N((e,n)=>{let{type:r="file",pageSize:o=10,loop:F=!1,showExcluded:O=!1,disabledLabel:_=" (not allowed)",allowCancel:v=!1,cancelText:A="Canceled.",emptyText:H="Directory is empty."}=e,[m,C]=w("idle"),s=Y(se,e.theme),h=te({status:m,theme:s}),[g,K]=w(B.resolve(process.cwd(),e.basePath||".")),a=T(()=>{let t=M(g);for(let l of t)l.isDisabled=e.filter?!e.filter(l):!1;return k(t,O)},[g]),d=T(()=>{let t=a.findIndex(p=>!p.isDisabled),l=a.findLastIndex(p=>!p.isDisabled);return t===-1?{first:0,last:0}:{first:t,last:l}},[a]),[y,D]=w(d.first),f=a[y];Z((t,l)=>{if(V(t)){if(f.isDisabled||r==="file"&&f.isDirectory()||r==="directory"&&!f.isDirectory())return;C("done"),n(f.path)}else if(X(t)&&f.isDirectory())K(f.path),D(d.first);else if(b(t)||q(t)){if(l.clearLine(0),F||b(t)&&y!==d.first||q(t)&&y!==d.last){let p=b(t)?-1:1,u=y;do u=(u+p+a.length)%a.length;while(a[u].isDisabled);D(u)}}else Q(t)?(K(B.resolve(g,"..")),D(d.first)):U(t)&&v&&(C("canceled"),n("canceled"))});let E=ee({items:a,active:y,renderItem({item:t,index:l,isActive:p}){let u=l===a.length-1,I=s.icon.linePrefix(u),L=t.isDirectory()?`${I}${S(t.name)}`:`${I}${t.name}`;if(t.isDisabled)return s.style.disabled(`${L}${_}`);let G=t.isDirectory()?s.style.directory:s.style.file;return(p?s.style.active:G)(L)},pageSize:o,loop:F}),$=s.style.message(e.message,m);if(m==="canceled")return`${h} ${$} ${s.style.cancelText(A)}`;if(m==="done")return`${h} ${$} ${s.style.answer(f.path)}`;let z=s.style.currentDir(S(g)),W=T(()=>{let t=[`${s.style.key(c.arrowUp+c.arrowDown)} navigate, ${s.style.key("<enter>")} select${v?`, ${s.style.key("<esc>")} cancel`:""}`,`${s.style.key("<space>")} open directory, ${s.style.key("<backspace>")} go back`],l=j(t);return`${c.lineBold.repeat(l)} | ||
import O from"node:path";import{createPrompt as N,isBackspaceKey as Q,isDownKey as _,isEnterKey as V,isSpaceKey as X,isUpKey as w,makeTheme as Y,useKeypress as Z,useMemo as F,usePagination as ee,usePrefix as te,useState as v}from"@inquirer/core";import c from"@inquirer/figures";import i from"chalk";import R from"node:fs";import b from"node:path";var U="\x1B[?25l";function j(e){return e.name==="escape"}function T(e){return e.endsWith(b.sep)?e:`${e}${b.sep}`}function J(e){return e.replace(/\x1B\[\d+m/g,"")}function M(e){return e.reduce((n,s)=>Math.max(n,J(s).length),0)}function k(e,n){let s=R.readdirSync(e);return(n==="directory"||n==="file+directory")&&s.unshift("."),s.map(l=>{let y=b.join(e,l),D=R.statSync(y);return Object.assign(D,{name:l,path:y,isDisabled:!1})})}function B(e,n){return e.sort((s,l)=>s.isDisabled&&!l.isDisabled?1:!s.isDisabled&&l.isDisabled||s.isDirectory()&&!l.isDirectory()?-1:!s.isDirectory()&&l.isDirectory()?1:s.name.localeCompare(l.name)).filter(s=>n||!s.isDisabled)}var se={prefix:{idle:i.cyan("?"),done:i.green(c.tick),canceled:i.red(c.cross)},icon:{linePrefix:e=>e?`${c.lineUpRight}${c.line.repeat(2)} `:`${c.lineUpDownRight}${c.line.repeat(2)} `},style:{disabled:e=>i.dim(e),active:e=>i.cyan(e),cancelText:e=>i.red(e),emptyText:e=>i.red(e),directory:e=>i.yellow(e),file:e=>i.white(e),currentDir:e=>i.magenta(e),message:(e,n)=>i.bold(e),help:e=>i.white(e),key:e=>i.cyan(e)}},de=N((e,n)=>{let{type:s="file",pageSize:l=10,loop:y=!1,showExcluded:D=!1,disabledLabel:A=" (not allowed)",allowCancel:C=!1,cancelText:H="Canceled.",emptyText:q="Directory is empty."}=e,[g,K]=v("idle"),r=Y(se,e.theme),$=te({status:g,theme:r}),[h,E]=v(O.resolve(process.cwd(),e.basePath||".")),a=F(()=>{let t=k(h,s);for(let o of t)o.isDisabled=e.filter?!e.filter(o):!1;return B(t,D)},[h]),u=F(()=>{let t=a.findIndex(p=>!p.isDisabled),o=a.findLastIndex(p=>!p.isDisabled);return t===-1?{first:0,last:0}:{first:t,last:o}},[a]),[m,x]=v(u.first),f=a[m];Z((t,o)=>{if(V(t)){if(f.isDisabled||s==="file"&&f.isDirectory()||s==="directory"&&!f.isDirectory())return;K("done"),n(f.path)}else if(X(t)&&f.isDirectory())E(f.path),x(u.first);else if(w(t)||_(t)){if(o.clearLine(0),y||w(t)&&m!==u.first||_(t)&&m!==u.last){let p=w(t)?-1:1,d=m;do d=(d+p+a.length)%a.length;while(a[d].isDisabled);x(d)}}else Q(t)?(E(O.resolve(h,"..")),x(u.first)):j(t)&&C&&(K("canceled"),n("canceled"))});let L=ee({items:a,active:m,renderItem({item:t,index:o,isActive:p}){let d=o===a.length-1,P=r.icon.linePrefix(d),I=t.isDirectory()?`${P}${T(t.name)}`:`${P}${t.name}`;if(t.isDisabled)return r.style.disabled(`${I}${A}`);let G=t.isDirectory()?r.style.directory:r.style.file;return(p?r.style.active:G)(I)},pageSize:l,loop:y}),S=r.style.message(e.message,g);if(g==="canceled")return`${$} ${S} ${r.style.cancelText(H)}`;if(g==="done")return`${$} ${S} ${r.style.answer(f.path)}`;let z=r.style.currentDir(T(h)),W=F(()=>{let t=[`${r.style.key(c.arrowUp+c.arrowDown)} navigate, ${r.style.key("<enter>")} select${C?`, ${r.style.key("<esc>")} cancel`:""}`,`${r.style.key("<space>")} open directory, ${r.style.key("<backspace>")} go back`],o=M(t);return`${c.lineBold.repeat(o)} | ||
${t.join(` | ||
`)}`},[]);return`${h} ${$} | ||
`)}`},[]);return`${$} ${S} | ||
${z} | ||
${E.length?E:s.style.emptyText(H)} | ||
${W}${R}`});export{ue as default}; | ||
${L.length?L:r.style.emptyText(q)} | ||
${W}${U}`});export{de as default}; |
@@ -5,3 +5,3 @@ { | ||
"description": "Inquerer file selector prompt.", | ||
"version": "0.6.0", | ||
"version": "0.6.1", | ||
"license": "MIT", | ||
@@ -11,6 +11,5 @@ "type": "module", | ||
"types": "./dist/index.d.ts", | ||
"files": [ | ||
"./dist" | ||
], | ||
"files": ["./dist"], | ||
"scripts": { | ||
"prepare": "husky", | ||
"lint": "biome lint", | ||
@@ -21,5 +20,8 @@ "lint:fix": "biome check --write", | ||
}, | ||
"lint-staged": { | ||
"*.{ts,json}": "biome check --write --no-errors-on-unmatched" | ||
}, | ||
"dependencies": { | ||
"@inquirer/core": "^10.0.1", | ||
"@inquirer/figures": "^1.0.7", | ||
"@inquirer/core": "^10.1.0", | ||
"@inquirer/figures": "^1.0.8", | ||
"chalk": "^5.3.0" | ||
@@ -29,5 +31,9 @@ }, | ||
"@biomejs/biome": "1.9.4", | ||
"@inquirer/select": "4.0.1", | ||
"@inquirer/type": "3.0.0", | ||
"@commitlint/cli": "19.6.0", | ||
"@commitlint/config-conventional": "19.6.0", | ||
"@inquirer/select": "4.0.2", | ||
"@inquirer/type": "3.0.1", | ||
"@tsconfig/node18": "18.2.4", | ||
"husky": "9.1.7", | ||
"lint-staged": "15.2.10", | ||
"tsup": "8.3.5", | ||
@@ -47,7 +53,3 @@ "typescript": "5.6.3" | ||
"homepage": "https://github.com/br14n-sol/inquirer-file-selector#readme", | ||
"keywords": [ | ||
"inquirer", | ||
"file", | ||
"selector" | ||
] | ||
"keywords": ["inquirer", "file", "selector"] | ||
} |
14828
1.74%10
66.67%178
-1.11%Updated
Updated