]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/core-utils/common/path.ts
Stop using tsconfig register
[github/Chocobozzz/PeerTube.git] / shared / core-utils / common / 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
f8360396
C
10 if (basename(rootPath) === 'tools') rootPath = resolve(rootPath, '..')
11 if (basename(rootPath) === 'scripts') rootPath = resolve(rootPath, '..')
c55e3d72 12 if (basename(rootPath) === 'common') rootPath = resolve(rootPath, '..')
06aad801 13 if (basename(rootPath) === 'core-utils') rootPath = resolve(rootPath, '..')
14 if (basename(rootPath) === 'shared') rootPath = resolve(rootPath, '..')
15 if (basename(rootPath) === 'server') rootPath = resolve(rootPath, '..')
16 if (basename(rootPath) === 'dist') rootPath = resolve(rootPath, '..')
17
18 return rootPath
19}
20
21function buildPath (path: string) {
22 if (isAbsolute(path)) return path
23
24 return join(root(), path)
25}
26
27function getLowercaseExtension (filename: string) {
28 const ext = extname(filename) || ''
29
30 return ext.toLowerCase()
31}
32
c55e3d72
C
33function buildAbsoluteFixturePath (path: string, customCIPath = false) {
34 if (isAbsolute(path)) return path
35
36 if (customCIPath && process.env.GITHUB_WORKSPACE) {
37 return join(process.env.GITHUB_WORKSPACE, 'fixtures', path)
38 }
39
40 return join(root(), 'server', 'tests', 'fixtures', path)
41}
42
06aad801 43export {
44 root,
45 buildPath,
c55e3d72 46 buildAbsoluteFixturePath,
06aad801 47 getLowercaseExtension
48}