@kaapi/server 0.0.14 → 0.0.15

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/lib/index.js CHANGED
@@ -3,9 +3,9 @@ var _KaapiServer_base;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.KaapiServer = void 0;
5
5
  const tslib_1 = require("tslib");
6
+ const boom_1 = tslib_1.__importDefault(require("@hapi/boom"));
6
7
  const hapi_1 = tslib_1.__importDefault(require("@hapi/hapi"));
7
8
  const hoek_1 = tslib_1.__importDefault(require("@hapi/hoek"));
8
- const boom_1 = tslib_1.__importDefault(require("@hapi/boom"));
9
9
  class KaapiServer {
10
10
  get base() {
11
11
  return tslib_1.__classPrivateFieldGet(this, _KaapiServer_base, "f");
@@ -21,7 +21,7 @@ class KaapiServer {
21
21
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
22
22
  var _a, _b;
23
23
  const settings = hoek_1.default.applyToDefaults({
24
- tokenType: 'Bearer'
24
+ tokenType: 'Bearer',
25
25
  }, options || {});
26
26
  const authorization = request.raw.req.headers.authorization;
27
27
  const authSplit = authorization ? authorization.split(/\s+/) : ['', ''];
@@ -45,7 +45,7 @@ class KaapiServer {
45
45
  if (message) {
46
46
  return h.unauthenticated(boom_1.default.unauthorized(message, scheme || settings.tokenType || ''), {
47
47
  credentials: credentials || {},
48
- artifacts
48
+ artifacts,
49
49
  });
50
50
  }
51
51
  }
@@ -73,12 +73,10 @@ class KaapiServer {
73
73
  if (route.options &&
74
74
  typeof route.options != 'function' &&
75
75
  typeof route.options.auth != 'undefined' &&
76
- (typeof route.options.auth != 'boolean' ||
77
- route.options.auth !== false)) {
76
+ (typeof route.options.auth != 'boolean' || route.options.auth !== false)) {
78
77
  throw new Error(`Ambiguous auth configuration. It cannot be "${auth}" and "${route.options.auth}" simultaneously: "${route.method}: ${route.path}".`);
79
78
  }
80
- else if (!route.options ||
81
- typeof route.options != 'function') {
79
+ else if (!route.options || typeof route.options != 'function') {
82
80
  if (!route.options) {
83
81
  route.options = {};
84
82
  }
@@ -88,14 +86,11 @@ class KaapiServer {
88
86
  }
89
87
  }
90
88
  if (auth) {
91
- if (route.options &&
92
- typeof route.options != 'function' &&
93
- route.options.auth === false) {
89
+ if (route.options && typeof route.options != 'function' && route.options.auth === false) {
94
90
  throw new Error(`Ambiguous auth configuration. It cannot be "${auth}" and "${route.options.auth}" simultaneously: "${route.method}: ${route.path}".`);
95
91
  }
96
92
  else if (!route.options ||
97
- typeof route.options != 'function' && (!route.options.auth ||
98
- typeof route.options.auth === 'object')) {
93
+ (typeof route.options != 'function' && (!route.options.auth || typeof route.options.auth === 'object'))) {
99
94
  if (!route.options) {
100
95
  route.options = {};
101
96
  }
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaapi/server",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "private": false,
5
5
  "description": "kaapi server",
6
6
  "main": "lib/index.js",
@@ -20,6 +20,8 @@
20
20
  "scripts": {
21
21
  "lint": "eslint .",
22
22
  "build": "tsc",
23
+ "format": "prettier --write ./src",
24
+ "format:check": "prettier --check ./src",
23
25
  "test": "echo \"Error: no test specified\" && exit 1"
24
26
  }
25
27
  }