99 metaEndTerm ,
1010 metaStartTerm ,
1111 NOTIFY ,
12- SCRIPT_EXTENSION
12+ SCRIPT_EXTENSION ,
13+ userScriptPath
1314} from './const.js' ;
1415import { matchesObject , sortByProperty , stringRange } from './utils/utils.js' ;
1516import { 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