more electron/web separation

This commit is contained in:
Eugene Pankov
2021-06-19 01:36:25 +02:00
parent fa31ac65ab
commit fad7858f3f
50 changed files with 568 additions and 448 deletions

View File

@@ -4,8 +4,8 @@ import { debounceTime, distinctUntilChanged, first, tap, flatMap, map } from 'rx
import semverGt from 'semver/functions/gt'
import { Component, Input } from '@angular/core'
import { ConfigService, PlatformService } from 'terminus-core'
import { PluginInfo, PluginManagerService } from '../services/pluginManager.service'
import { ConfigService, PlatformService, PluginInfo } from 'terminus-core'
import { PluginManagerService } from '../services/pluginManager.service'
enum BusyState { Installing = 'Installing', Uninstalling = 'Uninstalling' }

View File

@@ -1,8 +1,8 @@
import axios from 'axios'
import { Observable, from } from 'rxjs'
import { map } from 'rxjs/operators'
import { Injectable } from '@angular/core'
import { Logger, LogService, PlatformService } from 'terminus-core'
import { Injectable, Inject } from '@angular/core'
import { Logger, LogService, PlatformService, BOOTSTRAP_DATA, BootstrapData, PluginInfo } from 'terminus-core'
const NAME_PREFIX = 'terminus-'
const KEYWORD = 'terminus-plugin'
@@ -12,30 +12,20 @@ const BLACKLIST = [
'terminus-shell-selector', // superseded by profiles
]
export interface PluginInfo {
name: string
description: string
packageName: string
isBuiltin: boolean
isOfficial: boolean
version: string
homepage?: string
author: string
path?: string
}
@Injectable({ providedIn: 'root' })
export class PluginManagerService {
logger: Logger
builtinPluginsPath: string = (window as any).builtinPluginsPath
userPluginsPath: string = (window as any).userPluginsPath
installedPlugins: PluginInfo[] = (window as any).installedPlugins
userPluginsPath: string
installedPlugins: PluginInfo[]
private constructor (
log: LogService,
private platform: PlatformService,
@Inject(BOOTSTRAP_DATA) bootstrapData: BootstrapData,
) {
this.logger = log.create('pluginManager')
this.installedPlugins = bootstrapData.installedPlugins
this.userPluginsPath = bootstrapData.userPluginsPath
}
listAvailable (query?: string): Observable<PluginInfo[]> {