mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2024-11-28 11:34:01 -06:00
Add client hook/register typings
This commit is contained in:
parent
9ae88819c2
commit
bfa1a32b34
7
.github/CONTRIBUTING.md
vendored
7
.github/CONTRIBUTING.md
vendored
@ -7,8 +7,9 @@ Interested in contributing? Awesome!
|
||||
* [Translate](#translate)
|
||||
* [Give your feedback](#give-your-feedback)
|
||||
* [Write documentation](#write-documentation)
|
||||
* [Develop](#develop)
|
||||
* [Improve the website](#improve-the-website)
|
||||
* [Develop](#develop)
|
||||
* [Write a plugin or a theme](#plugins--themes)
|
||||
|
||||
## Translate
|
||||
|
||||
@ -199,3 +200,7 @@ $ npm run mocha -- --exit --require ts-node/register/type-check --bail server/te
|
||||
|
||||
Instance configurations are in `config/test-{1,2,3,4,5,6}.yaml`.
|
||||
Note that only instance 2 has transcoding enabled.
|
||||
|
||||
## Plugins & Themes
|
||||
|
||||
See the dedicated documentation: https://docs.joinpeertube.org/#/contribute-plugins
|
||||
|
@ -3,6 +3,7 @@ import { Router } from '@angular/router'
|
||||
import { ServerConfigPlugin } from '@shared/models'
|
||||
import { ServerService } from '@app/core/server/server.service'
|
||||
import { ClientScript } from '@shared/models/plugins/plugin-package-json.model'
|
||||
import { ClientScript as ClientScriptModule } from '../../../types/client-script.model'
|
||||
import { environment } from '../../../environments/environment'
|
||||
import { ReplaySubject } from 'rxjs'
|
||||
import { first, shareReplay } from 'rxjs/operators'
|
||||
@ -186,7 +187,7 @@ export class PluginService implements ClientHook {
|
||||
console.log('Loading script %s of plugin %s.', clientScript.script, plugin.name)
|
||||
|
||||
return import(/* webpackIgnore: true */ clientScript.script)
|
||||
.then(script => script.register({ registerHook, peertubeHelpers }))
|
||||
.then((script: ClientScriptModule) => script.register({ registerHook, peertubeHelpers }))
|
||||
.then(() => this.sortHooksByPriority())
|
||||
}
|
||||
|
||||
|
7
client/src/types/client-script.model.ts
Normal file
7
client/src/types/client-script.model.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import { RegisterClientOptions } from './register-client-option.model'
|
||||
|
||||
export interface ClientScript {
|
||||
register: (options: RegisterClientOptions) => Promise<any>
|
||||
|
||||
unregister: () => Promise<any>
|
||||
}
|
9
client/src/types/register-client-option.model.ts
Normal file
9
client/src/types/register-client-option.model.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import { RegisterClientHookOptions } from '@shared/models/plugins/register-client-hook.model'
|
||||
|
||||
export type RegisterClientOptions = {
|
||||
registerHook: (options: RegisterClientHookOptions) => void
|
||||
|
||||
peertubeHelpers: {
|
||||
getBaseStaticRoute: () => string
|
||||
}
|
||||
}
|
@ -262,6 +262,11 @@ Every time you want to publish another version of your plugin/theme, just update
|
||||
and republish it on NPM. Remember that the PeerTube index will take into account your new plugin/theme version after ~24 hours.
|
||||
|
||||
|
||||
## Plugin & Theme hooks/helpers API
|
||||
|
||||
See the dedicated documentation: https://docs.joinpeertube.org/#/api-plugins
|
||||
|
||||
|
||||
## Tips
|
||||
|
||||
### Compatibility with PeerTube
|
||||
|
Loading…
Reference in New Issue
Block a user