@@ -5,52 +5,21 @@ import {
55 type ApiItem ,
66 type ApiTypeAlias ,
77 type ApiFunction ,
8- ApiItemKind
8+ ApiItemKind ,
9+ ApiModel
910} from '@microsoft/api-extractor-model'
1011import { notFound } from 'next/navigation'
1112import { Class } from '~/components/documentation-item/class'
1213import { Interface } from '~/components/documentation-item/interface'
1314import { TypeAlias } from '~/components/documentation-item/type-alias'
1415import { Enum } from '~/components/documentation-item/enum'
1516import { Function } from '~/components/documentation-item/function'
16- import { getMember } from '~/utils/api-extractor'
17-
18- // function resolveMemberSearchParams(packageName: string, member?: ApiItem) {
19- // const params = new URLSearchParams({
20- // pkg: packageName,
21- // kind: member?.kind ?? '',
22- // name: member?.displayName ?? ''
23- // })
24-
25- // switch (member?.kind) {
26- // case ApiItemKind.Interface:
27- // case ApiItemKind.Class: {
28- // const typedMember = member as ApiItemContainerMixin
29-
30- // const properties = typedMember.members.filter(member =>
31- // [ApiItemKind.Property, ApiItemKind.PropertySignature].includes(member.kind)
32- // ) as (ApiProperty | ApiPropertySignature)[]
33- // const methods = typedMember.members.filter(member =>
34- // [ApiItemKind.Method, ApiItemKind.Method].includes(member.kind)
35- // ) as (ApiMethod | ApiMethodSignature)[]
36-
37- // params.append('methods', methods.length.toString())
38- // params.append('props', properties.length.toString())
39- // break
40- // }
41-
42- // case ApiItemKind.Enum: {
43- // const typedMember = member as ApiEnum
44- // params.append('members', typedMember.members.length.toString())
45- // break
46- // }
47-
48- // default:
49- // break
50- // }
51-
52- // return params
53- // }
17+ import {
18+ addPackageToModel ,
19+ fetchDocumentationJsonDataFromSlug ,
20+ getMember
21+ } from '~/utils/api-extractor'
22+ import { fetchVersions , resolveItemUri } from '~/reusable-function'
5423
5524function Member ( { member } : { readonly member ?: ApiItem } ) {
5625 if ( ! member ?. kind ) {
@@ -75,6 +44,23 @@ function Member({ member }: { readonly member?: ApiItem }) {
7544 }
7645}
7746
47+ export async function generateStaticParams ( ) {
48+ const allVersionOfPackage = await fetchVersions ( )
49+ const allStaticParams = await Promise . all (
50+ allVersionOfPackage . flatMap ( async version => {
51+ const documentationData = await fetchDocumentationJsonDataFromSlug ( version . version )
52+ const model = new ApiModel ( )
53+ addPackageToModel ( model , documentationData )
54+ const pkg = model . tryGetPackageByName ( `@wapijs/wapi.js` )
55+ return pkg ?. members [ 0 ] . members . map ( item => ( {
56+ item : resolveItemUri ( item ) ,
57+ version : version . version
58+ } ) )
59+ } )
60+ )
61+ return allStaticParams
62+ }
63+
7864export default async function Page ( { params } : { params : { version : string ; item : string } } ) {
7965 const member = await getMember ( {
8066 branchOrVersion : params . version ,
0 commit comments