wiki.ts (865B)
1 import { WikiText } from '@/lib/models/wiki_text' 2 import { GetServerSidePropsContext, NextApiRequest } from 'next' 3 import { NextRouter } from 'next/router' 4 import { unzip as decompressGzip } from 'node:zlib' 5 6 export const getSlugAndPath = ( 7 context: GetServerSidePropsContext | NextApiRequest | NextRouter, 8 ): [slug: string | null, path: string | null] => { 9 const { slug, path } = context.query 10 return [ 11 typeof slug === 'string' ? slug : null, 12 path != null && Array.isArray(path) ? path.join('/') : null 13 ] 14 } 15 16 export const getStringFromWikiText = async (wikiText: WikiText): Promise<string> => { 17 switch (wikiText.encoding) { 18 case 'gzip': 19 // TODO: implement gzipped wiki text 20 return 'TODO' 21 22 case 'utf-8': 23 return wikiText.content 24 25 default: 26 throw new Error(`Unknown wiki text encoding: ${wikiText.encoding}`) 27 } 28 }