aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/models/plugins/server/managers
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2023-07-31 14:34:36 +0200
committerChocobozzz <me@florianbigard.com>2023-08-11 15:02:33 +0200
commit3a4992633ee62d5edfbb484d9c6bcb3cf158489d (patch)
treee4510b39bdac9c318fdb4b47018d08f15368b8f0 /shared/models/plugins/server/managers
parent04d1da5621d25d59bd5fa1543b725c497bf5d9a8 (diff)
downloadPeerTube-3a4992633ee62d5edfbb484d9c6bcb3cf158489d.tar.gz
PeerTube-3a4992633ee62d5edfbb484d9c6bcb3cf158489d.tar.zst
PeerTube-3a4992633ee62d5edfbb484d9c6bcb3cf158489d.zip
Migrate server to ESM
Sorry for the very big commit that may lead to git log issues and merge conflicts, but it's a major step forward: * Server can be faster at startup because imports() are async and we can easily lazy import big modules * Angular doesn't seem to support ES import (with .js extension), so we had to correctly organize peertube into a monorepo: * Use yarn workspace feature * Use typescript reference projects for dependencies * Shared projects have been moved into "packages", each one is now a node module (with a dedicated package.json/tsconfig.json) * server/tools have been moved into apps/ and is now a dedicated app bundled and published on NPM so users don't have to build peertube cli tools manually * server/tests have been moved into packages/ so we don't compile them every time we want to run the server * Use isolatedModule option: * Had to move from const enum to const (https://www.typescriptlang.org/docs/handbook/enums.html#objects-vs-enums) * Had to explictely specify "type" imports when used in decorators * Prefer tsx (that uses esbuild under the hood) instead of ts-node to load typescript files (tests with mocha or scripts): * To reduce test complexity as esbuild doesn't support decorator metadata, we only test server files that do not import server models * We still build tests files into js files for a faster CI * Remove unmaintained peertube CLI import script * Removed some barrels to speed up execution (less imports)
Diffstat (limited to 'shared/models/plugins/server/managers')
-rw-r--r--shared/models/plugins/server/managers/index.ts9
-rw-r--r--shared/models/plugins/server/managers/plugin-playlist-privacy-manager.model.ts12
-rw-r--r--shared/models/plugins/server/managers/plugin-settings-manager.model.ts17
-rw-r--r--shared/models/plugins/server/managers/plugin-storage-manager.model.ts5
-rw-r--r--shared/models/plugins/server/managers/plugin-transcoding-manager.model.ts13
-rw-r--r--shared/models/plugins/server/managers/plugin-video-category-manager.model.ts13
-rw-r--r--shared/models/plugins/server/managers/plugin-video-language-manager.model.ts13
-rw-r--r--shared/models/plugins/server/managers/plugin-video-licence-manager.model.ts13
-rw-r--r--shared/models/plugins/server/managers/plugin-video-privacy-manager.model.ts13
9 files changed, 0 insertions, 108 deletions
diff --git a/shared/models/plugins/server/managers/index.ts b/shared/models/plugins/server/managers/index.ts
deleted file mode 100644
index 49365a854..000000000
--- a/shared/models/plugins/server/managers/index.ts
+++ /dev/null
@@ -1,9 +0,0 @@
1
2export * from './plugin-playlist-privacy-manager.model'
3export * from './plugin-settings-manager.model'
4export * from './plugin-storage-manager.model'
5export * from './plugin-transcoding-manager.model'
6export * from './plugin-video-category-manager.model'
7export * from './plugin-video-language-manager.model'
8export * from './plugin-video-licence-manager.model'
9export * from './plugin-video-privacy-manager.model'
diff --git a/shared/models/plugins/server/managers/plugin-playlist-privacy-manager.model.ts b/shared/models/plugins/server/managers/plugin-playlist-privacy-manager.model.ts
deleted file mode 100644
index 35247c1e3..000000000
--- a/shared/models/plugins/server/managers/plugin-playlist-privacy-manager.model.ts
+++ /dev/null
@@ -1,12 +0,0 @@
1import { VideoPlaylistPrivacy } from '../../../videos/playlist/video-playlist-privacy.model'
2import { ConstantManager } from '../plugin-constant-manager.model'
3
4export interface PluginPlaylistPrivacyManager extends ConstantManager<VideoPlaylistPrivacy> {
5 /**
6 * PUBLIC = 1,
7 * UNLISTED = 2,
8 * PRIVATE = 3
9 * @deprecated use `deleteConstant` instead
10 */
11 deletePlaylistPrivacy: (privacyKey: VideoPlaylistPrivacy) => boolean
12}
diff --git a/shared/models/plugins/server/managers/plugin-settings-manager.model.ts b/shared/models/plugins/server/managers/plugin-settings-manager.model.ts
deleted file mode 100644
index b628718dd..000000000
--- a/shared/models/plugins/server/managers/plugin-settings-manager.model.ts
+++ /dev/null
@@ -1,17 +0,0 @@
1export type SettingValue = string | boolean
2
3export interface SettingEntries {
4 [settingName: string]: SettingValue
5}
6
7export type SettingsChangeCallback = (settings: SettingEntries) => Promise<any>
8
9export interface PluginSettingsManager {
10 getSetting: (name: string) => Promise<SettingValue>
11
12 getSettings: (names: string[]) => Promise<SettingEntries>
13
14 setSetting: (name: string, value: SettingValue) => Promise<any>
15
16 onSettingsChange: (cb: SettingsChangeCallback) => void
17}
diff --git a/shared/models/plugins/server/managers/plugin-storage-manager.model.ts b/shared/models/plugins/server/managers/plugin-storage-manager.model.ts
deleted file mode 100644
index 51567044a..000000000
--- a/shared/models/plugins/server/managers/plugin-storage-manager.model.ts
+++ /dev/null
@@ -1,5 +0,0 @@
1export interface PluginStorageManager {
2 getData: (key: string) => Promise<string>
3
4 storeData: (key: string, data: any) => Promise<any>
5}
diff --git a/shared/models/plugins/server/managers/plugin-transcoding-manager.model.ts b/shared/models/plugins/server/managers/plugin-transcoding-manager.model.ts
deleted file mode 100644
index b6fb46ba0..000000000
--- a/shared/models/plugins/server/managers/plugin-transcoding-manager.model.ts
+++ /dev/null
@@ -1,13 +0,0 @@
1import { EncoderOptionsBuilder } from '../../../videos/transcoding'
2
3export interface PluginTranscodingManager {
4 addLiveProfile (encoder: string, profile: string, builder: EncoderOptionsBuilder): boolean
5
6 addVODProfile (encoder: string, profile: string, builder: EncoderOptionsBuilder): boolean
7
8 addLiveEncoderPriority (streamType: 'audio' | 'video', encoder: string, priority: number): void
9
10 addVODEncoderPriority (streamType: 'audio' | 'video', encoder: string, priority: number): void
11
12 removeAllProfilesAndEncoderPriorities(): void
13}
diff --git a/shared/models/plugins/server/managers/plugin-video-category-manager.model.ts b/shared/models/plugins/server/managers/plugin-video-category-manager.model.ts
deleted file mode 100644
index cf3d828fe..000000000
--- a/shared/models/plugins/server/managers/plugin-video-category-manager.model.ts
+++ /dev/null
@@ -1,13 +0,0 @@
1import { ConstantManager } from '../plugin-constant-manager.model'
2
3export interface PluginVideoCategoryManager extends ConstantManager<number> {
4 /**
5 * @deprecated use `addConstant` instead
6 */
7 addCategory: (categoryKey: number, categoryLabel: string) => boolean
8
9 /**
10 * @deprecated use `deleteConstant` instead
11 */
12 deleteCategory: (categoryKey: number) => boolean
13}
diff --git a/shared/models/plugins/server/managers/plugin-video-language-manager.model.ts b/shared/models/plugins/server/managers/plugin-video-language-manager.model.ts
deleted file mode 100644
index 69fc8e503..000000000
--- a/shared/models/plugins/server/managers/plugin-video-language-manager.model.ts
+++ /dev/null
@@ -1,13 +0,0 @@
1import { ConstantManager } from '../plugin-constant-manager.model'
2
3export interface PluginVideoLanguageManager extends ConstantManager<string> {
4 /**
5 * @deprecated use `addConstant` instead
6 */
7 addLanguage: (languageKey: string, languageLabel: string) => boolean
8
9 /**
10 * @deprecated use `deleteConstant` instead
11 */
12 deleteLanguage: (languageKey: string) => boolean
13}
diff --git a/shared/models/plugins/server/managers/plugin-video-licence-manager.model.ts b/shared/models/plugins/server/managers/plugin-video-licence-manager.model.ts
deleted file mode 100644
index 21b422270..000000000
--- a/shared/models/plugins/server/managers/plugin-video-licence-manager.model.ts
+++ /dev/null
@@ -1,13 +0,0 @@
1import { ConstantManager } from '../plugin-constant-manager.model'
2
3export interface PluginVideoLicenceManager extends ConstantManager<number> {
4 /**
5 * @deprecated use `addConstant` instead
6 */
7 addLicence: (licenceKey: number, licenceLabel: string) => boolean
8
9 /**
10 * @deprecated use `deleteConstant` instead
11 */
12 deleteLicence: (licenceKey: number) => boolean
13}
diff --git a/shared/models/plugins/server/managers/plugin-video-privacy-manager.model.ts b/shared/models/plugins/server/managers/plugin-video-privacy-manager.model.ts
deleted file mode 100644
index a237037db..000000000
--- a/shared/models/plugins/server/managers/plugin-video-privacy-manager.model.ts
+++ /dev/null
@@ -1,13 +0,0 @@
1import { VideoPrivacy } from '../../../videos/video-privacy.enum'
2import { ConstantManager } from '../plugin-constant-manager.model'
3
4export interface PluginVideoPrivacyManager extends ConstantManager<VideoPrivacy> {
5 /**
6 * PUBLIC = 1,
7 * UNLISTED = 2,
8 * PRIVATE = 3
9 * INTERNAL = 4
10 * @deprecated use `deleteConstant` instead
11 */
12 deletePrivacy: (privacyKey: VideoPrivacy) => boolean
13}