Skip to content

Commit c73af9c

Browse files
committed
feat(userScript): add load of custom User Scripts
1 parent 2007373 commit c73af9c

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/const.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const __rootpath = path.resolve(__dirname, '..');
1212
// ─── Scripts ─────────────────────────────────────────────────────────────────────────
1313

1414
export const defaultScriptPath = path.join(__rootpath, 'dist', 'scripts/');
15+
export const userScriptPath = path.join(__rootpath, 'Scripts/');
1516

1617
// ─── Icon ────────────────────────────────────────────────────────────────────────────
1718

src/scriptManager.ts

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import {
99
metaEndTerm,
1010
metaStartTerm,
1111
NOTIFY,
12-
SCRIPT_EXTENSION
12+
SCRIPT_EXTENSION,
13+
userScriptPath
1314
} from './const.js';
1415
import { matchesObject, sortByProperty, stringRange } from './utils/utils.js';
1516
import { Clipboard } from './utils/clipboard.js';
@@ -27,7 +28,7 @@ export class ScriptManager {
2728

2829
init() {
2930
this.loadDefaultScripts();
30-
//TODO: Manage users scripts
31+
this.loadUserScripts();
3132
}
3233

3334
loadDefaultScripts() {
@@ -36,11 +37,21 @@ export class ScriptManager {
3637
.filter(file => file.match(SCRIPT_EXTENSION));
3738

3839
scriptsFilenames.forEach(filename => {
39-
this.loadScript(path.join(defaultScriptPath, filename));
40+
this.loadScript(path.join(defaultScriptPath, filename), true);
4041
});
4142
}
4243

43-
loadScript(path: string) {
44+
loadUserScripts() {
45+
let scriptsFilenames = fs
46+
.readdirSync(userScriptPath)
47+
.filter(file => file.match(SCRIPT_EXTENSION));
48+
49+
scriptsFilenames.forEach(filename => {
50+
this.loadScript(path.join(userScriptPath, filename), false);
51+
});
52+
}
53+
54+
loadScript(path: string, builtIn: boolean) {
4455
try {
4556
let script: string = fs.readFileSync(path).toString();
4657

@@ -50,7 +61,7 @@ export class ScriptManager {
5061
let scriptObject = new Script({
5162
script: script,
5263
parameters: jsonMeta,
53-
builtIn: true
64+
builtIn: builtIn
5465
});
5566

5667
this.scripts.push(scriptObject);

0 commit comments

Comments
 (0)