5
5
import * as environments from "./environments" ;
6
6
import * as core from "./core" ;
7
7
import * as fs from "fs" ;
8
- import * as FileForge from "./api/index" ;
8
+ import * as Fileforge from "./api/index" ;
9
9
import * as stream from "stream" ;
10
10
import urlJoin from "url-join" ;
11
11
import * as errors from "./errors/index" ;
12
12
import * as serializers from "./serialization/index" ;
13
13
import { ResponseObject } from "./helper" ;
14
- export declare namespace FileForgeClient {
14
+ export declare namespace FileforgeClient {
15
15
interface Options {
16
- environment ?: core . Supplier < environments . FileForgeEnvironment | string > ;
16
+ environment ?: core . Supplier < environments . FileforgeEnvironment | string > ;
17
17
apiKey : core . Supplier < string > ;
18
18
}
19
19
@@ -26,20 +26,20 @@ export declare namespace FileForgeClient {
26
26
27
27
}
28
28
29
- export class FileForgeClient {
30
- constructor ( protected readonly _options : FileForgeClient . Options ) { }
29
+ export class FileforgeClient {
30
+ constructor ( protected readonly _options : FileforgeClient . Options ) { }
31
31
32
32
/**
33
33
* Generates a PDF document from web assets.
34
- * @throws {@link FileForge .BadRequestError }
35
- * @throws {@link FileForge .UnauthorizedError }
36
- * @throws {@link FileForge .InternalServerError }
37
- * @throws {@link FileForge .BadGatewayError }
34
+ * @throws {@link Fileforge .BadRequestError }
35
+ * @throws {@link Fileforge .UnauthorizedError }
36
+ * @throws {@link Fileforge .InternalServerError }
37
+ * @throws {@link Fileforge .BadGatewayError }
38
38
*/
39
39
public async generate (
40
40
files : File [ ] | fs . ReadStream [ ] ,
41
- request : FileForge . GenerateRequest ,
42
- requestOptions ?: FileForgeClient . RequestOptions
41
+ request : Fileforge . GenerateRequest ,
42
+ requestOptions ?: FileforgeClient . RequestOptions
43
43
) : Promise < ResponseObject | any > {
44
44
const _request = core . newFormData ( ) ;
45
45
const options = await serializers . GenerateRequestOptions . jsonOrThrow ( request . options , {
@@ -48,21 +48,22 @@ export class FileForgeClient {
48
48
allowUnrecognizedEnumValues : false ,
49
49
breadcrumbsPrefix : [ "" ] ,
50
50
} ) ;
51
- await _request . append ( "options" , new Blob ( [ JSON . stringify ( options ) ] , { type : "application/json" } ) ) ;
51
+ await _request . append ( "options" , new Blob ( [ JSON . stringify ( options ) ] , { type : "application/json" } ) , { contentType : "application/json" } ) ;
52
52
for ( const _file of files ) {
53
53
await _request . append ( "files" , _file ) ;
54
54
}
55
+
55
56
const _response = await core . fetcher < stream . Readable > ( {
56
57
url : urlJoin (
57
- ( await core . Supplier . get ( this . _options . environment ) ) ?? environments . FileForgeEnvironment . Default ,
58
+ ( await core . Supplier . get ( this . _options . environment ) ) ?? environments . FileforgeEnvironment . Default ,
58
59
"pdf/generate/"
59
60
) ,
60
61
method : "POST" ,
61
62
headers : {
62
63
"X-API-Key" : await core . Supplier . get ( this . _options . apiKey ) ,
63
64
"X-Fern-Language" : "JavaScript" ,
64
- "X-Fern-SDK-Name" : "fileforge" ,
65
- "X-Fern-SDK-Version" : "0.0.1 " ,
65
+ "X-Fern-SDK-Name" : "@ fileforge/client " ,
66
+ "X-Fern-SDK-Version" : "0.0.13 " ,
66
67
"X-Fern-Runtime" : core . RUNTIME . type ,
67
68
"X-Fern-Runtime-Version" : core . RUNTIME . version ,
68
69
...( await _request . getHeaders ( ) ) ,
@@ -71,30 +72,61 @@ export class FileForgeClient {
71
72
responseType : "streaming" ,
72
73
timeoutMs : requestOptions ?. timeoutInSeconds != null ? requestOptions . timeoutInSeconds * 1000 : 60000 ,
73
74
maxRetries : requestOptions ?. maxRetries ,
75
+ abortSignal : requestOptions ?. abortSignal ,
74
76
} ) ;
75
-
76
77
if ( _response . ok ) {
77
-
78
- return _response . body
78
+ return _response . body ;
79
79
}
80
80
81
81
if ( _response . error . reason === "status-code" ) {
82
- throw new errors . FileForgeError ( {
83
- statusCode : _response . error . statusCode ,
84
- body : _response . error . body ,
85
- } ) ;
82
+ switch ( _response . error . statusCode ) {
83
+ case 400 :
84
+ throw new Fileforge . BadRequestError (
85
+ await serializers . ErrorSchema . parseOrThrow ( _response . error . body , {
86
+ unrecognizedObjectKeys : "passthrough" ,
87
+ allowUnrecognizedUnionMembers : true ,
88
+ allowUnrecognizedEnumValues : true ,
89
+ breadcrumbsPrefix : [ "response" ] ,
90
+ } )
91
+ ) ;
92
+ case 401 :
93
+ throw new Fileforge . UnauthorizedError (
94
+ await serializers . ErrorSchema . parseOrThrow ( _response . error . body , {
95
+ unrecognizedObjectKeys : "passthrough" ,
96
+ allowUnrecognizedUnionMembers : true ,
97
+ allowUnrecognizedEnumValues : true ,
98
+ breadcrumbsPrefix : [ "response" ] ,
99
+ } )
100
+ ) ;
101
+ case 500 :
102
+ throw new Fileforge . InternalServerError ( _response . error . body ) ;
103
+ case 502 :
104
+ throw new Fileforge . BadGatewayError (
105
+ await serializers . ErrorSchema . parseOrThrow ( _response . error . body , {
106
+ unrecognizedObjectKeys : "passthrough" ,
107
+ allowUnrecognizedUnionMembers : true ,
108
+ allowUnrecognizedEnumValues : true ,
109
+ breadcrumbsPrefix : [ "response" ] ,
110
+ } )
111
+ ) ;
112
+ default :
113
+ throw new errors . FileforgeError ( {
114
+ statusCode : _response . error . statusCode ,
115
+ body : _response . error . body ,
116
+ } ) ;
117
+ }
86
118
}
87
119
88
120
switch ( _response . error . reason ) {
89
121
case "non-json" :
90
- throw new errors . FileForgeError ( {
122
+ throw new errors . FileforgeError ( {
91
123
statusCode : _response . error . statusCode ,
92
124
body : _response . error . rawBody ,
93
125
} ) ;
94
126
case "timeout" :
95
- throw new errors . FileForgeTimeoutError ( ) ;
127
+ throw new errors . FileforgeTimeoutError ( ) ;
96
128
case "unknown" :
97
- throw new errors . FileForgeError ( {
129
+ throw new errors . FileforgeError ( {
98
130
message : _response . error . errorMessage ,
99
131
} ) ;
100
132
}
@@ -107,8 +139,8 @@ export class FileForgeClient {
107
139
*/
108
140
public async merge (
109
141
files : File [ ] | fs . ReadStream [ ] ,
110
- request : FileForge . MergeRequest ,
111
- requestOptions ?: FileForgeClient . RequestOptions
142
+ request : Fileforge . MergeRequest ,
143
+ requestOptions ?: FileforgeClient . RequestOptions
112
144
) : Promise < ResponseObject | any > {
113
145
const _request = core . newFormData ( ) ;
114
146
const options = await serializers . GenerateRequestOptions . jsonOrThrow ( request . options , {
@@ -117,14 +149,14 @@ export class FileForgeClient {
117
149
allowUnrecognizedEnumValues : false ,
118
150
breadcrumbsPrefix : [ "" ] ,
119
151
} ) ;
120
- await _request . append ( "options" , new Blob ( [ JSON . stringify ( options ) ] , { type : "application/json" } ) ) ;
152
+ await _request . append ( "options" , new Blob ( [ JSON . stringify ( options ) ] , { type : "application/json" } ) , { contentType : "application/json" } ) ;
121
153
for ( const _file of files ) {
122
154
await _request . append ( "files" , _file ) ;
123
155
}
124
156
125
157
const _response = await core . fetcher < stream . Readable > ( {
126
158
url : urlJoin (
127
- ( await core . Supplier . get ( this . _options . environment ) ) ?? environments . FileForgeEnvironment . Default ,
159
+ ( await core . Supplier . get ( this . _options . environment ) ) ?? environments . FileforgeEnvironment . Default ,
128
160
"pdf/merge/"
129
161
) ,
130
162
method : "POST" ,
@@ -142,6 +174,7 @@ export class FileForgeClient {
142
174
responseType : "streaming" ,
143
175
timeoutMs : requestOptions ?. timeoutInSeconds != null ? requestOptions . timeoutInSeconds * 1000 : 60000 ,
144
176
maxRetries : requestOptions ?. maxRetries ,
177
+ abortSignal : requestOptions ?. abortSignal ,
145
178
} ) ;
146
179
if ( _response . ok ) {
147
180
return _response . body ;
@@ -150,7 +183,7 @@ export class FileForgeClient {
150
183
if ( _response . error . reason === "status-code" ) {
151
184
switch ( _response . error . statusCode ) {
152
185
case 400 :
153
- throw new FileForge . BadRequestError (
186
+ throw new Fileforge . BadRequestError (
154
187
await serializers . ErrorSchema . parseOrThrow ( _response . error . body , {
155
188
unrecognizedObjectKeys : "passthrough" ,
156
189
allowUnrecognizedUnionMembers : true ,
@@ -159,7 +192,7 @@ export class FileForgeClient {
159
192
} )
160
193
) ;
161
194
case 401 :
162
- throw new FileForge . UnauthorizedError (
195
+ throw new Fileforge . UnauthorizedError (
163
196
await serializers . ErrorSchema . parseOrThrow ( _response . error . body , {
164
197
unrecognizedObjectKeys : "passthrough" ,
165
198
allowUnrecognizedUnionMembers : true ,
@@ -168,9 +201,9 @@ export class FileForgeClient {
168
201
} )
169
202
) ;
170
203
case 500 :
171
- throw new FileForge . InternalServerError ( _response . error . body ) ;
204
+ throw new Fileforge . InternalServerError ( _response . error . body ) ;
172
205
default :
173
- throw new errors . FileForgeError ( {
206
+ throw new errors . FileforgeError ( {
174
207
statusCode : _response . error . statusCode ,
175
208
body : _response . error . body ,
176
209
} ) ;
@@ -179,14 +212,14 @@ export class FileForgeClient {
179
212
180
213
switch ( _response . error . reason ) {
181
214
case "non-json" :
182
- throw new errors . FileForgeError ( {
215
+ throw new errors . FileforgeError ( {
183
216
statusCode : _response . error . statusCode ,
184
217
body : _response . error . rawBody ,
185
218
} ) ;
186
219
case "timeout" :
187
- throw new errors . FileForgeTimeoutError ( ) ;
220
+ throw new errors . FileforgeTimeoutError ( ) ;
188
221
case "unknown" :
189
- throw new errors . FileForgeError ( {
222
+ throw new errors . FileforgeError ( {
190
223
message : _response . error . errorMessage ,
191
224
} ) ;
192
225
}
0 commit comments