浏览代码

improve(plugin): perf console table

charlie 3 年之前
父节点
当前提交
1665058386
共有 2 个文件被更改,包括 37 次插入39 次删除
  1. 36 38
      libs/src/LSPlugin.core.ts
  2. 1 1
      src/electron/electron/utils.cljs

+ 36 - 38
libs/src/LSPlugin.core.ts

@@ -437,9 +437,11 @@ class ExistedImportedPluginPackageError extends Error {
 /**
  * Host plugin for local
  */
-class PluginLocal extends EventEmitter<
-  'loaded' | 'unloaded' | 'beforeunload' | 'error' | string
-> {
+class PluginLocal extends EventEmitter<'loaded'
+  | 'unloaded'
+  | 'beforeunload'
+  | 'error'
+  | string> {
   private _sdk: Partial<PluginLocalSDKMetadata> = {}
   private _disposes: Array<() => Promise<any>> = []
   private _id: PluginLocalIdentity
@@ -573,7 +575,7 @@ class PluginLocal extends EventEmitter<
     const localRoot = (this._localRoot = safetyPathNormalize(url))
     const logseq: Partial<LSPluginPkgConfig> = pkg.logseq || {}
 
-    // Pick legal attrs
+      // Pick legal attrs
     ;[
       'name',
       'author',
@@ -681,10 +683,10 @@ class PluginLocal extends EventEmitter<
     <meta charset="UTF-8">
     <title>logseq plugin entry</title>
     ${
-      IS_DEV
-        ? `<script src="${sdkPathRoot}/lsplugin.user.js?v=${tag}"></script>`
-        : `<script src="https://cdn.jsdelivr.net/npm/@logseq/libs/dist/lsplugin.user.min.js?v=${tag}"></script>`
-    }
+        IS_DEV
+          ? `<script src="${sdkPathRoot}/lsplugin.user.js?v=${tag}"></script>`
+          : `<script src="https://cdn.jsdelivr.net/npm/@logseq/libs/dist/lsplugin.user.min.js?v=${tag}"></script>`
+      }
     
   </head>
   <body>
@@ -1119,8 +1121,7 @@ class PluginLocal extends EventEmitter<
  * Host plugin core
  */
 class LSPluginCore
-  extends EventEmitter<
-    | 'beforeenable'
+  extends EventEmitter<'beforeenable'
     | 'enabled'
     | 'beforedisable'
     | 'disabled'
@@ -1133,10 +1134,8 @@ class LSPluginCore
     | 'settings-changed'
     | 'unlink-plugin'
     | 'beforereload'
-    | 'reloaded'
-  >
-  implements ILSPluginThemeManager
-{
+    | 'reloaded'>
+  implements ILSPluginThemeManager {
   private _isRegistering = false
   private _readyIndicator?: DeferredActor
   private readonly _hostMountedActor: DeferredActor = deferred()
@@ -1150,10 +1149,8 @@ class LSPluginCore
     externals: [],
   }
   private readonly _registeredThemes = new Map<PluginLocalIdentity, Theme[]>()
-  private readonly _registeredPlugins = new Map<
-    PluginLocalIdentity,
-    PluginLocal
-  >()
+  private readonly _registeredPlugins = new Map<PluginLocalIdentity,
+    PluginLocal>()
   private _currentTheme: {
     pid: PluginLocalIdentity
     opt: Theme | LegacyTheme
@@ -1229,21 +1226,22 @@ class LSPluginCore
       return
     }
 
-    const perfTable = new Map<
-      string,
-      { o: PluginLocal; s: number; e: number }
-    >()
+    const perfTable = new Map<string,
+      { o: PluginLocal; s: number; e: number }>()
     const debugPerfInfo = () => {
-      const data = Array.from(perfTable.values()).reduce((ac, it) => {
-        const { options, status, disabled } = it.o
-
-        ac[it.o.id] = {
-          name: options.name,
-          entry: options.entry,
-          status: status,
-          enabled:
-            typeof disabled === 'boolean' ? (!disabled ? '🟢' : '⚫️') : '🔴',
-          perf: !it.e ? it.o.loadErr : `${(it.e - it.s).toFixed(2)}ms`,
+      const data: any = Array.from(perfTable.values()).reduce((ac, it) => {
+        const { id, options, status, disabled } = it.o
+
+        if (disabled !== true &&
+          (options.entry || (!options.name && !options.entry))) {
+          ac[id] = {
+            name: options.name,
+            entry: options.entry,
+            status: status,
+            enabled:
+              typeof disabled === 'boolean' ? (!disabled ? '🟢' : '⚫️') : '🔴',
+            perf: !it.e ? it.o.loadErr : `${(it.e - it.s).toFixed(2)}ms`,
+          }
         }
 
         return ac
@@ -1554,12 +1552,12 @@ class LSPluginCore
       await this.saveUserPreferences(
         theme.mode
           ? {
-              themes: {
-                ...this._userPreferences.themes,
-                mode: theme.mode,
-                [theme.mode]: theme,
-              },
-            }
+            themes: {
+              ...this._userPreferences.themes,
+              mode: theme.mode,
+              [theme.mode]: theme,
+            },
+          }
           : { theme: theme }
       )
     }

+ 1 - 1
src/electron/electron/utils.cljs

@@ -46,7 +46,7 @@
         dirs (js->clj (fs/readdirSync plugins-root #js{"withFileTypes" true}))
         dirs (->> dirs
                   (filter #(.isDirectory %))
-                  (filter #(not (string/starts-with? (.-name %) "_")))
+                  (filter (fn [f] (not (some #(string/starts-with? (.-name f) %) ["_" "."]))))
                   (map #(path/join plugins-root (.-name %))))]
     dirs))