@k-int/bruno-shared-scripts 1.2.0 → 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/.gitlab-ci.yml CHANGED
@@ -1,40 +1,51 @@
1
- default:
2
- # image: docker.libsdev.k-int.com/knowledgeintegration/stripes-build-agent:latest
3
- # See https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit-header
4
- image:
5
- name: node:20
6
- pull_policy: always
1
+ # Base templates for setting up the module in the various stages
2
+ .npm_config_setup:
7
3
  before_script:
8
- # - npm config set @folio:registry "https://nexus.libsdev.k-int.com/repository/libsdev-npm-group/"
9
- # - npm config set @knowledge-integration:registry "https://nexus.libsdev.k-int.com/repository/libsdev-npm-hosted/"
4
+ - apt-get -qq update
5
+ - apt-get install -y jq # JQ is always needed, we will need to add curl for our publish module descriptor
6
+ - npm config set @folio:registry "https://nexus.libsdev.k-int.com/repository/libsdev-npm-group/"
7
+ - npm config set @knowledge-integration:registry "https://nexus.libsdev.k-int.com/repository/libsdev-npm-hosted/"
8
+ # Set auth tokens for nexus registries
10
9
  - npm config set -- //nexus.libsdev.k-int.com/repository/libsdev-npm-hosted/:_authToken $KI_NEXUS_NPM_TOKEN
11
10
  - npm config set -- //nexus.libsdev.k-int.com/repository/libsdev-npm-snapshots-hosted/:_authToken $KI_NEXUS_NPM_TOKEN
12
- # - npm config set registry "https://nexus.libsdev.k-int.com/repository/libsdev-npm-group/"
13
- # - npm config set @k-int:registry "https://nexus.libsdev.k-int.com/repository/libsdev-npm-hosted/"
14
- # - npm --registry "https://nexus.libsdev.k-int.com/repository/libsdev-npm-hosted/" adduser
15
- # - npm --registry "https://nexus.libsdev.k-int.com/repository/libsdev-npm-hosted/" whoami
16
- # - export NPM_TOKEN="$KI_NEXUS_NPM_TOKEN"
17
- - export NPM_TOKEN="$NPMJS_TOKEN"
18
- - git config --global user.name "ethanfreestone"
19
- - git config --global user.email "ethan.freestone@k-int.com"
20
- - npm install
21
- - echo "token $GITLAB_TOKEN $NPM_TOKEN $KI_NEXUS_NPM_TOKEN"
11
+
12
+ .dependencies_install:
13
+ extends: .npm_config_setup
14
+ before_script:
15
+ ## Extending the npm configuration
16
+ - !reference [.npm_config_setup, before_script]
17
+ - yarn install
18
+
19
+ default:
20
+ #image: docker.libsdev.k-int.com/knowledgeintegration/stripes-build-agent:2.1.0
21
+ image: node:22
22
22
  cache:
23
23
  key: ${CI_COMMIT_REF_SLUG}
24
24
  paths:
25
25
  - .npm/
26
+ - ./module-descriptor.json
26
27
  tags:
27
28
  - docker
28
- # - docker-18
29
+ #- docker-18
29
30
  - ki-onprem
31
+
30
32
  stages:
31
33
  - release
34
+
32
35
  publish:
33
36
  stage: release
37
+ extends: .dependencies_install
34
38
  only:
35
- - main
39
+ - main # Only run on the 'release' branch or version n.x branches
36
40
  - /^[0-9]+.x/
41
+ id_tokens:
42
+ NPM_ID_TOKEN:
43
+ aud: "npm:registry.npmjs.org"
37
44
  script:
