@@ -150,14 +150,13 @@ export default class SynchronizeManager extends Manager {
150150 } ;
151151 freeFn . push ( ( ) => ScriptManager . hook . removeListener ( "upsert" , upsertFn ) ) ;
152152 ScriptManager . hook . addListener ( "upsert" , upsertFn ) ;
153- if ( config . syncDelete ) {
154- // 监听脚本删除事件
155- const deleteFn = ( script : Script ) => {
156- this . deleteCloudScript ( fs , script ) ;
157- } ;
158- ScriptManager . hook . addListener ( "delete" , deleteFn ) ;
159- freeFn . push ( ( ) => ScriptManager . hook . removeListener ( "delete" , deleteFn ) ) ;
160- }
153+
154+ // 监听脚本删除事件
155+ const deleteFn = ( script : Script ) => {
156+ this . deleteCloudScript ( fs , script , config . syncDelete ) ;
157+ } ;
158+ ScriptManager . hook . addListener ( "delete" , deleteFn ) ;
159+ freeFn . push ( ( ) => ScriptManager . hook . removeListener ( "delete" , deleteFn ) ) ;
161160
162161 // 先设置固定一小时同步一次吧
163162 const ts = setInterval ( async ( ) => {
@@ -309,7 +308,7 @@ export default class SynchronizeManager extends Manager {
309308 }
310309
311310 // 删除云端脚本数据
312- async deleteCloudScript ( fs : FileSystem , script : Script ) {
311+ async deleteCloudScript ( fs : FileSystem , script : Script , syncDelete : boolean ) {
313312 const filename = `${ script . uuid } .user.js` ;
314313 const logger = this . logger . with ( {
315314 scriptId : script . id ,
@@ -318,17 +317,23 @@ export default class SynchronizeManager extends Manager {
318317 } ) ;
319318 try {
320319 await fs . delete ( filename ) ;
321- // 留下一个.meta.json删除标记
322- const meta = await fs . create ( `${ script . uuid } .meta.json` ) ;
323- await meta . write (
324- JSON . stringify ( < SyncMeta > {
325- uuid : script . uuid ,
326- origin : script . origin ,
327- downloadUrl : script . downloadUrl ,
328- checkUpdateUrl : script . checkUpdateUrl ,
329- isDeleted : true ,
330- } )
331- ) ;
320+ if ( syncDelete ) {
321+ // 留下一个.meta.json删除标记
322+ const meta = await fs . create ( `${ script . uuid } .meta.json` ) ;
323+ await meta . write (
324+ JSON . stringify ( < SyncMeta > {
325+ uuid : script . uuid ,
326+ origin : script . origin ,
327+ downloadUrl : script . downloadUrl ,
328+ checkUpdateUrl : script . checkUpdateUrl ,
329+ isDeleted : true ,
330+ } )
331+ ) ;
332+ } else {
333+ // 直接删除所有相关文件
334+ await fs . delete ( filename ) ;
335+ await fs . delete ( `${ script . uuid } .meta.json` ) ;
336+ }
332337 logger . info ( "delete success" ) ;
333338 } catch ( e ) {
334339 logger . error ( "delete file error" , Logger . E ( e ) ) ;
0 commit comments