├── bsconfig.json ├── examples ├── instance_example.re └── request_examples.re ├── .github └── main.workflow ├── .gitignore ├── src ├── axios_types.rei ├── axios_types.re ├── axios_agent.re ├── axios_instance.re ├── axios.rei └── axios.re ├── package.json └── README.md /bsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bs-axios", 3 | "refmt": 3, 4 | "sources": [ 5 | { 6 | "dir": "src", 7 | "public": "all" 8 | }, 9 | { 10 | "dir": "examples", 11 | "type": "dev" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /examples/instance_example.re: -------------------------------------------------------------------------------- 1 | /* Creating an instance */ 2 | open Axios; 3 | 4 | let inst = Instance.create(makeConfig(~baseURL="https://example.com", ())); 5 | Js.Promise.( 6 | Instance.get(inst, "/") |> then_(resp => resolve(Js.log(resp##data))) 7 | ); -------------------------------------------------------------------------------- /.github/main.workflow: -------------------------------------------------------------------------------- 1 | workflow "Build and Publish" { 2 | on = "push" 3 | resolves = ["GitHub Action for npm"] 4 | } 5 | 6 | action "Install" { 7 | uses = "actions/npm@59b64a598378f31e49cb76f27d6f3312b582f680" 8 | args = "install" 9 | } 10 | 11 | action "GitHub Action for npm" { 12 | uses = "actions/npm@59b64a598378f31e49cb76f27d6f3312b582f680" 13 | needs = ["Install"] 14 | args = "build" 15 | } 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | node_modules 3 | .merlin 4 | .bsb.lock 5 | .vscode 6 | *test.re 7 | *backup 8 | *.log 9 | 10 | # Created by https://www.gitignore.io/api/macos 11 | 12 | ### macOS ### 13 | *.DS_Store 14 | .AppleDouble 15 | .LSOverride 16 | 17 | # Icon must end with two \r 18 | Icon 19 | 20 | # Thumbnails 21 | ._* 22 | 23 | # Files that might appear in the root of a volume 24 | .DocumentRevisions-V100 25 | .fseventsd 26 | .Spotlight-V100 27 | .TemporaryItems 28 | .Trashes 29 | .VolumeIcon.icns 30 | .com.apple.timemachine.donotpresent 31 | 32 | # Directories potentially created on remote AFP share 33 | .AppleDB 34 | .AppleDesktop 35 | Network Trash Folder 36 | Temporary Items 37 | .apdisk 38 | 39 | # End of https://www.gitignore.io/api/macos 40 | -------------------------------------------------------------------------------- /src/axios_types.rei: -------------------------------------------------------------------------------- 1 | type configWithUrl; 2 | 3 | type config; 4 | 5 | type requestTransformer('data, 'headers, 'resultData); 6 | 7 | type responseTransformer('data, 'resultData); 8 | 9 | type paramsSerializer('a) = Js.t('a) => string; 10 | 11 | type response('a, 'b) = { 12 | . 13 | "data": 'a, 14 | "status": int, 15 | "statusText": string, 16 | "headers": Js.t('b), 17 | "config": config, 18 | }; 19 | 20 | type adapter('a, 'b) = config => Js.Promise.t(response('a, 'b)); 21 | 22 | type auth = { 23 | . 24 | "username": string, 25 | "password": string, 26 | }; 27 | 28 | type proxy = { 29 | . 30 | "host": int, 31 | "port": int, 32 | "auth": auth, 33 | }; 34 | 35 | type onProgress('a) = Js.t('a) => unit; 36 | 37 | type validateStatus = int => bool; -------------------------------------------------------------------------------- /src/axios_types.re: -------------------------------------------------------------------------------- 1 | type configWithUrl = {. "url": string}; 2 | 3 | type config = Js.t({.}); 4 | 5 | type requestTransformer('data, 'headers, 'resultData); 6 | 7 | type responseTransformer('data, 'resultData); 8 | 9 | type paramsSerializer('a) = Js.t('a) => string; 10 | 11 | type response('data, 'header) = { 12 | . 13 | "data": 'data, 14 | "status": int, 15 | "statusText": string, 16 | "headers": Js.t('header), 17 | "config": config, 18 | }; 19 | 20 | type adapter('a, 'b) = config => Js.Promise.t(response('a, 'b)); 21 | 22 | type auth = { 23 | . 24 | "username": string, 25 | "password": string, 26 | }; 27 | 28 | type proxy = { 29 | . 30 | "host": int, 31 | "port": int, 32 | "auth": auth, 33 | }; 34 | 35 | type onProgress('a) = Js.t('a) => unit; 36 | 37 | type validateStatus = int => bool; 38 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bs-axios", 3 | "version": "0.0.43", 4 | "description": "Axios bindings for Bucklescript", 5 | "repository": "https://github.com/meafmira/bs-axios", 6 | "author": "meafmira", 7 | "license": "MIT", 8 | "keywords": [ 9 | "axios", 10 | "bucklescript", 11 | "bsb", 12 | "reason", 13 | "reasonml", 14 | "ocaml", 15 | "bs-axios", 16 | "bs-platform" 17 | ], 18 | "scripts": { 19 | "build": "bsb -clean-world -make-world", 20 | "watch": "bsb -clean-world -make-world -w", 21 | "fmt": "prettier --write README.md", 22 | "preversion": "npm run build", 23 | "postversion": "npm publish" 24 | }, 25 | "peerDependencies": { 26 | "axios": ">= 0.21.1 <= 0.22.0", 27 | "bs-platform": "^7.1.0" 28 | }, 29 | "bugs": { 30 | "url": "https://github.com/meafmira/bs-axios/issues" 31 | }, 32 | "homepage": "https://github.com/meafmira/bs-axios#readme", 33 | "devDependencies": { 34 | "axios": ">= 0.21.1 <= 0.22.0", 35 | "bs-platform": "^7.1.0", 36 | "prettier": "^2.0.4" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /examples/request_examples.re: -------------------------------------------------------------------------------- 1 | /* Simple request */ 2 | Js.Promise.( 3 | Axios.get("/user?ID=12345") 4 | |> then_(response => resolve(Js.log(response##data))) 5 | |> catch(error => resolve(Js.log(error))) 6 | ); 7 | 8 | /* Post requests */ 9 | Js.Promise.( 10 | Axios.post("/user") 11 | |> then_(response => resolve(Js.log(response##data))) 12 | |> catch(error => resolve(Js.log(error))) 13 | ); 14 | 15 | let user = {"username": "michel", "password": "12345678"}; 16 | 17 | Js.Promise.( 18 | Axios.postData( 19 | "/auth", 20 | { 21 | user; 22 | }, 23 | ) 24 | |> then_(response => resolve(Js.log(response##data))) 25 | |> catch(error => resolve(Js.log(error))) 26 | ); 27 | 28 | /* Concurrency */ 29 | Js.Promise.( 30 | Axios.all2((Axios.get("/users/1"), Axios.get("/users/1/friends"))) 31 | |> then_(((user, friends)) => 32 | resolve(Js.log2(user##data, friends##data)) 33 | ) 34 | |> catch(error => resolve(Js.log(error))) 35 | ); 36 | 37 | /* Headers */ 38 | let headers = Axios.Headers.fromObj({"Content-type": "application/json"}); 39 | Axios.getc("https://example.com", Axios.makeConfig(~headers, ())); 40 | 41 | let headersDict = 42 | Js.Dict.( 43 | { 44 | let dict = empty(); 45 | dict->set("Content-type", "application/json"); 46 | dict; 47 | } 48 | ); 49 | let headers = Axios.Headers.fromDict(headersDict); 50 | Axios.getc("https://example.com", Axios.makeConfig(~headers, ())); 51 | 52 | /* Node.js Agent */ 53 | let httpsAgent = 54 | Axios.Agent.Https.(config(~rejectUnauthorized=false, ()) |> create); 55 | 56 | Axios.getc( 57 | "https://insecure-example.com", 58 | Axios.makeConfig(~httpsAgent, ()), 59 | ); -------------------------------------------------------------------------------- /src/axios_agent.re: -------------------------------------------------------------------------------- 1 | // https://nodejs.org/api/http.html#http_class_http_agent 2 | module Http = { 3 | type t; 4 | 5 | [@bs.deriving abstract] 6 | type config = { 7 | [@bs.optional] 8 | keepAlive: bool, 9 | [@bs.optional] 10 | keepAliveMsecs: int, 11 | [@bs.optional] 12 | maxSockets: int, 13 | [@bs.optional] 14 | maxFreeSockets: int, 15 | [@bs.optional] 16 | timeout: int, 17 | }; 18 | 19 | [@bs.module "http"] [@bs.new] external create: config => t = "Agent"; 20 | }; 21 | 22 | // https://nodejs.org/api/https.html#https_class_https_agent 23 | module Https = { 24 | type t; 25 | 26 | [@bs.deriving abstract] 27 | type config = { 28 | [@bs.optional] 29 | ca: string, 30 | [@bs.optional] 31 | cert: string, 32 | [@bs.optional] 33 | ciphers: string, 34 | [@bs.optional] 35 | clientCertEngine: string, 36 | [@bs.optional] 37 | crl: string, 38 | [@bs.optional] 39 | dhparam: string, 40 | [@bs.optional] 41 | ecdhCurve: string, 42 | [@bs.optional] 43 | honorCipherOrder: bool, 44 | [@bs.optional] 45 | key: string, 46 | [@bs.optional] 47 | keepAlive: bool, 48 | [@bs.optional] 49 | keepAliveMsecs: int, 50 | [@bs.optional] 51 | maxSockets: int, 52 | [@bs.optional] 53 | maxFreeSockets: int, 54 | [@bs.optional] 55 | maxCachedSessions: int, 56 | [@bs.optional] 57 | passphrase: string, 58 | [@bs.optional] 59 | pfx: string, 60 | [@bs.optional] 61 | rejectUnauthorized: bool, 62 | [@bs.optional] 63 | secureOptions: int, 64 | [@bs.optional] 65 | secureProtocol: string, 66 | [@bs.optional] 67 | servername: string, 68 | [@bs.optional] 69 | sessionIdContext: string, 70 | [@bs.optional] 71 | timeout: int, 72 | }; 73 | 74 | [@bs.module "https"] [@bs.new] external create: config => t = "Agent"; 75 | }; 76 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # bs-axios [![npm version](https://img.shields.io/npm/v/bs-axios.svg?style=flat-square)](https://www.npmjs.com/package/bs-axios) 2 | 3 | [Axios](https://github.com/axios/axios) bindings for Bucklescript. 4 | 5 | ## Installation 6 | 7 | 1. Install bs-axios 8 | 9 | ```bash 10 | $ yarn add bs-axios 11 | ``` 12 | 13 | or 14 | 15 | ```bash 16 | $ npm install --save bs-axios 17 | ``` 18 | 19 | 2. Add "bs-axios" to "bs-dependencies" section of `bsconfig.json` 20 | 21 | ## Examples 22 | 23 | See usage examples in examples folder: 24 | 25 | - [Request examples](./examples/request_examples.re) (GET, POST) 26 | - [Instance example](./examples/instance_example.re) 27 | 28 | ### Simple request 29 | 30 | ```reason 31 | Js.Promise.( 32 | Axios.get("/user?ID=12345") 33 | |> then_((response) => resolve(Js.log(response##data))) 34 | |> catch((error) => resolve(Js.log(error))) 35 | ); 36 | ``` 37 | 38 | ### Post requests 39 | 40 | ```reason 41 | Js.Promise.( 42 | Axios.post("/user") 43 | |> then_((response) => resolve(Js.log(response##data))) 44 | |> catch((error) => resolve(Js.log(error))) 45 | ); 46 | ``` 47 | 48 | ```reason 49 | let user = { 50 | "username": "michel", 51 | "password": "12345678" 52 | }; 53 | 54 | Js.Promise.( 55 | Axios.postData("/auth", {user}) 56 | |> then_((response) => resolve(Js.log(response##data))) 57 | |> catch((error) => resolve(Js.log(error))) 58 | ); 59 | ``` 60 | 61 | ### Concurrency 62 | 63 | ```reason 64 | Js.Promise.( 65 | Axios.all2((Axios.get("/users/1"), Axios.get("/users/1/friends"))) 66 | |> then_(((user, friends)) => resolve(Js.log2(user##data, friends##data))) 67 | |> catch((error) => resolve(Js.log(error))) 68 | ); 69 | ``` 70 | 71 | ### Creating an instance 72 | 73 | You can create a new instance of axios with a custom config. 74 | 75 | ```reason 76 | open Axios; 77 | 78 | let inst = Instance.create(makeConfig(~baseURL="https://example.com", ())); 79 | Js.Promise.(Instance.get(inst, "/") |> then_((resp) => resolve(Js.log(resp##data)))); 80 | ``` 81 | 82 | ### Error handling 83 | 84 | ```reason 85 | external promiseErrorToJsObj : Js.Promise.error => Js.t('a) = "%identity"; 86 | 87 | Js.Promise.( 88 | Instance.get(inst, "/") 89 | |> then_(resp => resolve(Belt.Result.Ok(resp))) 90 | |> catch(error => { 91 | let error = error |> promiseErrorToJsObj; 92 | Js.log(error##response##status); 93 | resolve(Belt.Result.Error(error)); 94 | }) 95 | ); 96 | ``` 97 | 98 | ### Headers 99 | 100 | ```reason 101 | let headers = Axios.Headers.fromObj({"Content-type": "application/json"}); 102 | Axios.getc("https://example.com", Axios.makeConfig(~headers, ())); 103 | 104 | let headersDict = 105 | Js.Dict.( 106 | { 107 | let dict = empty(); 108 | dict->set("Content-type", "application/json"); 109 | dict; 110 | } 111 | ); 112 | let headers = Axios.Headers.fromDict(headersDict); 113 | Axios.getc("https://example.com", Axios.makeConfig(~headers, ())); 114 | ``` 115 | 116 | ### Node.js HTTP/HTTPS Agent 117 | 118 | Providing custom Node.js [`HTTP Agent`](https://nodejs.org/api/http.html#http_class_http_agent) 119 | allows for configuring connection persistence and reuse. For secure connections, 120 | [`HTTPS Agent`](https://nodejs.org/api/https.html#https_class_https_agent) allows security related 121 | configuration to be provided. 122 | 123 | ```reason 124 | let httpsAgent = 125 | Axios.Agent.Https.(config(~rejectUnauthorized=false, ()) |> create); 126 | 127 | Axios.getc( 128 | "https://insecure-example.com", 129 | Axios.makeConfig(~httpsAgent, ()), 130 | ); 131 | ``` 132 | -------------------------------------------------------------------------------- /src/axios_instance.re: -------------------------------------------------------------------------------- 1 | open Axios_types; 2 | 3 | type t; 4 | 5 | [@bs.module "axios"] external create: config => t = ""; 6 | 7 | [@bs.send] 8 | external all: 9 | (t, array(Js.Promise.t(response(_, _)))) => 10 | Js.Promise.t(array(response(_, _))) = 11 | ""; 12 | 13 | [@bs.send] 14 | external all2: 15 | ( 16 | t, 17 | (Js.Promise.t(response('a0, 'b0)), Js.Promise.t(response('a1, 'b1))) 18 | ) => 19 | Js.Promise.t((response('a0, 'b0), response('a1, 'b1))) = 20 | "all"; 21 | 22 | [@bs.send] 23 | external all3: 24 | ( 25 | ( 26 | t, 27 | Js.Promise.t(response('a0, 'b0)), 28 | Js.Promise.t(response('a1, 'b1)), 29 | Js.Promise.t(response('a2, 'b2)), 30 | ) 31 | ) => 32 | Js.Promise.t( 33 | (response('a0, 'b0), response('a1, 'b1), response('a2, 'b2)), 34 | ) = 35 | "all"; 36 | 37 | [@bs.send] 38 | external all4: 39 | ( 40 | ( 41 | t, 42 | Js.Promise.t(response('a0, 'b0)), 43 | Js.Promise.t(response('a1, 'b1)), 44 | Js.Promise.t(response('a2, 'b2)), 45 | Js.Promise.t(response('a3, 'b3)), 46 | ) 47 | ) => 48 | Js.Promise.t( 49 | ( 50 | response('a0, 'b0), 51 | response('a1, 'b1), 52 | response('a2, 'b2), 53 | response('a3, 'b3), 54 | ), 55 | ) = 56 | "all"; 57 | 58 | [@bs.send] 59 | external all5: 60 | ( 61 | ( 62 | t, 63 | Js.Promise.t(response('a0, 'b0)), 64 | Js.Promise.t(response('a1, 'b1)), 65 | Js.Promise.t(response('a2, 'b2)), 66 | Js.Promise.t(response('a3, 'b3)), 67 | Js.Promise.t(response('a4, 'b4)), 68 | ) 69 | ) => 70 | Js.Promise.t( 71 | ( 72 | response('a0, 'b0), 73 | response('a1, 'b1), 74 | response('a2, 'b2), 75 | response('a3, 'b3), 76 | response('a4, 'b4), 77 | ), 78 | ) = 79 | "all"; 80 | 81 | [@bs.send] 82 | external all6: 83 | ( 84 | ( 85 | t, 86 | Js.Promise.t(response('a0, 'b0)), 87 | Js.Promise.t(response('a1, 'b1)), 88 | Js.Promise.t(response('a2, 'b2)), 89 | Js.Promise.t(response('a3, 'b3)), 90 | Js.Promise.t(response('a4, 'b4)), 91 | Js.Promise.t(response('a5, 'b5)), 92 | ) 93 | ) => 94 | Js.Promise.t( 95 | ( 96 | response('a0, 'b0), 97 | response('a1, 'b1), 98 | response('a2, 'b2), 99 | response('a3, 'b3), 100 | response('a4, 'b4), 101 | response('a5, 'b5), 102 | ), 103 | ) = 104 | "all"; 105 | 106 | [@bs.send] 107 | external all7: 108 | ( 109 | ( 110 | t, 111 | Js.Promise.t(response('a0, 'b0)), 112 | Js.Promise.t(response('a1, 'b1)), 113 | Js.Promise.t(response('a2, 'b2)), 114 | Js.Promise.t(response('a3, 'b3)), 115 | Js.Promise.t(response('a4, 'b4)), 116 | Js.Promise.t(response('a5, 'b5)), 117 | Js.Promise.t(response('a6, 'b6)), 118 | ) 119 | ) => 120 | Js.Promise.t( 121 | ( 122 | response('a0, 'b0), 123 | response('a1, 'b1), 124 | response('a2, 'b2), 125 | response('a3, 'b3), 126 | response('a4, 'b4), 127 | response('a5, 'b5), 128 | response('a6, 'b6), 129 | ), 130 | ) = 131 | "all"; 132 | 133 | [@bs.send] 134 | external all8: 135 | ( 136 | ( 137 | t, 138 | Js.Promise.t(response('a0, 'b0)), 139 | Js.Promise.t(response('a1, 'b1)), 140 | Js.Promise.t(response('a2, 'b2)), 141 | Js.Promise.t(response('a3, 'b3)), 142 | Js.Promise.t(response('a4, 'b4)), 143 | Js.Promise.t(response('a5, 'b5)), 144 | Js.Promise.t(response('a6, 'b6)), 145 | Js.Promise.t(response('a7, 'b7)), 146 | ) 147 | ) => 148 | Js.Promise.t( 149 | ( 150 | response('a0, 'b0), 151 | response('a1, 'b1), 152 | response('a2, 'b2), 153 | response('a3, 'b3), 154 | response('a4, 'b4), 155 | response('a5, 'b5), 156 | response('a6, 'b6), 157 | response('a7, 'b7), 158 | ), 159 | ) = 160 | "all"; 161 | 162 | [@bs.send] 163 | external all9: 164 | ( 165 | ( 166 | t, 167 | Js.Promise.t(response('a0, 'b0)), 168 | Js.Promise.t(response('a1, 'b1)), 169 | Js.Promise.t(response('a2, 'b2)), 170 | Js.Promise.t(response('a3, 'b3)), 171 | Js.Promise.t(response('a4, 'b4)), 172 | Js.Promise.t(response('a5, 'b5)), 173 | Js.Promise.t(response('a6, 'b6)), 174 | Js.Promise.t(response('a7, 'b7)), 175 | Js.Promise.t(response('a8, 'b8)), 176 | ) 177 | ) => 178 | Js.Promise.t( 179 | ( 180 | response('a0, 'b0), 181 | response('a1, 'b1), 182 | response('a2, 'b2), 183 | response('a3, 'b3), 184 | response('a4, 'b4), 185 | response('a5, 'b5), 186 | response('a6, 'b6), 187 | response('a7, 'b7), 188 | response('a8, 'b8), 189 | ), 190 | ) = 191 | "all"; 192 | 193 | [@bs.send] 194 | external all10: 195 | ( 196 | ( 197 | t, 198 | Js.Promise.t(response('a0, 'b0)), 199 | Js.Promise.t(response('a1, 'b1)), 200 | Js.Promise.t(response('a2, 'b2)), 201 | Js.Promise.t(response('a3, 'b3)), 202 | Js.Promise.t(response('a4, 'b4)), 203 | Js.Promise.t(response('a5, 'b5)), 204 | Js.Promise.t(response('a6, 'b6)), 205 | Js.Promise.t(response('a7, 'b7)), 206 | Js.Promise.t(response('a8, 'b8)), 207 | Js.Promise.t(response('a9, 'b9)), 208 | ) 209 | ) => 210 | Js.Promise.t( 211 | ( 212 | response('a0, 'b0), 213 | response('a1, 'b1), 214 | response('a2, 'b2), 215 | response('a3, 'b3), 216 | response('a4, 'b4), 217 | response('a5, 'b5), 218 | response('a6, 'b6), 219 | response('a7, 'b7), 220 | response('a8, 'b8), 221 | response('a9, 'b9), 222 | ), 223 | ) = 224 | "all"; 225 | 226 | [@bs.send] external request: t => Js.Promise.t(response('a, 'b)) = ""; 227 | 228 | [@bs.send] external get: (t, string) => Js.Promise.t(response('a, 'b)) = ""; 229 | 230 | [@bs.send] 231 | external getc: (t, string, config) => Js.Promise.t(response('a, 'b)) = "get"; 232 | 233 | [@bs.send] 234 | external delete: (t, string) => Js.Promise.t(response('a, 'b)) = ""; 235 | 236 | [@bs.send] 237 | external deletec: (t, string, config) => Js.Promise.t(response('a, 'b)) = 238 | "delete"; 239 | 240 | [@bs.send] external post: (t, string) => Js.Promise.t(response('a, 'b)) = ""; 241 | 242 | [@bs.send] 243 | external postData: (t, string, Js.t('a)) => Js.Promise.t(response('b, 'c)) = 244 | "post"; 245 | 246 | [@bs.send] 247 | external postDatac: 248 | (t, string, Js.t('a), config) => Js.Promise.t(response('b, 'c)) = 249 | "post"; 250 | 251 | [@bs.send] external put: (t, string) => Js.Promise.t(response('a, 'b)) = ""; 252 | 253 | [@bs.send] 254 | external putData: (t, string, Js.t('a)) => Js.Promise.t(response('b, 'c)) = 255 | "put"; 256 | 257 | [@bs.send] 258 | external putDatac: 259 | (t, string, Js.t('a), config) => Js.Promise.t(response('b, 'c)) = 260 | "put"; 261 | 262 | [@bs.send] 263 | external patch: (t, string) => Js.Promise.t(response('a, 'b)) = ""; 264 | 265 | [@bs.send] 266 | external patchData: (t, string, Js.t('a)) => Js.Promise.t(response('b, 'c)) = 267 | "patch"; 268 | 269 | [@bs.send] 270 | external patchDatac: 271 | (t, string, Js.t('a), config) => Js.Promise.t(response('b, 'c)) = 272 | "patch"; -------------------------------------------------------------------------------- /src/axios.rei: -------------------------------------------------------------------------------- 1 | open Axios_types; 2 | 3 | module Headers: { 4 | type t; 5 | 6 | let fromObj: Js.t({..}) => t; 7 | let fromDict: Js.Dict.t(string) => t; 8 | }; 9 | 10 | let makeResponseTransformer1: 11 | ('data => 'resultData) => responseTransformer('data, 'resultData); 12 | 13 | let makeResponseTransformer2: 14 | ('data => 'data0, 'data0 => 'resultData) => 15 | responseTransformer('data, 'resultData); 16 | 17 | let makeResponseTransformer3: 18 | ('data => 'data0, 'data0 => 'data1, 'data1 => 'resultData) => 19 | responseTransformer('data, 'resultData); 20 | 21 | let makeResponseTransformer4: 22 | ( 23 | 'data => 'data0, 24 | 'data0 => 'data1, 25 | 'data1 => 'data2, 26 | 'data2 => 'resultData 27 | ) => 28 | responseTransformer('data, 'resultData); 29 | 30 | let makeResponseTransformer5: 31 | ( 32 | 'data => 'data0, 33 | 'data0 => 'data1, 34 | 'data1 => 'data2, 35 | 'data2 => 'data3, 36 | 'data3 => 'resultData 37 | ) => 38 | responseTransformer('data, 'resultData); 39 | 40 | let makeRequestTransformer1: 41 | (('data, Headers.t) => 'resultData) => 42 | requestTransformer('data, Headers.t, 'resultData); 43 | 44 | let makeRequestTransformer2: 45 | (('data, Headers.t) => 'data0, ('data0, Headers.t) => 'resultData) => 46 | requestTransformer('data, Headers.t, 'resultData); 47 | 48 | let makeRequestTransformer3: 49 | ( 50 | ('data, Headers.t) => 'data0, 51 | ('data0, Headers.t) => 'data1, 52 | ('data1, Headers.t) => 'resultData 53 | ) => 54 | requestTransformer('data, Headers.t, 'resultData); 55 | 56 | let makeRequestTransformer4: 57 | ( 58 | ('data, Headers.t) => 'data0, 59 | ('data0, Headers.t) => 'data1, 60 | ('data1, Headers.t) => 'data2, 61 | ('data2, Headers.t) => 'resultData 62 | ) => 63 | requestTransformer('data, Headers.t, 'resultData); 64 | 65 | let makeRequestTransformer5: 66 | ( 67 | ('data, Headers.t) => 'data0, 68 | ('data0, Headers.t) => 'data1, 69 | ('data1, Headers.t) => 'data2, 70 | ('data2, Headers.t) => 'data3, 71 | ('data3, Headers.t) => 'resultData 72 | ) => 73 | requestTransformer('data, Headers.t, 'resultData); 74 | 75 | [@bs.obj] 76 | external makeConfig: 77 | ( 78 | ~url: string=?, 79 | ~_method: string=?, 80 | ~baseURL: string=?, 81 | ~transformRequest: requestTransformer( 82 | 'postData, 83 | Headers.t, 84 | 'resultPostData, 85 | ) 86 | =?, 87 | ~transformResponse: responseTransformer('data, 'resultData)=?, 88 | ~headers: Headers.t=?, 89 | ~params: Js.t('params)=?, 90 | ~paramsSerializer: paramsSerializer('params)=?, 91 | ~data: Js.t('postData)=?, 92 | ~timeout: int=?, 93 | ~withCredentials: bool=?, 94 | ~adapter: adapter('a, 'b)=?, 95 | ~auth: auth=?, 96 | ~responseType: string=?, 97 | ~xsrfCookieName: string=?, 98 | ~xsrfHeaderName: string=?, 99 | ~onUploadProgress: onProgress('uploadProgress)=?, 100 | ~onDownloadProgress: onProgress('downloadProgress)=?, 101 | ~maxContentLength: int=?, 102 | ~validateStatus: validateStatus=?, 103 | ~maxRedirects: int=?, 104 | ~socketPath: string=?, 105 | ~proxy: proxy=?, 106 | ~httpAgent: Axios_agent.Http.t=?, 107 | ~httpsAgent: Axios_agent.Https.t=?, 108 | unit 109 | ) => 110 | config = 111 | ""; 112 | 113 | [@bs.obj] 114 | external makeConfigWithUrl: 115 | ( 116 | ~url: string, 117 | ~_method: string=?, 118 | ~baseURL: string=?, 119 | ~transformRequest: requestTransformer( 120 | 'postData, 121 | Headers.t, 122 | 'resultPostData, 123 | ) 124 | =?, 125 | ~transformResponse: responseTransformer('data, 'resultData)=?, 126 | ~headers: Headers.t=?, 127 | ~params: Js.t('params)=?, 128 | ~paramsSerializer: paramsSerializer('params)=?, 129 | ~data: Js.t('postData)=?, 130 | ~timeout: int=?, 131 | ~withCredentials: bool=?, 132 | ~adapter: adapter('a, 'b)=?, 133 | ~auth: auth=?, 134 | ~responseType: string=?, 135 | ~xsrfCookieName: string=?, 136 | ~xsrfHeaderName: string=?, 137 | ~onUploadProgress: onProgress('uploadProgress)=?, 138 | ~onDownloadProgress: onProgress('downloadProgress)=?, 139 | ~maxContentLength: int=?, 140 | ~validateStatus: validateStatus=?, 141 | ~maxRedirects: int=?, 142 | ~socketPath: string=?, 143 | ~proxy: proxy=?, 144 | ~httpAgent: Axios_agent.Http.t=?, 145 | ~httpsAgent: Axios_agent.Https.t=?, 146 | unit 147 | ) => 148 | configWithUrl = 149 | ""; 150 | 151 | [@bs.module "axios"] 152 | external all: 153 | array(Js.Promise.t(response(_, _))) => 154 | Js.Promise.t(array(response(_, _))) = 155 | ""; 156 | 157 | [@bs.module "axios"] 158 | external all2: 159 | ( 160 | (Js.Promise.t(response('a0, 'b0)), Js.Promise.t(response('a1, 'b1))) 161 | ) => 162 | Js.Promise.t((response('a0, 'b0), response('a1, 'b1))) = 163 | "all"; 164 | 165 | [@bs.module "axios"] 166 | external all3: 167 | ( 168 | ( 169 | Js.Promise.t(response('a0, 'b0)), 170 | Js.Promise.t(response('a1, 'b1)), 171 | Js.Promise.t(response('a2, 'b2)), 172 | ) 173 | ) => 174 | Js.Promise.t( 175 | (response('a0, 'b0), response('a1, 'b1), response('a2, 'b2)), 176 | ) = 177 | "all"; 178 | 179 | [@bs.module "axios"] 180 | external all4: 181 | ( 182 | ( 183 | Js.Promise.t(response('a0, 'b0)), 184 | Js.Promise.t(response('a1, 'b1)), 185 | Js.Promise.t(response('a2, 'b2)), 186 | Js.Promise.t(response('a3, 'b3)), 187 | ) 188 | ) => 189 | Js.Promise.t( 190 | ( 191 | response('a0, 'b0), 192 | response('a1, 'b1), 193 | response('a2, 'b2), 194 | response('a3, 'b3), 195 | ), 196 | ) = 197 | "all"; 198 | 199 | [@bs.module "axios"] 200 | external all5: 201 | ( 202 | ( 203 | Js.Promise.t(response('a0, 'b0)), 204 | Js.Promise.t(response('a1, 'b1)), 205 | Js.Promise.t(response('a2, 'b2)), 206 | Js.Promise.t(response('a3, 'b3)), 207 | Js.Promise.t(response('a4, 'b4)), 208 | ) 209 | ) => 210 | Js.Promise.t( 211 | ( 212 | response('a0, 'b0), 213 | response('a1, 'b1), 214 | response('a2, 'b2), 215 | response('a3, 'b3), 216 | response('a4, 'b4), 217 | ), 218 | ) = 219 | "all"; 220 | 221 | [@bs.module "axios"] 222 | external all6: 223 | ( 224 | ( 225 | Js.Promise.t(response('a0, 'b0)), 226 | Js.Promise.t(response('a1, 'b1)), 227 | Js.Promise.t(response('a2, 'b2)), 228 | Js.Promise.t(response('a3, 'b3)), 229 | Js.Promise.t(response('a4, 'b4)), 230 | Js.Promise.t(response('a5, 'b5)), 231 | ) 232 | ) => 233 | Js.Promise.t( 234 | ( 235 | response('a0, 'b0), 236 | response('a1, 'b1), 237 | response('a2, 'b2), 238 | response('a3, 'b3), 239 | response('a4, 'b4), 240 | response('a5, 'b5), 241 | ), 242 | ) = 243 | "all"; 244 | 245 | [@bs.module "axios"] 246 | external all7: 247 | ( 248 | ( 249 | Js.Promise.t(response('a0, 'b0)), 250 | Js.Promise.t(response('a1, 'b1)), 251 | Js.Promise.t(response('a2, 'b2)), 252 | Js.Promise.t(response('a3, 'b3)), 253 | Js.Promise.t(response('a4, 'b4)), 254 | Js.Promise.t(response('a5, 'b5)), 255 | Js.Promise.t(response('a6, 'b6)), 256 | ) 257 | ) => 258 | Js.Promise.t( 259 | ( 260 | response('a0, 'b0), 261 | response('a1, 'b1), 262 | response('a2, 'b2), 263 | response('a3, 'b3), 264 | response('a4, 'b4), 265 | response('a5, 'b5), 266 | response('a6, 'b6), 267 | ), 268 | ) = 269 | "all"; 270 | 271 | [@bs.module "axios"] 272 | external all8: 273 | ( 274 | ( 275 | Js.Promise.t(response('a0, 'b0)), 276 | Js.Promise.t(response('a1, 'b1)), 277 | Js.Promise.t(response('a2, 'b2)), 278 | Js.Promise.t(response('a3, 'b3)), 279 | Js.Promise.t(response('a4, 'b4)), 280 | Js.Promise.t(response('a5, 'b5)), 281 | Js.Promise.t(response('a6, 'b6)), 282 | Js.Promise.t(response('a7, 'b7)), 283 | ) 284 | ) => 285 | Js.Promise.t( 286 | ( 287 | response('a0, 'b0), 288 | response('a1, 'b1), 289 | response('a2, 'b2), 290 | response('a3, 'b3), 291 | response('a4, 'b4), 292 | response('a5, 'b5), 293 | response('a6, 'b6), 294 | response('a7, 'b7), 295 | ), 296 | ) = 297 | "all"; 298 | 299 | [@bs.module "axios"] 300 | external all9: 301 | ( 302 | ( 303 | Js.Promise.t(response('a0, 'b0)), 304 | Js.Promise.t(response('a1, 'b1)), 305 | Js.Promise.t(response('a2, 'b2)), 306 | Js.Promise.t(response('a3, 'b3)), 307 | Js.Promise.t(response('a4, 'b4)), 308 | Js.Promise.t(response('a5, 'b5)), 309 | Js.Promise.t(response('a6, 'b6)), 310 | Js.Promise.t(response('a7, 'b7)), 311 | Js.Promise.t(response('a8, 'b8)), 312 | ) 313 | ) => 314 | Js.Promise.t( 315 | ( 316 | response('a0, 'b0), 317 | response('a1, 'b1), 318 | response('a2, 'b2), 319 | response('a3, 'b3), 320 | response('a4, 'b4), 321 | response('a5, 'b5), 322 | response('a6, 'b6), 323 | response('a7, 'b7), 324 | response('a8, 'b8), 325 | ), 326 | ) = 327 | "all"; 328 | 329 | [@bs.module "axios"] 330 | external all10: 331 | ( 332 | ( 333 | Js.Promise.t(response('a0, 'b0)), 334 | Js.Promise.t(response('a1, 'b1)), 335 | Js.Promise.t(response('a2, 'b2)), 336 | Js.Promise.t(response('a3, 'b3)), 337 | Js.Promise.t(response('a4, 'b4)), 338 | Js.Promise.t(response('a5, 'b5)), 339 | Js.Promise.t(response('a6, 'b6)), 340 | Js.Promise.t(response('a7, 'b7)), 341 | Js.Promise.t(response('a8, 'b8)), 342 | Js.Promise.t(response('a9, 'b9)), 343 | ) 344 | ) => 345 | Js.Promise.t( 346 | ( 347 | response('a0, 'b0), 348 | response('a1, 'b1), 349 | response('a2, 'b2), 350 | response('a3, 'b3), 351 | response('a4, 'b4), 352 | response('a5, 'b5), 353 | response('a6, 'b6), 354 | response('a7, 'b7), 355 | response('a8, 'b8), 356 | response('a9, 'b9), 357 | ), 358 | ) = 359 | "all"; 360 | 361 | [@bs.module "axios"] 362 | external request: configWithUrl => Js.Promise.t(response('a, 'b)) = ""; 363 | 364 | [@bs.module "axios"] 365 | external get: string => Js.Promise.t(response('a, 'b)) = ""; 366 | 367 | [@bs.module "axios"] 368 | external getc: (string, config) => Js.Promise.t(response('a, 'b)) = "get"; 369 | 370 | [@bs.module "axios"] 371 | external delete: string => Js.Promise.t(response('a, 'b)) = ""; 372 | 373 | [@bs.module "axios"] 374 | external deletec: (string, config) => Js.Promise.t(response('a, 'b)) = 375 | "delete"; 376 | 377 | [@bs.module "axios"] 378 | external post: string => Js.Promise.t(response('a, 'b)) = ""; 379 | 380 | [@bs.module "axios"] 381 | external postData: (string, Js.t('a)) => Js.Promise.t(response('b, 'c)) = 382 | "post"; 383 | 384 | [@bs.module "axios"] 385 | external postDatac: 386 | (string, Js.t('a), config) => Js.Promise.t(response('b, 'c)) = 387 | "post"; 388 | 389 | [@bs.module "axios"] 390 | external put: string => Js.Promise.t(response('a, 'b)) = ""; 391 | 392 | [@bs.module "axios"] 393 | external putData: (string, Js.t('a)) => Js.Promise.t(response('b, 'c)) = 394 | "put"; 395 | 396 | [@bs.module "axios"] 397 | external putDatac: 398 | (string, Js.t('a), config) => Js.Promise.t(response('b, 'c)) = 399 | "put"; 400 | 401 | [@bs.module "axios"] 402 | external patch: string => Js.Promise.t(response('a, 'b)) = ""; 403 | 404 | [@bs.module "axios"] 405 | external patchData: (string, Js.t('a)) => Js.Promise.t(response('b, 'c)) = 406 | "patch"; 407 | 408 | [@bs.module "axios"] 409 | external patchDatac: 410 | (string, Js.t('a), config) => Js.Promise.t(response('b, 'c)) = 411 | "patch"; 412 | 413 | module Instance = Axios_instance; 414 | module Agent = Axios_agent; -------------------------------------------------------------------------------- /src/axios.re: -------------------------------------------------------------------------------- 1 | open Axios_types; 2 | 3 | module Headers = { 4 | type t; 5 | 6 | external fromObj: Js.t({..}) => t = "%identity"; 7 | external fromDict: Js.Dict.t(string) => t = "%identity"; 8 | }; 9 | 10 | external makeResponseTransformer1: 11 | array('data => 'resultData) => responseTransformer('data, 'resultData) = 12 | "%identity"; 13 | 14 | let makeResponseTransformer1 = f => makeResponseTransformer1([|f|]); 15 | 16 | external makeResponseTransformer2: 17 | (('data => 'data0, 'data0 => 'resultData)) => 18 | responseTransformer('data, 'resultData) = 19 | "%identity"; 20 | 21 | let makeResponseTransformer2 = (f0, f1) => 22 | makeResponseTransformer2((f0, f1)); 23 | 24 | external makeResponseTransformer3: 25 | (('data => 'data0, 'data0 => 'data1, 'data1 => 'resultData)) => 26 | responseTransformer('data, 'resultData) = 27 | "%identity"; 28 | 29 | let makeResponseTransformer3 = (f0, f1, f2) => 30 | makeResponseTransformer3((f0, f1, f2)); 31 | 32 | external makeResponseTransformer4: 33 | ( 34 | ( 35 | 'data => 'data0, 36 | 'data0 => 'data1, 37 | 'data1 => 'data2, 38 | 'data2 => 'resultData, 39 | ) 40 | ) => 41 | responseTransformer('data, 'resultData) = 42 | "%identity"; 43 | 44 | let makeResponseTransformer4 = (f0, f1, f2, f3) => 45 | makeResponseTransformer4((f0, f1, f2, f3)); 46 | 47 | external makeResponseTransformer5: 48 | ( 49 | ( 50 | 'data => 'data0, 51 | 'data0 => 'data1, 52 | 'data1 => 'data2, 53 | 'data2 => 'data3, 54 | 'data3 => 'resultData, 55 | ) 56 | ) => 57 | responseTransformer('data, 'resultData) = 58 | "%identity"; 59 | 60 | let makeResponseTransformer5 = (f0, f1, f2, f3, f4) => 61 | makeResponseTransformer5((f0, f1, f2, f3, f4)); 62 | 63 | external makeRequestTransformer1: 64 | array(('data, Headers.t) => 'resultData) => 65 | requestTransformer('data, Headers.t, 'resultData) = 66 | "%identity"; 67 | 68 | let makeRequestTransformer1 = f => makeRequestTransformer1([|f|]); 69 | 70 | external makeRequestTransformer2: 71 | ((('data, Headers.t) => 'data0, ('data0, Headers.t) => 'resultData)) => 72 | requestTransformer('data, Headers.t, 'resultData) = 73 | "%identity"; 74 | 75 | let makeRequestTransformer2 = (f0, f1) => makeRequestTransformer2((f0, f1)); 76 | 77 | external makeRequestTransformer3: 78 | ( 79 | ( 80 | ('data, Headers.t) => 'data0, 81 | ('data0, Headers.t) => 'data1, 82 | ('data1, Headers.t) => 'resultData, 83 | ) 84 | ) => 85 | requestTransformer('data, Headers.t, 'resultData) = 86 | "%identity"; 87 | 88 | let makeRequestTransformer3 = (f0, f1, f2) => 89 | makeRequestTransformer3((f0, f1, f2)); 90 | 91 | external makeRequestTransformer4: 92 | ( 93 | ( 94 | ('data, Headers.t) => 'data0, 95 | ('data0, Headers.t) => 'data1, 96 | ('data1, Headers.t) => 'data2, 97 | ('data2, Headers.t) => 'resultData, 98 | ) 99 | ) => 100 | requestTransformer('data, Headers.t, 'resultData) = 101 | "%identity"; 102 | 103 | let makeRequestTransformer4 = (f0, f1, f2, f3) => 104 | makeRequestTransformer4((f0, f1, f2, f3)); 105 | 106 | external makeRequestTransformer5: 107 | ( 108 | ( 109 | ('data, Headers.t) => 'data0, 110 | ('data0, Headers.t) => 'data1, 111 | ('data1, Headers.t) => 'data2, 112 | ('data2, Headers.t) => 'data3, 113 | ('data3, Headers.t) => 'resultData, 114 | ) 115 | ) => 116 | requestTransformer('data, Headers.t, 'resultData) = 117 | "%identity"; 118 | 119 | let makeRequestTransformer5 = (f0, f1, f2, f3, f5) => 120 | makeRequestTransformer5((f0, f1, f2, f3, f5)); 121 | 122 | [@bs.obj] 123 | external makeConfig: 124 | ( 125 | ~url: string=?, 126 | ~_method: string=?, 127 | ~baseURL: string=?, 128 | ~transformRequest: requestTransformer( 129 | 'postData, 130 | Headers.t, 131 | 'resultPostData, 132 | ) 133 | =?, 134 | ~transformResponse: responseTransformer('data, 'resultData)=?, 135 | ~headers: Headers.t=?, 136 | ~params: Js.t('params)=?, 137 | ~paramsSerializer: paramsSerializer('params)=?, 138 | ~data: Js.t('postData)=?, 139 | ~timeout: int=?, 140 | ~withCredentials: bool=?, 141 | ~adapter: adapter('a, 'b)=?, 142 | ~auth: auth=?, 143 | ~responseType: string=?, 144 | ~xsrfCookieName: string=?, 145 | ~xsrfHeaderName: string=?, 146 | ~onUploadProgress: onProgress('uploadProgress)=?, 147 | ~onDownloadProgress: onProgress('downloadProgress)=?, 148 | ~maxContentLength: int=?, 149 | ~validateStatus: validateStatus=?, 150 | ~maxRedirects: int=?, 151 | ~socketPath: string=?, 152 | ~proxy: proxy=?, 153 | ~httpAgent: Axios_agent.Http.t=?, 154 | ~httpsAgent: Axios_agent.Https.t=?, 155 | unit 156 | ) => 157 | config = 158 | ""; 159 | 160 | [@bs.obj] 161 | external makeConfigWithUrl: 162 | ( 163 | ~url: string, 164 | ~_method: string=?, 165 | ~baseURL: string=?, 166 | ~transformRequest: requestTransformer( 167 | 'postData, 168 | Headers.t, 169 | 'resultPostData, 170 | ) 171 | =?, 172 | ~transformResponse: responseTransformer('data, 'resultData)=?, 173 | ~headers: Headers.t=?, 174 | ~params: Js.t('params)=?, 175 | ~paramsSerializer: paramsSerializer('params)=?, 176 | ~data: Js.t('postData)=?, 177 | ~timeout: int=?, 178 | ~withCredentials: bool=?, 179 | ~adapter: adapter('a, 'b)=?, 180 | ~auth: auth=?, 181 | ~responseType: string=?, 182 | ~xsrfCookieName: string=?, 183 | ~xsrfHeaderName: string=?, 184 | ~onUploadProgress: onProgress('uploadProgress)=?, 185 | ~onDownloadProgress: onProgress('downloadProgress)=?, 186 | ~maxContentLength: int=?, 187 | ~validateStatus: validateStatus=?, 188 | ~maxRedirects: int=?, 189 | ~socketPath: string=?, 190 | ~proxy: proxy=?, 191 | ~httpAgent: Axios_agent.Http.t=?, 192 | ~httpsAgent: Axios_agent.Https.t=?, 193 | unit 194 | ) => 195 | configWithUrl = 196 | ""; 197 | 198 | [@bs.module "axios"] 199 | external all: 200 | array(Js.Promise.t(response(_, _))) => 201 | Js.Promise.t(array(response(_, _))) = 202 | ""; 203 | 204 | [@bs.module "axios"] 205 | external all2: 206 | ( 207 | (Js.Promise.t(response('a0, 'b0)), Js.Promise.t(response('a1, 'b1))) 208 | ) => 209 | Js.Promise.t((response('a0, 'b0), response('a1, 'b1))) = 210 | "all"; 211 | 212 | [@bs.module "axios"] 213 | external all3: 214 | ( 215 | ( 216 | Js.Promise.t(response('a0, 'b0)), 217 | Js.Promise.t(response('a1, 'b1)), 218 | Js.Promise.t(response('a2, 'b2)), 219 | ) 220 | ) => 221 | Js.Promise.t( 222 | (response('a0, 'b0), response('a1, 'b1), response('a2, 'b2)), 223 | ) = 224 | "all"; 225 | 226 | [@bs.module "axios"] 227 | external all4: 228 | ( 229 | ( 230 | Js.Promise.t(response('a0, 'b0)), 231 | Js.Promise.t(response('a1, 'b1)), 232 | Js.Promise.t(response('a2, 'b2)), 233 | Js.Promise.t(response('a3, 'b3)), 234 | ) 235 | ) => 236 | Js.Promise.t( 237 | ( 238 | response('a0, 'b0), 239 | response('a1, 'b1), 240 | response('a2, 'b2), 241 | response('a3, 'b3), 242 | ), 243 | ) = 244 | "all"; 245 | 246 | [@bs.module "axios"] 247 | external all5: 248 | ( 249 | ( 250 | Js.Promise.t(response('a0, 'b0)), 251 | Js.Promise.t(response('a1, 'b1)), 252 | Js.Promise.t(response('a2, 'b2)), 253 | Js.Promise.t(response('a3, 'b3)), 254 | Js.Promise.t(response('a4, 'b4)), 255 | ) 256 | ) => 257 | Js.Promise.t( 258 | ( 259 | response('a0, 'b0), 260 | response('a1, 'b1), 261 | response('a2, 'b2), 262 | response('a3, 'b3), 263 | response('a4, 'b4), 264 | ), 265 | ) = 266 | "all"; 267 | 268 | [@bs.module "axios"] 269 | external all6: 270 | ( 271 | ( 272 | Js.Promise.t(response('a0, 'b0)), 273 | Js.Promise.t(response('a1, 'b1)), 274 | Js.Promise.t(response('a2, 'b2)), 275 | Js.Promise.t(response('a3, 'b3)), 276 | Js.Promise.t(response('a4, 'b4)), 277 | Js.Promise.t(response('a5, 'b5)), 278 | ) 279 | ) => 280 | Js.Promise.t( 281 | ( 282 | response('a0, 'b0), 283 | response('a1, 'b1), 284 | response('a2, 'b2), 285 | response('a3, 'b3), 286 | response('a4, 'b4), 287 | response('a5, 'b5), 288 | ), 289 | ) = 290 | "all"; 291 | 292 | [@bs.module "axios"] 293 | external all7: 294 | ( 295 | ( 296 | Js.Promise.t(response('a0, 'b0)), 297 | Js.Promise.t(response('a1, 'b1)), 298 | Js.Promise.t(response('a2, 'b2)), 299 | Js.Promise.t(response('a3, 'b3)), 300 | Js.Promise.t(response('a4, 'b4)), 301 | Js.Promise.t(response('a5, 'b5)), 302 | Js.Promise.t(response('a6, 'b6)), 303 | ) 304 | ) => 305 | Js.Promise.t( 306 | ( 307 | response('a0, 'b0), 308 | response('a1, 'b1), 309 | response('a2, 'b2), 310 | response('a3, 'b3), 311 | response('a4, 'b4), 312 | response('a5, 'b5), 313 | response('a6, 'b6), 314 | ), 315 | ) = 316 | "all"; 317 | 318 | [@bs.module "axios"] 319 | external all8: 320 | ( 321 | ( 322 | Js.Promise.t(response('a0, 'b0)), 323 | Js.Promise.t(response('a1, 'b1)), 324 | Js.Promise.t(response('a2, 'b2)), 325 | Js.Promise.t(response('a3, 'b3)), 326 | Js.Promise.t(response('a4, 'b4)), 327 | Js.Promise.t(response('a5, 'b5)), 328 | Js.Promise.t(response('a6, 'b6)), 329 | Js.Promise.t(response('a7, 'b7)), 330 | ) 331 | ) => 332 | Js.Promise.t( 333 | ( 334 | response('a0, 'b0), 335 | response('a1, 'b1), 336 | response('a2, 'b2), 337 | response('a3, 'b3), 338 | response('a4, 'b4), 339 | response('a5, 'b5), 340 | response('a6, 'b6), 341 | response('a7, 'b7), 342 | ), 343 | ) = 344 | "all"; 345 | 346 | [@bs.module "axios"] 347 | external all9: 348 | ( 349 | ( 350 | Js.Promise.t(response('a0, 'b0)), 351 | Js.Promise.t(response('a1, 'b1)), 352 | Js.Promise.t(response('a2, 'b2)), 353 | Js.Promise.t(response('a3, 'b3)), 354 | Js.Promise.t(response('a4, 'b4)), 355 | Js.Promise.t(response('a5, 'b5)), 356 | Js.Promise.t(response('a6, 'b6)), 357 | Js.Promise.t(response('a7, 'b7)), 358 | Js.Promise.t(response('a8, 'b8)), 359 | ) 360 | ) => 361 | Js.Promise.t( 362 | ( 363 | response('a0, 'b0), 364 | response('a1, 'b1), 365 | response('a2, 'b2), 366 | response('a3, 'b3), 367 | response('a4, 'b4), 368 | response('a5, 'b5), 369 | response('a6, 'b6), 370 | response('a7, 'b7), 371 | response('a8, 'b8), 372 | ), 373 | ) = 374 | "all"; 375 | 376 | [@bs.module "axios"] 377 | external all10: 378 | ( 379 | ( 380 | Js.Promise.t(response('a0, 'b0)), 381 | Js.Promise.t(response('a1, 'b1)), 382 | Js.Promise.t(response('a2, 'b2)), 383 | Js.Promise.t(response('a3, 'b3)), 384 | Js.Promise.t(response('a4, 'b4)), 385 | Js.Promise.t(response('a5, 'b5)), 386 | Js.Promise.t(response('a6, 'b6)), 387 | Js.Promise.t(response('a7, 'b7)), 388 | Js.Promise.t(response('a8, 'b8)), 389 | Js.Promise.t(response('a9, 'b9)), 390 | ) 391 | ) => 392 | Js.Promise.t( 393 | ( 394 | response('a0, 'b0), 395 | response('a1, 'b1), 396 | response('a2, 'b2), 397 | response('a3, 'b3), 398 | response('a4, 'b4), 399 | response('a5, 'b5), 400 | response('a6, 'b6), 401 | response('a7, 'b7), 402 | response('a8, 'b8), 403 | response('a9, 'b9), 404 | ), 405 | ) = 406 | "all"; 407 | 408 | [@bs.module "axios"] 409 | external request: configWithUrl => Js.Promise.t(response('a, 'b)) = ""; 410 | 411 | [@bs.module "axios"] 412 | external get: string => Js.Promise.t(response('a, 'b)) = ""; 413 | 414 | [@bs.module "axios"] 415 | external getc: (string, config) => Js.Promise.t(response('a, 'b)) = "get"; 416 | 417 | [@bs.module "axios"] 418 | external delete: string => Js.Promise.t(response('a, 'b)) = ""; 419 | 420 | [@bs.module "axios"] 421 | external deletec: (string, config) => Js.Promise.t(response('a, 'b)) = 422 | "delete"; 423 | 424 | [@bs.module "axios"] 425 | external post: string => Js.Promise.t(response('a, 'b)) = ""; 426 | 427 | [@bs.module "axios"] 428 | external postData: (string, Js.t('a)) => Js.Promise.t(response('b, 'c)) = 429 | "post"; 430 | 431 | [@bs.module "axios"] 432 | external postDatac: 433 | (string, Js.t('a), config) => Js.Promise.t(response('b, 'c)) = 434 | "post"; 435 | 436 | [@bs.module "axios"] 437 | external put: string => Js.Promise.t(response('a, 'b)) = ""; 438 | 439 | [@bs.module "axios"] 440 | external putData: (string, Js.t('a)) => Js.Promise.t(response('b, 'c)) = 441 | "put"; 442 | 443 | [@bs.module "axios"] 444 | external putDatac: 445 | (string, Js.t('a), config) => Js.Promise.t(response('b, 'c)) = 446 | "put"; 447 | 448 | [@bs.module "axios"] 449 | external patch: string => Js.Promise.t(response('a, 'b)) = ""; 450 | 451 | [@bs.module "axios"] 452 | external patchData: (string, Js.t('a)) => Js.Promise.t(response('b, 'c)) = 453 | "patch"; 454 | 455 | [@bs.module "axios"] 456 | external patchDatac: 457 | (string, Js.t('a), config) => Js.Promise.t(response('b, 'c)) = 458 | "patch"; 459 | 460 | module Instance = Axios_instance; 461 | module Agent = Axios_agent; --------------------------------------------------------------------------------