From 8b03e2ce1a2098261de2f729f660b1ae2a320b65 Mon Sep 17 00:00:00 2001 From: lutangar Date: Tue, 9 Nov 2021 13:49:08 +0100 Subject: feat(types): create peertube-types package Create dedicated Typescript "types" configuration file for each "projects". Create a types folder which includes every useful ts definition: - client - server - shared Add tooling to create a proper package, extract dependencies, etc... Add CI Github task. refactor(types): publish types package in release script --- support/doc/plugins/guide.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'support/doc/plugins') diff --git a/support/doc/plugins/guide.md b/support/doc/plugins/guide.md index 4a0d318a7..5c96d1b03 100644 --- a/support/doc/plugins/guide.md +++ b/support/doc/plugins/guide.md @@ -883,6 +883,39 @@ Now you can register hooks or settings, write CSS and add static directories to **Caution:** It's up to you to check the code you write will be compatible with the PeerTube NodeJS version, and will be supported by web browsers. If you want to write modern JavaScript, please use a transpiler like [Babel](https://babeljs.io/). +If you want to use __Typescript__ see section below. + +### Typescript + +You can add __PeerTube__ types as dev dependencies: +``` +npm install --dev @peertube/peertube-types +``` + +This package exposes *server* definition files by default: +```ts +import { RegisterServerOptions } from '@peertube/peertube-types' + +export async function register ({ registerHook }: RegisterServerOptions) { + registerHook({ + target: 'action:application.listening', + handler: () => displayHelloWorld() + }) +} +``` + +But it also exposes client types and various models used in __PeerTube__: +```ts +import { RegisterClientOptions } from '@peertube/peertube-types/client' + +export function register ({ registerHook, peertubeHelpers }: RegisterClientOptions) { + registerHook({ + target: 'action:application.init', + handler: () => onApplicationInit(peertubeHelpers) + }) +} +``` +> Other types are accessible from the shared path `@peertube/peertube-types/shared`. ### Add translations -- cgit v1.2.3