[Launcher] Add helper for fzf
This commit is contained in:
		
							
								
								
									
										32
									
								
								config/ags/launcher/helpers/fzf/dist/fzf.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								config/ags/launcher/helpers/fzf/dist/fzf.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| "use strict"; | ||||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const fast_fuzzy_1 = require("fast-fuzzy"); | ||||
| const fs_1 = __importDefault(require("fs")); | ||||
| // Get list source from args | ||||
| // ARGS: type source | ||||
| // Then we read query from stdin to not restart indexing & the like for each keystroke | ||||
| let data = []; | ||||
| if (process.argv[2] === 'fs') { | ||||
|     if (process.argv[3].includes('.json')) { | ||||
|         data = JSON.parse('' + fs_1.default.readFileSync(process.argv[3])); | ||||
|     } | ||||
|     else if (process.argv[3].includes('.txt')) { | ||||
|         data = ('' + fs_1.default.readFileSync(process.argv[3])).split(','); | ||||
|     } | ||||
|     else if (fs_1.default.statSync(process.argv[3]).isDirectory()) { | ||||
|         data = fs_1.default.readdirSync(process.argv[3]); | ||||
|     } | ||||
| } | ||||
| else if (process.argv[2] === 'arg') { | ||||
|     data = process.argv[3].split(','); | ||||
| } | ||||
| else { | ||||
|     throw new Error('Invalid argument at position 1. Can be either fs or arg, not ' + process.argv[2]); | ||||
| } | ||||
| process.stdin.on("data", (query) => { | ||||
|     // On stdin submit (which the other client will have to support) process data | ||||
|     console.log((0, fast_fuzzy_1.search)(query.toString(), data)); | ||||
| }); | ||||
							
								
								
									
										18
									
								
								config/ags/launcher/helpers/fzf/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								config/ags/launcher/helpers/fzf/package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| { | ||||
|   "name": "fzf", | ||||
|   "version": "1.0.0", | ||||
|   "description": "", | ||||
|   "license": "ISC", | ||||
|   "author": "", | ||||
|   "type": "commonjs", | ||||
|   "main": "index.js", | ||||
|   "scripts": { | ||||
|     "test": "echo \"Error: no test specified\" && exit 1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/node": "^22.14.0" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "fast-fuzzy": "^1.12.0" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										27
									
								
								config/ags/launcher/helpers/fzf/src/fzf.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								config/ags/launcher/helpers/fzf/src/fzf.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| import { search } from 'fast-fuzzy'; | ||||
| import fs from 'fs'; | ||||
|  | ||||
| // Get list source from args | ||||
| // ARGS: type source | ||||
| // Then we read query from stdin to not restart indexing & the like for each keystroke | ||||
|  | ||||
| let data: string[] = []; | ||||
| if ( process.argv[ 2 ] === 'fs' ) { | ||||
|     if ( process.argv[ 3 ].includes( '.json' ) ) { | ||||
|         data = JSON.parse( '' + fs.readFileSync( process.argv[ 3 ] ) ); | ||||
|     } else if ( process.argv[ 3 ].includes( '.txt' ) ) { | ||||
|         data = ( '' + fs.readFileSync( process.argv[ 3 ] ) ).split( ',' ); | ||||
|     } else if ( fs.statSync( process.argv[ 3 ] ).isDirectory() ) { | ||||
|         data = fs.readdirSync( process.argv[ 3 ] ); | ||||
|     } | ||||
| } else if ( process.argv[ 2 ] === 'arg' ) { | ||||
|     data = process.argv[ 3 ].split( ',' ); | ||||
| } else { | ||||
|     throw new Error( 'Invalid argument at position 1. Can be either fs or arg, not ' + process.argv[ 2 ] ); | ||||
| } | ||||
|  | ||||
| process.stdin.on( "data", ( query ) => { | ||||
|     // On stdin submit (which the other client will have to support) process data | ||||
|      | ||||
|     console.log( search( query.toString(), data ) ); | ||||
| } ); | ||||
							
								
								
									
										13
									
								
								config/ags/launcher/helpers/fzf/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								config/ags/launcher/helpers/fzf/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| { | ||||
|   "compilerOptions": { | ||||
|     "outDir": "./dist", | ||||
|     "allowJs": true, | ||||
|     "target": "ES6", | ||||
|     "skipLibCheck": true, | ||||
|     "allowSyntheticDefaultImports": true, | ||||
|     "types": ["node"], | ||||
|     "module": "NodeNext", | ||||
|     "moduleResolution": "NodeNext" | ||||
|   }, | ||||
|   "include": [ "./src/**/*" ], | ||||
| } | ||||
| @@ -15,7 +15,9 @@ const fzfApplication = ( query: string ) => { | ||||
|     return apps.fuzzy_query( query ); | ||||
| } | ||||
|  | ||||
| const fzfCmd = ( query: string ) => {} | ||||
| const fzfCmd = ( query: string ) => { | ||||
|  | ||||
| } | ||||
|  | ||||
| export default { | ||||
|     fzfApplication | ||||
|   | ||||
		Reference in New Issue
	
	Block a user