1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-04 02:09:37 +02:00

WIP plugins: add storage manager

This commit is contained in:
Chocobozzz 2019-07-12 14:06:33 +02:00 committed by Chocobozzz
parent b5f919ac8e
commit b2195fafc2
4 changed files with 58 additions and 2 deletions

View file

@ -13,6 +13,7 @@ import { outputFile } from 'fs-extra'
import { RegisterSettingOptions } from '../../../shared/models/plugins/register-setting.model'
import { RegisterHookOptions } from '../../../shared/models/plugins/register-hook.model'
import { PluginSettingsManager } from '../../../shared/models/plugins/plugin-settings-manager.model'
import { PluginStorageManager } from '../../../shared/models/plugins/plugin-storage-manager.model'
export interface RegisteredPlugin {
npmName: string
@ -307,13 +308,24 @@ export class PluginManager {
setSetting: (name: string, value: string) => PluginModel.setSetting(plugin.name, plugin.type, name, value)
}
const storageManager: PluginStorageManager = {
getData: (key: string) => PluginModel.getData(plugin.name, plugin.type, key),
storeData: (key: string, data: any) => PluginModel.storeData(plugin.name, plugin.type, key, data)
}
const library: PluginLibrary = require(join(pluginPath, packageJSON.library))
if (!isLibraryCodeValid(library)) {
throw new Error('Library code is not valid (miss register or unregister function)')
}
library.register({ registerHook, registerSetting, settingsManager })
library.register({
registerHook,
registerSetting,
settingsManager,
storageManager
})
logger.info('Add plugin %s CSS to global file.', npmName)