File tree Expand file tree Collapse file tree 2 files changed +32
-31
lines changed Expand file tree Collapse file tree 2 files changed +32
-31
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ import { Request , Response , Sender } from "./types.js" ;
2+ import SharedCredentials from "./SharedCredentials.js" ;
3+ import { UnprocessableEntityError } from "./Errors.js" ;
4+
5+ interface Signer {
6+ sign ( request : Request ) : void ;
7+ }
8+
9+ export default class SigningSender {
10+ private signer : Signer ;
11+ private sender : Sender ;
12+
13+ constructor ( innerSender : Sender , signer : Signer ) {
14+ this . signer = signer ;
15+ this . sender = innerSender ;
16+ }
17+
18+ send ( request : Request ) : Promise < Response > {
19+ const sendingPostWithSharedCredentials =
20+ request . payload && this . signer instanceof SharedCredentials ;
21+ if ( sendingPostWithSharedCredentials ) {
22+ const message =
23+ "Shared credentials cannot be used in batches with a length greater than 1 or when using the US Extract API." ;
24+ throw new UnprocessableEntityError ( message ) ;
25+ }
26+
27+ return new Promise ( ( resolve , reject ) => {
28+ this . signer . sign ( request ) ;
29+ this . sender . send ( request ) . then ( resolve ) . catch ( reject ) ;
30+ } ) ;
31+ }
32+ }
You can’t perform that action at this time.
0 commit comments