mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2026-09-03 20:53:09 -05: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:
@@ -0,0 +1,14 @@
|
||||
import { BinaryToTextEncoding, createHash } from 'crypto'
|
||||
|
||||
function sha256 (str: string | Buffer, encoding: BinaryToTextEncoding = 'hex') {
|
||||
return createHash('sha256').update(str).digest(encoding)
|
||||
}
|
||||
|
||||
function sha1 (str: string | Buffer, encoding: BinaryToTextEncoding = 'hex') {
|
||||
return createHash('sha1').update(str).digest(encoding)
|
||||
}
|
||||
|
||||
export {
|
||||
sha256,
|
||||
sha1
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
export * from './abuse'
|
||||
export * from './common'
|
||||
export * from './i18n'
|
||||
export * from './path'
|
||||
export * from './plugins'
|
||||
export * from './renderer'
|
||||
export * from './users'
|
||||
export * from './utils'
|
||||
export * from './videos'
|
||||
export * from './uuid'
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
import short, { uuid } from 'short-uuid'
|
||||
|
||||
const translator = short()
|
||||
|
||||
function buildUUID () {
|
||||
return uuid()
|
||||
}
|
||||
|
||||
function uuidToShort (uuid: string) {
|
||||
if (!uuid) return uuid
|
||||
|
||||
return translator.fromUUID(uuid)
|
||||
}
|
||||
|
||||
function shortToUUID (shortUUID: string) {
|
||||
if (!shortUUID) return shortUUID
|
||||
|
||||
return translator.toUUID(shortUUID)
|
||||
}
|
||||
|
||||
function isShortUUID (value: string) {
|
||||
if (!value) return false
|
||||
|
||||
return value.length === translator.maxLength
|
||||
}
|
||||
|
||||
export {
|
||||
buildUUID,
|
||||
uuidToShort,
|
||||
shortToUUID,
|
||||
isShortUUID
|
||||
}
|
||||
Reference in New Issue
Block a user