3a4992633e
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) |
||
---|---|---|
.. | ||
ap-json | ||
live | ||
peertube-plugin-test | ||
peertube-plugin-test-broken | ||
peertube-plugin-test-external-auth-one | ||
peertube-plugin-test-external-auth-three | ||
peertube-plugin-test-external-auth-two | ||
peertube-plugin-test-filter-translations | ||
peertube-plugin-test-five | ||
peertube-plugin-test-four | ||
peertube-plugin-test-id-pass-auth-one | ||
peertube-plugin-test-id-pass-auth-three | ||
peertube-plugin-test-id-pass-auth-two | ||
peertube-plugin-test-native | ||
peertube-plugin-test-podcast-custom-tags | ||
peertube-plugin-test-six | ||
peertube-plugin-test-transcoding-one | ||
peertube-plugin-test-transcoding-two | ||
peertube-plugin-test-unloading | ||
peertube-plugin-test-video-constants | ||
peertube-plugin-test-websocket | ||
60fps_720p_small.mp4 | ||
avatar-big.png | ||
avatar-resized-48x48.gif | ||
avatar-resized-48x48.png | ||
avatar-resized-120x120.gif | ||
avatar-resized-120x120.png | ||
avatar.gif | ||
avatar.png | ||
avatar2-resized-48x48.png | ||
avatar2-resized-120x120.png | ||
avatar2.png | ||
banner-resized.jpg | ||
banner.jpg | ||
custom-preview-big.png | ||
custom-preview.jpg | ||
custom-thumbnail-big.jpg | ||
custom-thumbnail.jpg | ||
custom-thumbnail.png | ||
exif.jpg | ||
exif.png | ||
low-bitrate.mp4 | ||
rtmps.cert | ||
rtmps.key | ||
sample.ogg | ||
subtitle-bad.txt | ||
subtitle-good.srt | ||
subtitle-good1.vtt | ||
subtitle-good2.vtt | ||
thumbnail-playlist.jpg | ||
video-720p.torrent | ||
video_import_preview.jpg | ||
video_import_preview_yt_dlp.jpg | ||
video_import_thumbnail.jpg | ||
video_import_thumbnail_yt_dlp.jpg | ||
video_short.avi | ||
video_short.mkv | ||
video_short.mp4 | ||
video_short.mp4.jpg | ||
video_short.ogv | ||
video_short.ogv.jpg | ||
video_short.webm | ||
video_short.webm.jpg | ||
video_short1-preview.webm.jpg | ||
video_short1.webm | ||
video_short1.webm.jpg | ||
video_short2.webm | ||
video_short2.webm.jpg | ||
video_short3.webm | ||
video_short3.webm.jpg | ||
video_short_0p.mp4 | ||
video_short_4k.mp4 | ||
video_short_144p.m3u8 | ||
video_short_144p.mp4 | ||
video_short_240p.m3u8 | ||
video_short_240p.mp4 | ||
video_short_360p.m3u8 | ||
video_short_360p.mp4 | ||
video_short_480.webm | ||
video_short_480p.m3u8 | ||
video_short_480p.mp4 | ||
video_short_720p.m3u8 | ||
video_short_720p.mp4 | ||
video_short_fake.webm | ||
video_short_mp3_256k.mp4 | ||
video_short_no_audio.mp4 | ||
video_very_long_10p.mp4 | ||
video_very_short_240p.mp4 |