@k-int/bruno-shared-scripts 1.2.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/es/index.js +103 -36
- package/package.json +10 -4
- package/src/auth/auth-utils.js +12 -0
- package/src/auth/login.js +17 -11
- package/src/bruno-globals-provider.js +39 -0
- package/src/folioRequest.js +5 -3
- package/src/index.js +15 -0
- package/src/utils/baseUrl.js +9 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
# [2.0.0](https://gitlab.com/knowledge-integration/bruno/bruno-shared-scripts/compare/v1.2.1...v2.0.0) (2026-01-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
* feat!: Bruno version 3 ([d028018](https://gitlab.com/knowledge-integration/bruno/bruno-shared-scripts/commit/d02801860cb1d230ea17575145c6787ab905c5bd))
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
### BREAKING CHANGES
|
|
8
|
+
|
|
9
|
+
* init function is now REQUIRED, setting up the global console, bru and req instances
|
|
10
|
+
|
|
1
11
|
## [1.2.1](https://gitlab.com/knowledge-integration/bruno/bruno-shared-scripts/compare/v1.2.0...v1.2.1) (2025-10-30)
|
|
2
12
|
|
|
3
13
|
|
package/es/index.js
CHANGED
|
@@ -19,17 +19,57 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
19
19
|
};
|
|
20
20
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
21
|
|
|
22
|
+
// src/bruno-globals-provider.js
|
|
23
|
+
var bruInstance, logger, requestInstance, setGlobals, getBru, getConsole, getReq;
|
|
24
|
+
var init_bruno_globals_provider = __esm({
|
|
25
|
+
"src/bruno-globals-provider.js"() {
|
|
26
|
+
bruInstance = null;
|
|
27
|
+
logger = console;
|
|
28
|
+
requestInstance = null;
|
|
29
|
+
setGlobals = ({
|
|
30
|
+
bruInstance: theBruInstance,
|
|
31
|
+
logger: theLogger,
|
|
32
|
+
requestInstance: theRequestInstance
|
|
33
|
+
}) => {
|
|
34
|
+
bruInstance = theBruInstance;
|
|
35
|
+
logger = theLogger;
|
|
36
|
+
requestInstance = theRequestInstance;
|
|
37
|
+
};
|
|
38
|
+
getBru = () => {
|
|
39
|
+
if (!bruInstance) {
|
|
40
|
+
throw new Error("Bruno instance not initialized. Call init({ bruInstance: <bruInstance> }) first.");
|
|
41
|
+
}
|
|
42
|
+
return bruInstance;
|
|
43
|
+
};
|
|
44
|
+
getConsole = () => {
|
|
45
|
+
if (!logger) {
|
|
46
|
+
throw new Error("Bruno logger not initialized. Call init({ logger: console }) first.");
|
|
47
|
+
}
|
|
48
|
+
return logger;
|
|
49
|
+
};
|
|
50
|
+
getReq = () => {
|
|
51
|
+
if (!requestInstance) {
|
|
52
|
+
throw new Error("Bruno logger not initialized. Call init({ requestInstance: <requestInstance> }) first.");
|
|
53
|
+
}
|
|
54
|
+
return requestInstance;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
22
59
|
// src/utils/baseUrl.js
|
|
23
|
-
var
|
|
60
|
+
var getBaseUrl, setBaseUrl;
|
|
24
61
|
var init_baseUrl = __esm({
|
|
25
62
|
"src/utils/baseUrl.js"() {
|
|
26
|
-
|
|
27
|
-
okapiUrl = bru.getEnvVar("okapiUrl");
|
|
28
|
-
okapiPort = bru.getEnvVar("okapiPort");
|
|
63
|
+
init_bruno_globals_provider();
|
|
29
64
|
getBaseUrl = () => {
|
|
65
|
+
const bru = getBru();
|
|
30
66
|
return bru.getEnvVar("baseUrl");
|
|
31
67
|
};
|
|
32
68
|
setBaseUrl = () => {
|
|
69
|
+
const bru = getBru();
|
|
70
|
+
const okapiProtocol = bru.getEnvVar("okapiProtocol");
|
|
71
|
+
const okapiUrl = bru.getEnvVar("okapiUrl");
|
|
72
|
+
const okapiPort = bru.getEnvVar("okapiPort");
|
|
33
73
|
const baseUrl = `${okapiProtocol}://${okapiUrl}${okapiPort ? ":" + okapiPort : ""}`;
|
|
34
74
|
bru.setEnvVar("baseUrl", baseUrl);
|
|
35
75
|
};
|
|
@@ -40,19 +80,25 @@ var init_baseUrl = __esm({
|
|
|
40
80
|
var getTenant, getToken, getIgnoreCreds, getUserName, getPassword, getCreds;
|
|
41
81
|
var init_auth_utils = __esm({
|
|
42
82
|
"src/auth/auth-utils.js"() {
|
|
83
|
+
init_bruno_globals_provider();
|
|
43
84
|
getTenant = () => {
|
|
85
|
+
const bru = getBru();
|
|
44
86
|
return bru.getEnvVar("x-okapi-tenant-value");
|
|
45
87
|
};
|
|
46
88
|
getToken = () => {
|
|
89
|
+
const bru = getBru();
|
|
47
90
|
return bru.getVar("x-okapi-token");
|
|
48
91
|
};
|
|
49
92
|
getIgnoreCreds = () => {
|
|
93
|
+
const bru = getBru();
|
|
50
94
|
return bru.getEnvVar("ignoreCreds");
|
|
51
95
|
};
|
|
52
96
|
getUserName = () => {
|
|
97
|
+
const bru = getBru();
|
|
53
98
|
return bru.getEnvVar("username");
|
|
54
99
|
};
|
|
55
100
|
getPassword = () => {
|
|
101
|
+
const bru = getBru();
|
|
56
102
|
return bru.getEnvVar("password");
|
|
57
103
|
};
|
|
58
104
|
getCreds = () => {
|
|
@@ -67,12 +113,13 @@ var init_auth_utils = __esm({
|
|
|
67
113
|
});
|
|
68
114
|
|
|
69
115
|
// src/auth/login.js
|
|
70
|
-
|
|
116
|
+
import axios from "axios";
|
|
117
|
+
var getLoginWithExpiryUrl, getLoginUrl, doALogin, loginFunc, login, loginWithExpiry;
|
|
71
118
|
var init_login = __esm({
|
|
72
119
|
"src/auth/login.js"() {
|
|
73
120
|
init_utils();
|
|
74
121
|
init_auth_utils();
|
|
75
|
-
|
|
122
|
+
init_bruno_globals_provider();
|
|
76
123
|
getLoginWithExpiryUrl = () => {
|
|
77
124
|
const baseUrl = getBaseUrl();
|
|
78
125
|
return `${baseUrl}/bl-users/login-with-expiry`;
|
|
@@ -86,7 +133,9 @@ var init_login = __esm({
|
|
|
86
133
|
withExpiry = true,
|
|
87
134
|
suppressConsole = true
|
|
88
135
|
} = {}) => {
|
|
89
|
-
|
|
136
|
+
const logger2 = getConsole();
|
|
137
|
+
const req = getReq();
|
|
138
|
+
!suppressConsole && logger2.log(`doALogin(${urlOverride}, ${withExpiry}, ${suppressConsole})`);
|
|
90
139
|
const ignoreCreds = getIgnoreCreds();
|
|
91
140
|
const preExistingHeaders = req.getHeaders();
|
|
92
141
|
const preExistingTenant = preExistingHeaders[Object.keys(preExistingHeaders).find((key) => key.toLowerCase() === "X-Okapi-Tenant".toLowerCase())];
|
|
@@ -98,7 +147,7 @@ var init_login = __esm({
|
|
|
98
147
|
const creds = getCreds();
|
|
99
148
|
const tenant = getTenant();
|
|
100
149
|
const config = getBaseRequestConfig();
|
|
101
|
-
!suppressConsole &&
|
|
150
|
+
!suppressConsole && logger2.log(`Sending login request to ${url} with creds ${JSON.stringify(creds)} for tenant: ${tenant}`);
|
|
102
151
|
return await axios.post(
|
|
103
152
|
url,
|
|
104
153
|
creds,
|
|
@@ -111,9 +160,12 @@ var init_login = __esm({
|
|
|
111
160
|
withExpiry = true,
|
|
112
161
|
suppressConsole = true
|
|
113
162
|
} = {}) => {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
163
|
+
const logger2 = getConsole();
|
|
164
|
+
const bru = getBru();
|
|
165
|
+
const req = getReq();
|
|
166
|
+
!suppressConsole && logger2.log(`loginFunc(${urlOverride}, ${withExpiry}, ${suppressConsole})`);
|
|
167
|
+
await doALogin({ req, urlOverride, withExpiry, suppressConsole }).then((loginResp) => {
|
|
168
|
+
!suppressConsole && logger2.log("Setting request headers...");
|
|
117
169
|
req.setHeader("Cookie", loginResp.headers["set-cookie"]);
|
|
118
170
|
const token = loginResp.headers["x-okapi-token"];
|
|
119
171
|
bru.setVar("x-okapi-token-value", token);
|
|
@@ -121,11 +173,11 @@ var init_login = __esm({
|
|
|
121
173
|
req.setHeader("x-okapi-token", getToken());
|
|
122
174
|
}
|
|
123
175
|
}).catch((err) => {
|
|
124
|
-
|
|
176
|
+
logger2.error("Failed to login to folio: %o", err);
|
|
125
177
|
});
|
|
126
178
|
};
|
|
127
|
-
login = (urlOverride) => loginFunc({ urlOverride, withExpiry: false });
|
|
128
|
-
loginWithExpiry = (urlOverride) => loginFunc({ urlOverride });
|
|
179
|
+
login = (urlOverride, suppressConsole) => loginFunc({ urlOverride, withExpiry: false, suppressConsole });
|
|
180
|
+
loginWithExpiry = (urlOverride, suppressConsole) => loginFunc({ urlOverride, suppressConsole });
|
|
129
181
|
}
|
|
130
182
|
});
|
|
131
183
|
|
|
@@ -183,46 +235,61 @@ var init_utils = __esm({
|
|
|
183
235
|
});
|
|
184
236
|
|
|
185
237
|
// src/index.js
|
|
186
|
-
|
|
187
|
-
__export(index_exports, {
|
|
188
|
-
doALogin: () => doALogin,
|
|
189
|
-
getBaseRequestConfig: () => getBaseRequestConfig,
|
|
190
|
-
getBaseUrl: () => getBaseUrl,
|
|
191
|
-
getCreds: () => getCreds,
|
|
192
|
-
getFolioAxios: () => getFolioAxios,
|
|
193
|
-
getIgnoreCreds: () => getIgnoreCreds,
|
|
194
|
-
getLoginUrl: () => getLoginUrl,
|
|
195
|
-
getLoginWithExpiryUrl: () => getLoginWithExpiryUrl,
|
|
196
|
-
getPassword: () => getPassword,
|
|
197
|
-
getTenant: () => getTenant,
|
|
198
|
-
getToken: () => getToken,
|
|
199
|
-
getUserName: () => getUserName,
|
|
200
|
-
login: () => login,
|
|
201
|
-
loginWithExpiry: () => loginWithExpiry,
|
|
202
|
-
setBaseUrl: () => setBaseUrl
|
|
203
|
-
});
|
|
204
|
-
module.exports = __toCommonJS(index_exports);
|
|
238
|
+
init_bruno_globals_provider();
|
|
205
239
|
init_utils();
|
|
206
240
|
init_auth();
|
|
207
241
|
|
|
208
242
|
// src/folioRequest.js
|
|
243
|
+
init_bruno_globals_provider();
|
|
244
|
+
import axios2 from "axios";
|
|
209
245
|
var { doALogin: doALogin2 } = (init_auth(), __toCommonJS(auth_exports));
|
|
210
|
-
var axios2 = require("axios");
|
|
211
246
|
var { getBaseRequestConfig: getBaseRequestConfig2 } = (init_utils(), __toCommonJS(utils_exports));
|
|
212
247
|
var getFolioAxios = async ({
|
|
213
248
|
urlOverride = void 0,
|
|
214
249
|
withExpiry = true,
|
|
215
250
|
suppressConsole = true
|
|
216
251
|
} = {}) => {
|
|
252
|
+
const logger2 = getConsole();
|
|
217
253
|
return doALogin2({ urlOverride, withExpiry, suppressConsole }).then((loginResp) => {
|
|
218
254
|
const config = getBaseRequestConfig2();
|
|
219
255
|
config.headers.Cookie = loginResp.headers["set-cookie"];
|
|
220
256
|
if (!withExpiry) {
|
|
221
257
|
config.headers["x-okapi-token"] = loginResp.headers["x-okapi-token"];
|
|
222
258
|
}
|
|
223
|
-
!suppressConsole &&
|
|
259
|
+
!suppressConsole && logger2.log("folioRequest ready with config: %o", config);
|
|
224
260
|
return axios2.create(config);
|
|
225
261
|
}).catch((err) => {
|
|
226
|
-
|
|
262
|
+
logger2.error("Failed to login to folio: %o", err);
|
|
227
263
|
});
|
|
228
264
|
};
|
|
265
|
+
|
|
266
|
+
// src/index.js
|
|
267
|
+
var init = ({
|
|
268
|
+
bruInstance: bruInstance2,
|
|
269
|
+
logger: logger2,
|
|
270
|
+
requestInstance: requestInstance2
|
|
271
|
+
}) => {
|
|
272
|
+
setGlobals({
|
|
273
|
+
bruInstance: bruInstance2,
|
|
274
|
+
logger: logger2,
|
|
275
|
+
requestInstance: requestInstance2
|
|
276
|
+
});
|
|
277
|
+
};
|
|
278
|
+
export {
|
|
279
|
+
doALogin,
|
|
280
|
+
getBaseRequestConfig,
|
|
281
|
+
getBaseUrl,
|
|
282
|
+
getCreds,
|
|
283
|
+
getFolioAxios,
|
|
284
|
+
getIgnoreCreds,
|
|
285
|
+
getLoginUrl,
|
|
286
|
+
getLoginWithExpiryUrl,
|
|
287
|
+
getPassword,
|
|
288
|
+
getTenant,
|
|
289
|
+
getToken,
|
|
290
|
+
getUserName,
|
|
291
|
+
init,
|
|
292
|
+
login,
|
|
293
|
+
loginWithExpiry,
|
|
294
|
+
setBaseUrl
|
|
295
|
+
};
|
package/package.json
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@k-int/bruno-shared-scripts",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"exports": "./es/index.js",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
9
|
-
"build": "esbuild ./src/index.js --bundle --format=
|
|
9
|
+
"build-es": "esbuild ./src/index.js --bundle --format=esm --outdir=es --external:axios --allow-overwrite",
|
|
10
|
+
"build-cjs": "esbuild ./src/index.js --bundle --format=cjs --outdir=cjs --external:axios --out-extension:.js=.cjs --allow-overwrite",
|
|
11
|
+
"__deprecated_build": "npm run build-es && npm run build-cjs",
|
|
12
|
+
"build": "npm run build-es",
|
|
10
13
|
"semantic-release": "semantic-release"
|
|
11
14
|
},
|
|
12
15
|
"devDependencies": {
|
|
13
|
-
"esbuild": "^0.25.2",
|
|
14
16
|
"@semantic-release/changelog": "^6.0.3",
|
|
15
17
|
"@semantic-release/git": "^10.0.1",
|
|
16
|
-
"@semantic-release/gitlab": "^13.2.9"
|
|
18
|
+
"@semantic-release/gitlab": "^13.2.9",
|
|
19
|
+
"esbuild": "^0.25.2"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"axios": "^1.13.2"
|
|
17
23
|
}
|
|
18
24
|
}
|
package/src/auth/auth-utils.js
CHANGED
|
@@ -1,20 +1,32 @@
|
|
|
1
|
+
import { getBru } from '../bruno-globals-provider.js';
|
|
2
|
+
|
|
1
3
|
const getTenant = () => {
|
|
4
|
+
const bru = getBru();
|
|
5
|
+
|
|
2
6
|
return bru.getEnvVar("x-okapi-tenant-value")
|
|
3
7
|
};
|
|
4
8
|
|
|
5
9
|
const getToken = () => {
|
|
10
|
+
const bru = getBru();
|
|
11
|
+
|
|
6
12
|
return bru.getVar("x-okapi-token")
|
|
7
13
|
};
|
|
8
14
|
|
|
9
15
|
const getIgnoreCreds = () => {
|
|
16
|
+
const bru = getBru();
|
|
17
|
+
|
|
10
18
|
return bru.getEnvVar("ignoreCreds")
|
|
11
19
|
}
|
|
12
20
|
|
|
13
21
|
const getUserName = () => {
|
|
22
|
+
const bru = getBru();
|
|
23
|
+
|
|
14
24
|
return bru.getEnvVar("username")
|
|
15
25
|
}
|
|
16
26
|
|
|
17
27
|
const getPassword = () => {
|
|
28
|
+
const bru = getBru();
|
|
29
|
+
|
|
18
30
|
return bru.getEnvVar("password")
|
|
19
31
|
}
|
|
20
32
|
|
package/src/auth/login.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import axios from 'axios';
|
|
2
2
|
import { getBaseRequestConfig, getBaseUrl } from "../utils";
|
|
3
3
|
import { getCreds, getIgnoreCreds, getTenant, getToken } from './auth-utils';
|
|
4
|
+
import { getBru, getConsole, getReq } from '../bruno-globals-provider.js';
|
|
4
5
|
|
|
5
|
-
const axios = require('axios'); // This comes from bruno context...
|
|
6
|
+
// const axios = require('axios'); // This no longer comes from bruno context...
|
|
6
7
|
|
|
7
8
|
// Right now login-with-expiry won't work against localhost
|
|
8
9
|
const getLoginWithExpiryUrl = () => {
|
|
@@ -20,8 +21,10 @@ const doALogin = async ({
|
|
|
20
21
|
withExpiry = true,
|
|
21
22
|
suppressConsole = true
|
|
22
23
|
} = {}) => {
|
|
23
|
-
|
|
24
|
+
const logger = getConsole();
|
|
25
|
+
const req = getReq();
|
|
24
26
|
|
|
27
|
+
!suppressConsole && logger.log(`doALogin(${urlOverride}, ${withExpiry}, ${suppressConsole})`);
|
|
25
28
|
const ignoreCreds = getIgnoreCreds();
|
|
26
29
|
//console.log("URL OVERRIDE: %o", urlOverride)
|
|
27
30
|
|
|
@@ -34,14 +37,13 @@ const doALogin = async ({
|
|
|
34
37
|
if (!preExistingTenant) {
|
|
35
38
|
req.setHeader('x-okapi-tenant', getTenant()) // Keep an eye on this in PM we needed some funky stuff for "disabled" headers
|
|
36
39
|
}
|
|
37
|
-
|
|
38
40
|
// Way to ignore creds for local endpoints
|
|
39
41
|
if (!ignoreCreds || ignoreCreds === false) {
|
|
40
42
|
const url = urlOverride ?? (withExpiry ? getLoginWithExpiryUrl() : getLoginUrl());
|
|
41
43
|
const creds = getCreds();
|
|
42
44
|
const tenant = getTenant();
|
|
43
45
|
const config = getBaseRequestConfig();
|
|
44
|
-
!suppressConsole &&
|
|
46
|
+
!suppressConsole && logger.log(`Sending login request to ${url} with creds ${JSON.stringify(creds)} for tenant: ${tenant}`);
|
|
45
47
|
|
|
46
48
|
return await axios.post(
|
|
47
49
|
url,
|
|
@@ -56,10 +58,14 @@ const loginFunc = async ({
|
|
|
56
58
|
withExpiry = true,
|
|
57
59
|
suppressConsole = true
|
|
58
60
|
} = {}) => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
const logger = getConsole();
|
|
62
|
+
const bru = getBru();
|
|
63
|
+
const req = getReq();
|
|
64
|
+
|
|
65
|
+
!suppressConsole && logger.log(`loginFunc(${urlOverride}, ${withExpiry}, ${suppressConsole})`);
|
|
66
|
+
await doALogin({ req, urlOverride, withExpiry, suppressConsole })
|
|
61
67
|
.then((loginResp) => {
|
|
62
|
-
!suppressConsole &&
|
|
68
|
+
!suppressConsole && logger.log("Setting request headers...")
|
|
63
69
|
// We can't seem to set the cookie jar programatically, so directly set cookies on request instead
|
|
64
70
|
req.setHeader('Cookie', loginResp.headers["set-cookie"])
|
|
65
71
|
|
|
@@ -72,12 +78,12 @@ const loginFunc = async ({
|
|
|
72
78
|
}
|
|
73
79
|
})
|
|
74
80
|
.catch(err => {
|
|
75
|
-
|
|
81
|
+
logger.error("Failed to login to folio: %o", err)
|
|
76
82
|
});
|
|
77
83
|
}
|
|
78
84
|
|
|
79
|
-
const login = (urlOverride) => loginFunc({ urlOverride, withExpiry: false });
|
|
80
|
-
const loginWithExpiry = (urlOverride) => loginFunc({ urlOverride });
|
|
85
|
+
const login = (urlOverride, suppressConsole) => loginFunc({ urlOverride, withExpiry: false, suppressConsole });
|
|
86
|
+
const loginWithExpiry = (urlOverride, suppressConsole) => loginFunc({ urlOverride, suppressConsole });
|
|
81
87
|
|
|
82
88
|
export {
|
|
83
89
|
doALogin,
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Previously bruno globals were available to third party modules.
|
|
2
|
+
// This is no longer the case, and instead must be initialised.
|
|
3
|
+
// I don't love this model, but it will allow us to continue on as we have been working.
|
|
4
|
+
|
|
5
|
+
let bruInstance = null;
|
|
6
|
+
let logger = console; // Default to standard node console
|
|
7
|
+
|
|
8
|
+
let requestInstance = null;
|
|
9
|
+
|
|
10
|
+
export const setGlobals = ({
|
|
11
|
+
bruInstance: theBruInstance,
|
|
12
|
+
logger: theLogger,
|
|
13
|
+
requestInstance: theRequestInstance,
|
|
14
|
+
}) => {
|
|
15
|
+
bruInstance = theBruInstance;
|
|
16
|
+
logger = theLogger;
|
|
17
|
+
requestInstance = theRequestInstance;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const getBru = () => {
|
|
21
|
+
if (!bruInstance) {
|
|
22
|
+
throw new Error("Bruno instance not initialized. Call init({ bruInstance: <bruInstance> }) first.");
|
|
23
|
+
}
|
|
24
|
+
return bruInstance;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const getConsole = () => {
|
|
28
|
+
if (!logger) {
|
|
29
|
+
throw new Error("Bruno logger not initialized. Call init({ logger: console }) first.");
|
|
30
|
+
}
|
|
31
|
+
return logger;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const getReq = () => {
|
|
35
|
+
if (!requestInstance) {
|
|
36
|
+
throw new Error("Bruno logger not initialized. Call init({ requestInstance: <requestInstance> }) first.");
|
|
37
|
+
}
|
|
38
|
+
return requestInstance;
|
|
39
|
+
};
|
package/src/folioRequest.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { getConsole } from './bruno-globals-provider.js';
|
|
1
3
|
const { doALogin } = require('./auth');
|
|
2
4
|
|
|
3
|
-
const axios = require('axios');
|
|
4
5
|
const { getBaseRequestConfig } = require('./utils');
|
|
5
6
|
|
|
6
7
|
export const getFolioAxios = async ({
|
|
@@ -8,6 +9,7 @@ export const getFolioAxios = async ({
|
|
|
8
9
|
withExpiry = true,
|
|
9
10
|
suppressConsole = true
|
|
10
11
|
} = {}) => {
|
|
12
|
+
const logger = getConsole();
|
|
11
13
|
return doALogin({ urlOverride, withExpiry, suppressConsole }).then(loginResp => {
|
|
12
14
|
|
|
13
15
|
const config = getBaseRequestConfig()
|
|
@@ -18,9 +20,9 @@ export const getFolioAxios = async ({
|
|
|
18
20
|
config.headers['x-okapi-token'] = loginResp.headers["x-okapi-token"]
|
|
19
21
|
}
|
|
20
22
|
|
|
21
|
-
!suppressConsole &&
|
|
23
|
+
!suppressConsole && logger.log("folioRequest ready with config: %o", config);
|
|
22
24
|
return axios.create(config);
|
|
23
25
|
}).catch(err => {
|
|
24
|
-
|
|
26
|
+
logger.error("Failed to login to folio: %o", err)
|
|
25
27
|
})
|
|
26
28
|
}
|
package/src/index.js
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
import { setGlobals } from './bruno-globals-provider';
|
|
2
|
+
|
|
3
|
+
// Initialising the bruno scope at the top of a request script
|
|
4
|
+
export const init = ({
|
|
5
|
+
bruInstance,
|
|
6
|
+
logger,
|
|
7
|
+
requestInstance,
|
|
8
|
+
}) => {
|
|
9
|
+
setGlobals({
|
|
10
|
+
bruInstance,
|
|
11
|
+
logger,
|
|
12
|
+
requestInstance
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
|
|
1
16
|
export * from './utils';
|
|
2
17
|
export * from './auth';
|
|
3
18
|
export * from './folioRequest';
|
package/src/utils/baseUrl.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
const okapiUrl = bru.getEnvVar('okapiUrl');
|
|
3
|
-
const okapiPort = bru.getEnvVar('okapiPort');
|
|
1
|
+
import { getBru } from '../bruno-globals-provider.js';
|
|
4
2
|
|
|
5
3
|
const getBaseUrl = () => {
|
|
4
|
+
const bru = getBru();
|
|
5
|
+
|
|
6
6
|
return bru.getEnvVar("baseUrl");
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
const setBaseUrl = () => {
|
|
10
|
+
const bru = getBru();
|
|
11
|
+
|
|
12
|
+
const okapiProtocol = bru.getEnvVar('okapiProtocol');
|
|
13
|
+
const okapiUrl = bru.getEnvVar('okapiUrl');
|
|
14
|
+
const okapiPort = bru.getEnvVar('okapiPort');
|
|
15
|
+
|
|
10
16
|
const baseUrl = `${okapiProtocol}://${okapiUrl}${okapiPort ? ':' + okapiPort : ''}`;
|
|
11
17
|
//console.log("WHAT IS BASEURL: %o", baseUrl)
|
|
12
18
|
bru.setEnvVar("baseUrl", baseUrl);
|