aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/package.json
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 /client/package.json
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 'client/package.json')
-rw-r--r--client/package.json10
1 files changed, 8 insertions, 2 deletions
diff --git a/client/package.json b/client/package.json
index 149322192..9c311622b 100644
--- a/client/package.json
+++ b/client/package.json
@@ -14,7 +14,7 @@
14 }, 14 },
15 "scripts": { 15 "scripts": {
16 "lint": "npm run lint-ts && npm run lint-scss", 16 "lint": "npm run lint-ts && npm run lint-scss",
17 "lint-ts": "eslint --ext .ts src/standalone/**/*.ts && npm run ng lint", 17 "lint-ts": "eslint --cache --ext .ts src/standalone/**/*.ts && npm run ng lint",
18 "lint-scss": "stylelint 'src/**/*.scss'", 18 "lint-scss": "stylelint 'src/**/*.scss'",
19 "webpack": "webpack", 19 "webpack": "webpack",
20 "eslint": "eslint", 20 "eslint": "eslint",
@@ -24,6 +24,9 @@
24 "ngx-extractor": "ngx-extractor", 24 "ngx-extractor": "ngx-extractor",
25 "stylelint": "stylelint" 25 "stylelint": "stylelint"
26 }, 26 },
27 "workspaces": [
28 "../packages/*"
29 ],
27 "typings": "*.d.ts", 30 "typings": "*.d.ts",
28 "devDependencies": { 31 "devDependencies": {
29 "@angular-devkit/build-angular": "^16.0.2", 32 "@angular-devkit/build-angular": "^16.0.2",
@@ -57,6 +60,8 @@
57 "@peertube/maildev": "^1.2.0", 60 "@peertube/maildev": "^1.2.0",
58 "@peertube/p2p-media-loader-core": "^1.0.14", 61 "@peertube/p2p-media-loader-core": "^1.0.14",
59 "@peertube/p2p-media-loader-hlsjs": "^1.0.14", 62 "@peertube/p2p-media-loader-hlsjs": "^1.0.14",
63 "@peertube/peertube-core-utils": "*",
64 "@peertube/peertube-models": "*",
60 "@peertube/videojs-contextmenu": "^5.5.0", 65 "@peertube/videojs-contextmenu": "^5.5.0",
61 "@peertube/xliffmerge": "^2.0.3", 66 "@peertube/xliffmerge": "^2.0.3",
62 "@popperjs/core": "^2.11.5", 67 "@popperjs/core": "^2.11.5",
@@ -86,7 +91,7 @@
86 "buffer": "^6.0.3", 91 "buffer": "^6.0.3",
87 "chart.js": "^4.3.0", 92 "chart.js": "^4.3.0",
88 "chartjs-plugin-zoom": "~2.0.1", 93 "chartjs-plugin-zoom": "~2.0.1",
89 "chromedriver": "^113.0.0", 94 "chromedriver": "^115.0.1",
90 "core-js": "^3.22.8", 95 "core-js": "^3.22.8",
91 "css-loader": "^6.2.0", 96 "css-loader": "^6.2.0",
92 "debug": "^4.3.1", 97 "debug": "^4.3.1",
@@ -122,6 +127,7 @@
122 "stylelint": "^15.1.0", 127 "stylelint": "^15.1.0",
123 "stylelint-config-sass-guidelines": "^10.0.0", 128 "stylelint-config-sass-guidelines": "^10.0.0",
124 "ts-loader": "^9.3.0", 129 "ts-loader": "^9.3.0",
130 "ts-node": "^10.9.1",
125 "tslib": "^2.4.0", 131 "tslib": "^2.4.0",
126 "typescript": "~4.9.5", 132 "typescript": "~4.9.5",
127 "video.js": "^7.19.2", 133 "video.js": "^7.19.2",