1
1
import type JsEnginePlugin from 'jsEngine/main' ;
2
2
import { StartupScriptsModal } from 'jsEngine/settings/StartupScriptModal' ;
3
3
import type { App } from 'obsidian' ;
4
- import { normalizePath , PluginSettingTab , Setting } from 'obsidian' ;
4
+ import { normalizePath , PluginSettingTab , Setting , TFile } from 'obsidian' ;
5
5
6
6
declare module 'obsidian' {
7
7
interface App {
@@ -27,9 +27,12 @@ export class JsEnginePluginSettingTab extends PluginSettingTab {
27
27
this . plugin = plugin ;
28
28
}
29
29
30
- private async listJSfilesInDirectory ( directory : string ) : Promise < string [ ] > {
31
- const { adapter } = this . app . vault ;
32
- return ( await adapter . list ( directory ) ) . files . filter ( file => file . endsWith ( '.js' ) ) ;
30
+ private async listJSfilesInDirectory ( directory : string ) : Promise < TFile [ ] > {
31
+ const { vault } = this . app ;
32
+ const { adapter } = vault ;
33
+ return ( await adapter . list ( directory ) ) . files
34
+ . map ( file => vault . getFileByPath ( file ) ! )
35
+ . filter ( file => file . extension == 'js' ) ;
33
36
}
34
37
35
38
display ( ) : void {
@@ -77,20 +80,18 @@ export class JsEnginePluginSettingTab extends PluginSettingTab {
77
80
78
81
void this . listJSfilesInDirectory ( settings . startupScriptsDirectory ) . then ( fileList =>
79
82
fileList . forEach ( file => {
80
- const fileName = file . split ( '/' ) . last ( ) ! ;
81
83
new Setting ( containerEl )
82
- . setName ( fileName )
83
- . setDesc ( `Apply JS snippet from "vault/${ file } "` )
84
+ . setName ( file . basename )
85
+ . setDesc ( `Apply JS snippet from "vault/${ file . path } "` )
84
86
. addToggle ( el => {
85
- el . setValue ( settings . enabledStartupScripts . includes ( fileName ) )
86
- . onChange ( async ( val : boolean ) => {
87
- if ( val ) {
88
- settings . enabledStartupScripts . push ( fileName ) ;
89
- } else {
90
- settings . enabledStartupScripts . remove ( fileName ) ;
91
- }
92
- await this . plugin . saveSettings ( ) ;
93
- } ) ;
87
+ el . setValue ( settings . enabledStartupScripts . includes ( file . basename ) ) . onChange ( async ( val : boolean ) => {
88
+ if ( val ) {
89
+ settings . enabledStartupScripts . push ( file . basename ) ;
90
+ } else {
91
+ settings . enabledStartupScripts . remove ( file . basename ) ;
92
+ }
93
+ await this . plugin . saveSettings ( ) ;
94
+ } ) ;
94
95
} ) ;
95
96
} ) ,
96
97
) ;
0 commit comments