11import {
22 any ,
33 type Context ,
4- createLanguageThis ,
4+ createLanguage ,
55 map ,
66 regex ,
77 seq ,
@@ -24,10 +24,10 @@ export type ApiKeyEntity = Entity<
2424> ;
2525
2626type ApiKeyLanguage = {
27- Prefix : ( ) => Parser < string > ;
28- PrefixKey : ( ) => Parser < ApiKeyEntity [ "value" ] > ;
29- Full : ( ) => Parser < ApiKeyEntity > ;
30- parser : ( ) => Parser < ApiKeyEntity > ;
27+ Prefix : Parser < string > ;
28+ PrefixKey : Parser < ApiKeyEntity [ "value" ] > ;
29+ Full : Parser < ApiKeyEntity > ;
30+ parser : Parser < ApiKeyEntity > ;
3131} ;
3232
3333const ProviderPrefixes : Record < string , string > = {
@@ -114,40 +114,39 @@ export const apiKey = (
114114/**
115115 * API key parser language.
116116 */
117- export const ApiKey : ReturnType < typeof createLanguageThis < ApiKeyLanguage > > =
118- createLanguageThis < ApiKeyLanguage > ( {
119- /**
120- * Matches prefix for common API key formats, e.g. "sk-" for Stripe, "pk-" for some others, etc.
121- * This is optional since not all API keys have a prefix.
122- *
123- * Returns a provider name if a known prefix is matched, or undefined otherwise.
124- * This allows downstream code to potentially apply provider-specific validation or parsing logic.
125- */
126- Prefix ( ) : Parser < string > {
127- return map (
117+ export const ApiKey : ApiKeyLanguage = createLanguage < ApiKeyLanguage > ( {
118+ /**
119+ * Matches prefix for common API key formats, e.g. "sk-" for Stripe, "pk-" for some others, etc.
120+ * This is optional since not all API keys have a prefix.
121+ *
122+ * Returns a provider name if a known prefix is matched, or undefined otherwise.
123+ * This allows downstream code to potentially apply provider-specific validation or parsing logic.
124+ */
125+ Prefix : ( ) : Parser < string > => {
126+ return map (
127+ regex ( ProviderPrefixRegex , "api-key-prefix" ) ,
128+ ( prefix ) => ProviderPrefixes [ prefix ] ,
129+ ) ;
130+ } ,
131+ /**
132+ * Parses a known provider prefix + key body.
133+ */
134+ PrefixKey : ( ) : Parser < ApiKeyEntity [ "value" ] > => {
135+ return map (
136+ seq (
128137 regex ( ProviderPrefixRegex , "api-key-prefix" ) ,
129- ( prefix ) => ProviderPrefixes [ prefix ] ,
130- ) ;
131- } ,
132- /**
133- * Parses a known provider prefix + key body.
134- */
135- PrefixKey ( ) : Parser < ApiKeyEntity [ "value" ] > {
136- return map (
137- seq (
138- regex ( ProviderPrefixRegex , "api-key-prefix" ) ,
139- regex ( / [ A - Z a - z 0 - 9 ] [ A - Z a - z 0 - 9 . _ - ] { 7 , 199 } / , "api-key-body" ) ,
140- ) ,
141- ( [ prefix , body ] ) => ( {
142- provider : ProviderPrefixes [ prefix ] ,
143- key : `${ prefix } ${ body } ` ,
144- } ) ,
145- ) ;
146- } ,
147- Full ( ) : Parser < ApiKeyEntity > {
148- return map ( this . PrefixKey , ( value , b , a ) => apiKey ( value , b , a ) ) ;
149- } ,
150- parser ( ) : Parser < ApiKeyEntity > {
151- return dot ( any ( this . Full ) ) ;
152- } ,
153- } ) ;
138+ regex ( / [ A - Z a - z 0 - 9 ] [ A - Z a - z 0 - 9 . _ - ] { 7 , 199 } / , "api-key-body" ) ,
139+ ) ,
140+ ( [ prefix , body ] ) => ( {
141+ provider : ProviderPrefixes [ prefix ] ,
142+ key : `${ prefix } ${ body } ` ,
143+ } ) ,
144+ ) ;
145+ } ,
146+ Full : ( s ) : Parser < ApiKeyEntity > => {
147+ return map ( s . PrefixKey , ( value , b , a ) => apiKey ( value , b , a ) ) ;
148+ } ,
149+ parser : ( s ) : Parser < ApiKeyEntity > => {
150+ return dot ( any ( s . Full ) ) ;
151+ } ,
152+ } ) ;
0 commit comments