Iniciativa Cidadã Independente · Transparência Parlamentar
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)
}