-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
56 lines (48 loc) · 1.32 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import alfy from 'alfy';
import {
findFilter,
findCommand,
isFileActionCaseSensitive,
getClipboardContent,
} from './src/utils.js';
import {processCopyPaste} from './src/process-copy-paste.js';
import {processFilename} from './src/process-filename.js';
import {processRename} from './src/process-rename.js';
const {inputWithoutFilter, foundFilter: filter} = findFilter(alfy.input);
const {inputWithoutCommand, foundCommand} = findCommand(inputWithoutFilter);
const input = (inputWithoutCommand || getClipboardContent())
.replaceAll('\t', '\n')
.split('\n')
.map(element => element.trim());
function process(input) {
if (foundCommand === 'rename') {
return processRename(input);
}
if (foundCommand === 'filename') {
return processFilename(input);
}
if (isFileActionCaseSensitive(input)) {
return [
{
title: 'Rename file with Slugify',
valid: false,
autocomplete: `!rename ${input}`,
},
{
title: 'Slugify File Name',
valid: false,
autocomplete: `!filename ${input}`,
},
];
}
return processCopyPaste(input);
}
function filterOutput(filter, output) {
const filterSplit = filter.split(' ');
for (const filter of filterSplit) {
output = alfy.matches(filter, output, 'match');
}
return output;
}
const output = process(input);
alfy.output(filter ? filterOutput(filter, output) : output);