improve(plugin): perf console table

This commit is contained in:
charlie
2022-07-31 23:16:51 +08:00
committed by Andelf
parent 3e7c20fd80
commit 1665058386
2 changed files with 36 additions and 38 deletions

View File

@@ -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
const data: any = Array.from(perfTable.values()).reduce((ac, it) => {
const { id, 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`,
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 }
)
}

View File

@@ -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))