aboutsummaryrefslogtreecommitdiffhomepage
path: root/support
diff options
context:
space:
mode:
authorlutangar <johan.dufour@gmail.com>2021-11-09 13:49:08 +0100
committerChocobozzz <chocobozzz@cpy.re>2021-12-16 10:08:43 +0100
commit8b03e2ce1a2098261de2f729f660b1ae2a320b65 (patch)
treeca4770cf86c9c54814dbb62bfc95ef38661646b2 /support
parent06aad80165d09a8863ab8103149a8ff518b10641 (diff)
downloadPeerTube-8b03e2ce1a2098261de2f729f660b1ae2a320b65.tar.gz
PeerTube-8b03e2ce1a2098261de2f729f660b1ae2a320b65.tar.zst
PeerTube-8b03e2ce1a2098261de2f729f660b1ae2a320b65.zip
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
Diffstat (limited to 'support')
-rw-r--r--support/doc/development/lib.md13
-rw-r--r--support/doc/plugins/guide.md33
2 files changed, 46 insertions, 0 deletions
diff --git a/support/doc/development/lib.md b/support/doc/development/lib.md
index 6b0372150..9c67a39dd 100644
--- a/support/doc/development/lib.md
+++ b/support/doc/development/lib.md
@@ -8,3 +8,16 @@
8$ cd client/src/standalone/player/ 8$ cd client/src/standalone/player/
9$ npm run build 9$ npm run build
10``` 10```
11
12## @peertube/peertube-types
13
14Typescript definition files generation is controlled by the various `tsconfig.types.json` files, see:
15```
16yarn tsc -b --verbose tsconfig.types.json
17```
18
19But the complete types package is generated via:
20```
21yarn generate-types-package
22```
23> See [scripts/generate-types-package.ts](scripts/generate-types-package.ts) for details.
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
883**Caution:** It's up to you to check the code you write will be compatible with the PeerTube NodeJS version, 883**Caution:** It's up to you to check the code you write will be compatible with the PeerTube NodeJS version,
884and will be supported by web browsers. 884and will be supported by web browsers.
885If you want to write modern JavaScript, please use a transpiler like [Babel](https://babeljs.io/). 885If you want to write modern JavaScript, please use a transpiler like [Babel](https://babeljs.io/).
886If you want to use __Typescript__ see section below.
887
888### Typescript
889
890You can add __PeerTube__ types as dev dependencies:
891```
892npm install --dev @peertube/peertube-types
893```
894
895This package exposes *server* definition files by default:
896```ts
897import { RegisterServerOptions } from '@peertube/peertube-types'
898
899export async function register ({ registerHook }: RegisterServerOptions) {
900 registerHook({
901 target: 'action:application.listening',
902 handler: () => displayHelloWorld()
903 })
904}
905```
906
907But it also exposes client types and various models used in __PeerTube__:
908```ts
909import { RegisterClientOptions } from '@peertube/peertube-types/client'
910
911export function register ({ registerHook, peertubeHelpers }: RegisterClientOptions) {
912 registerHook({
913 target: 'action:application.init',
914 handler: () => onApplicationInit(peertubeHelpers)
915 })
916}
917```
918> Other types are accessible from the shared path `@peertube/peertube-types/shared`.
886 919
887### Add translations 920### Add translations
888 921