@@ -24,6 +24,16 @@ function stripMarkdown(markdown: string): string {
2424 . replace ( / ( \n \s * ) { 2 , } / g, "\n\n" )
2525 . replace ( / ^ \s + | \s + $ / g, "" ) ;
2626}
27+
28+
29+ export function normalizeServiceSlug ( service : string ) : string {
30+ return service
31+ . toLowerCase ( )
32+ . replace ( / [ \( \) ] / g, "" )
33+ . replace ( / - - + / g, "-" )
34+ . replace ( / ^ - + | - + $ / g, "" ) ;
35+ }
36+
2737export function getData (
2838 providerSlug : string ,
2939 serviceSlug ?: string | null
@@ -38,6 +48,7 @@ export function getData(
3848 return processApiData ( targetKey , apiList [ targetKey ] ) ;
3949 }
4050
51+
4152 for ( const key in apiList ) {
4253 if (
4354 apiList . hasOwnProperty ( key ) &&
@@ -47,6 +58,23 @@ export function getData(
4758 }
4859 }
4960
61+
62+ if ( serviceSlug ) {
63+ for ( const key in apiList ) {
64+ if ( apiList . hasOwnProperty ( key ) ) {
65+ const [ keyProvider , keyService ] = key . split ( ":" ) ;
66+ if (
67+ keyProvider &&
68+ keyService &&
69+ keyProvider . toLowerCase ( ) === providerSlug . toLowerCase ( ) &&
70+ normalizeServiceSlug ( keyService ) === serviceSlug . toLowerCase ( )
71+ ) {
72+ return processApiData ( key , apiList [ key ] ) ;
73+ }
74+ }
75+ }
76+ }
77+
5078 console . warn (
5179 `No API found for provider: ${ providerSlug } , service: ${ serviceSlug } `
5280 ) ;
@@ -133,7 +161,8 @@ export async function generateStaticParams() {
133161
134162 if ( service ) {
135163 const providerSlug = provider . toLowerCase ( ) ;
136- const serviceSlug = service . toLowerCase ( ) ;
164+
165+ const serviceSlug = normalizeServiceSlug ( service ) ;
137166
138167 params . push ( {
139168 providerSlug,
0 commit comments