]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/core-utils/path.ts
chore(refactor): remove shared folder dependencies to the server
[github/Chocobozzz/PeerTube.git] / shared / core-utils / path.ts
CommitLineData
06aad801 1import { basename, extname, isAbsolute, join, resolve } from 'path'
2
3let rootPath: string
4
5function root () {
6 if (rootPath) return rootPath
7
8 rootPath = __dirname
9
10 if (basename(rootPath) === 'core-utils') rootPath = resolve(rootPath, '..')
11 if (basename(rootPath) === 'shared') rootPath = resolve(rootPath, '..')
12 if (basename(rootPath) === 'server') rootPath = resolve(rootPath, '..')
13 if (basename(rootPath) === 'dist') rootPath = resolve(rootPath, '..')
14
15 return rootPath
16}
17
18function buildPath (path: string) {
19 if (isAbsolute(path)) return path
20
21 return join(root(), path)
22}
23
24function getLowercaseExtension (filename: string) {
25 const ext = extname(filename) || ''
26
27 return ext.toLowerCase()
28}
29
30export {
31 root,
32 buildPath,
33 getLowercaseExtension
34}