TS31 linhas784 bytes
apps/web/src/lib/public-source.ts
SHA-256
e336e8afec51d777ad328a6506f4343fa974d50b42ffc037e9b19ac4bf5d1c40
Somente leiturafonte-acf635076da2
import publication from '@/generated/public-source.json'
import { encodeSourceSegment } from '@/lib/source-path'
export interface PublicSourceFile {
path: string
content: string
size: number
sha256: string
}
export interface PublicSourcePublication {
version: string
publishedAt: string
archiveUrl: string
archiveSha256: string
files: PublicSourceFile[]
}
export const sourcePublication = publication as PublicSourcePublication
export function sourceFileHref(filePath: string): string {
const encodedPath = filePath.split('/').map(encodeSourceSegment).join('/')
return `/codigo/${encodedPath}/`
}
export function findSourceFile(
filePath: string,
): PublicSourceFile | undefined {
return sourcePublication.files.find((file) => file.path === filePath)
}