38
- - npm run semantic-release
39
- # We just need to npm-publish
40
- # - npm --registry "$NPM_REGISTRY" publish --tag "${versionMajMin}-dev"
45
+ #- export NPM_TOKEN="$NPMJS_TOKEN" # This is deprecated in favour of Trusted Publishers
46
+ - echo $NODE_ENV
47
+ - export NODE_ENV=dev
48
+ - git config --global user.name "$GITLAB_USER_LOGIN" # Should be whoever triggered the pipeline
49
+ - git config --global user.email "$GITLAB_USER_EMAIL"
50
+ - npx semantic-release
51
+ #- echo "token $GITLAB_TOKEN $NPM_TOKEN $KI_NEXUS_NPM_TOKEN"
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
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
+
11
+ ## [1.2.1](https://gitlab.com/knowledge-integration/bruno/bruno-shared-scripts/compare/v1.2.0...v1.2.1) (2025-10-30)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **deps:** Update "@semantic-release/gitlab" dependency ([770a6e2](https://gitlab.com/knowledge-integration/bruno/bruno-shared-scripts/commit/770a6e23445c44ef197357f4e9d20e8f0f0d3a90))
17
+ * Release from `main` branch for bruno-shared-scripts ([3f03c3e](https://gitlab.com/knowledge-integration/bruno/bruno-shared-scripts/commit/3f03c3eccb5f0bde3acb091955ef7f840e6d6dc5))
18
+ * Update release pipeline to use OIDC Trusted Publisher workflow ([7eafa63](https://gitlab.com/knowledge-integration/bruno/bruno-shared-scripts/commit/7eafa63a63d6630f4540125a02c57ef64ddf39a0))
19
+
1
20
  # [1.2.0](https://gitlab.com/knowledge-integration/bruno/bruno-shared-scripts/compare/v1.1.1...v1.2.0) (2025-09-12)
2
21
 
3
22
 
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 okapiProtocol, okapiUrl, okapiPort, getBaseUrl, setBaseUrl;
60
+ var getBaseUrl, setBaseUrl;
24
61
  var init_baseUrl = __esm({
25
62
  "src/utils/baseUrl.js"() {
26
- okapiProtocol = bru.getEnvVar("okapiProtocol");
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
- var axios, getLoginWithExpiryUrl, getLoginUrl, doALogin, loginFunc, login, loginWithExpiry;
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
- axios = require("axios");
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
- !suppressConsole && console.log(`doALogin(${urlOverride}, ${withExpiry})`);
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 && console.log(`Sending login request to ${url} with creds ${JSON.stringify(creds)} for tenant: ${tenant}`);
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
- !suppressConsole && console.log(`loginFunc(${urlOverride}, ${withExpiry})`);
115
- await doALogin({ urlOverride, withExpiry, suppressConsole }).then((loginResp) => {
116
- !suppressConsole && console.log("Setting request headers...");
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
- console.error("Failed to login to folio: %o", err);
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
- var index_exports = {};
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 && console.log("folioRequest ready with config: %o", config);
259
+ !suppressConsole && logger2.log("folioRequest ready with config: %o", config);
224
260
  return axios2.create(config);
225
261
  }).catch((err) => {
226
- console.error("Failed to login to folio: %o", err);
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,19 +1,24 @@
1
1
  {
2
2
  "name": "@k-int/bruno-shared-scripts",
3
- "version": "1.2.0",
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=cjs --outdir=es --external:axios",
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": "^12.0.6",
17
- "@semantic-release/npm": "^11.0.0"
18
+ "@semantic-release/gitlab": "^13.2.9",
19
+ "esbuild": "^0.25.2"
20
+ },
21
+ "dependencies": {
22
+ "axios": "^1.13.2"
18
23
  }
19
24
  }
@@ -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
- //import axios from 'axios';
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
- !suppressConsole && console.log(`doALogin(${urlOverride}, ${withExpiry})`);
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 && console.log(`Sending login request to ${url} with creds ${JSON.stringify(creds)} for tenant: ${tenant}`);
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
- !suppressConsole && console.log(`loginFunc(${urlOverride}, ${withExpiry})`);
60
- await doALogin({ urlOverride, withExpiry, suppressConsole })
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 && console.log("Setting request headers...")
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
- console.error("Failed to login to folio: %o", err)
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
+ };
@@ -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 && console.log("folioRequest ready with config: %o", config);
23
+ !suppressConsole && logger.log("folioRequest ready with config: %o", config);
22
24
  return axios.create(config);
23
25
  }).catch(err => {
24
- console.error("Failed to login to folio: %o", err)
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';
@@ -1,12 +1,18 @@
1
- const okapiProtocol = bru.getEnvVar('okapiProtocol');
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);