mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-04 18:29:27 +02:00
chore(refactor): remove shared folder dependencies to the server
Many files from the `shared` folder were importing files from the `server` folder. When attempting to use Typescript project references to describe dependencies, it highlighted a circular dependency beetween `shared` <-> `server`. The Typescript project forbid such usages. Using project references greatly improve performance by rebuilding only the updated project and not all source files. > see https://www.typescriptlang.org/docs/handbook/project-references.html
This commit is contained in:
parent
854f533c12
commit
06aad80165
78 changed files with 583 additions and 485 deletions
34
shared/core-utils/path.ts
Normal file
34
shared/core-utils/path.ts
Normal file
|
@ -0,0 +1,34 @@
|
|||
import { basename, extname, isAbsolute, join, resolve } from 'path'
|
||||
|
||||
let rootPath: string
|
||||
|
||||
function root () {
|
||||
if (rootPath) return rootPath
|
||||
|
||||
rootPath = __dirname
|
||||
|
||||
if (basename(rootPath) === 'core-utils') rootPath = resolve(rootPath, '..')
|
||||
if (basename(rootPath) === 'shared') rootPath = resolve(rootPath, '..')
|
||||
if (basename(rootPath) === 'server') rootPath = resolve(rootPath, '..')
|
||||
if (basename(rootPath) === 'dist') rootPath = resolve(rootPath, '..')
|
||||
|
||||
return rootPath
|
||||
}
|
||||
|
||||
function buildPath (path: string) {
|
||||
if (isAbsolute(path)) return path
|
||||
|
||||
return join(root(), path)
|
||||
}
|
||||
|
||||
function getLowercaseExtension (filename: string) {
|
||||
const ext = extname(filename) || ''
|
||||
|
||||
return ext.toLowerCase()
|
||||
}
|
||||
|
||||
export {
|
||||
root,
|
||||
buildPath,
|
||||
getLowercaseExtension
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue