/
githubmirror
/
tabby
Обзор
Документация
Войти
/
githubmirror
/
tabby
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v1.0.218
app/lib/pluginManager.ts
40 строк
1 KB
Eugene Pankov
wip
02 янв 2021, 00:23
Не верифицирован
02 янв 2021, 00:23
c8c00a2
Код
Авторство
О чём код?
import { promisify } from 'util' export class PluginManager { npm: any npmReady?: Promise<void> async ensureLoaded (): Promise<void> { if (!this.npmReady) { this.npmReady = new Promise(resolve => { const npm = require('npm') npm.load(err => { if (err) { console.error(err) return } npm.config.set('global', false) this.npm = npm resolve() }) }) } return this.npmReady } async install (path: string, name: string, version: string): Promise<void> { await this.ensureLoaded() this.npm.prefix = path return promisify(this.npm.commands.install)([`${name}@${version}`]) } async uninstall (path: string, name: string): Promise<void> { await this.ensureLoaded() this.npm.prefix = path return promisify(this.npm.commands.remove)([name]) } } export const pluginManager = new PluginManager()