You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
920 B
TypeScript
38 lines
920 B
TypeScript
import { root } from '@peertube/peertube-node-utils'
|
|||
import { readdir, stat } from 'fs/promises'
|
|||
import { join } from 'path'
|
|||
|
|||
async function run () {
|
|||
const result = {
|
|||
app: await buildResult(join(root(), 'client', 'dist', 'en-US')),
|
|||
embed: await buildResult(join(root(), 'client', 'dist', 'standalone', 'videos'))
|
|||
}
|
|||
|
|||
console.log(JSON.stringify(result))
|
|||
}
|
|||
|
|||
run()
|
|||
.catch(err => console.error(err))
|
|||
|
|||
async function buildResult (path: string, root = path) {
|
|||
const distFiles = await readdir(path)
|
|||
|
|||
let files: { name: string, size: number }[] = []
|
|||
|
|||
for (const file of distFiles) {
|
|||
const filePath = join(path, file)
|
|||
|
|||
const statsResult = await stat(filePath)
|
|||
if (statsResult.isDirectory()) {
|
|||
files = files.concat(await buildResult(filePath, root))
|
|||
}
|
|||
|
|||
files.push({
|
|||
name: filePath.replace(new RegExp(`^${root}/`), ''),
|
|||
size: statsResult.size
|
|||
})
|
|||
}
|
|||
|
|||
return files
|
|||
}
|