1
1
import { Fern } from "../index" ;
2
2
import { SnippetTemplateResolver } from "@fern-api/template-resolver" ;
3
+ import { FdrClient , FdrAPI } from "@fern-api/fdr-sdk" ;
3
4
4
5
export class Template implements Fern . templates . EndpointSnippetTemplate {
5
6
private endpointSnippetTemplate : Fern . EndpointSnippetTemplate ;
@@ -19,8 +20,16 @@ export class Template implements Fern.templates.EndpointSnippetTemplate {
19
20
*/
20
21
public resolve ( payload : Fern . snippets . CustomSnippetPayload ) : Fern . snippets . Snippet {
21
22
const _innerResolver = new SnippetTemplateResolver ( {
22
- payload,
23
- endpointSnippetTemplate : this . endpointSnippetTemplate ,
23
+ payload : {
24
+ ...payload ,
25
+ headers : payload . headers ?. map ( ( header ) : FdrAPI . ParameterPayload => { return { name : header . name , value : header . value ?? undefined } } ) ,
26
+ pathParameters : payload . pathParameters ?. map ( ( header ) : FdrAPI . ParameterPayload => { return { name : header . name , value : header . value ?? undefined } } ) ,
27
+ queryParameters : payload . queryParameters ?. map ( ( header ) : FdrAPI . ParameterPayload => { return { name : header . name , value : header . value ?? undefined } } ) ,
28
+ requestBody : payload . requestBody ?? undefined ,
29
+ auth : payload . auth ?? undefined ,
30
+ } ,
31
+ endpointSnippetTemplate : this . endpointSnippetTemplate as FdrAPI . EndpointSnippetTemplate ,
32
+ provideFdrClient : ( ) => new FdrClient ( ) ,
24
33
} ) ;
25
34
26
35
return _innerResolver . resolve ( ) ;
@@ -34,8 +43,16 @@ export class Template implements Fern.templates.EndpointSnippetTemplate {
34
43
*/
35
44
public async resolveFormatted ( payload : Fern . snippets . CustomSnippetPayload ) : Promise < Fern . snippets . Snippet > {
36
45
const _innerResolver = new SnippetTemplateResolver ( {
37
- payload,
38
- endpointSnippetTemplate : this . endpointSnippetTemplate ,
46
+ payload : {
47
+ ...payload ,
48
+ headers : payload . headers ?. map ( ( header ) : FdrAPI . ParameterPayload => { return { name : header . name , value : header . value ?? undefined } } ) ,
49
+ pathParameters : payload . pathParameters ?. map ( ( header ) : FdrAPI . ParameterPayload => { return { name : header . name , value : header . value ?? undefined } } ) ,
50
+ queryParameters : payload . queryParameters ?. map ( ( header ) : FdrAPI . ParameterPayload => { return { name : header . name , value : header . value ?? undefined } } ) ,
51
+ requestBody : payload . requestBody ?? undefined ,
52
+ auth : payload . auth ?? undefined ,
53
+ } ,
54
+ endpointSnippetTemplate : this . endpointSnippetTemplate as FdrAPI . EndpointSnippetTemplate ,
55
+ provideFdrClient : ( ) => new FdrClient ( ) ,
39
56
} ) ;
40
57
41
58
return await _innerResolver . resolveWithFormatting ( ) ;
@@ -48,4 +65,8 @@ export class Template implements Fern.templates.EndpointSnippetTemplate {
48
65
public static from ( template : Fern . templates . EndpointSnippetTemplate ) : Template {
49
66
return new Template ( template . sdk , template . endpointId , template . snippetTemplate ) ;
50
67
}
68
+ }
69
+
70
+ export function isNonNullish < T > ( x : T | null | undefined ) : x is T {
71
+ return x != null ;
51
72
}
0 commit comments