Skip to content

Commit b07a5d2

Browse files
fix(NODE-6592): remove dependency on bindings (#220)
1 parent 727cc1f commit b07a5d2

File tree

5 files changed

+20
-23
lines changed

5 files changed

+20
-23
lines changed

lib/kerberos.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
'use strict';
22

3-
const kerberos = require('bindings')('kerberos');
3+
const { loadBindings, defineOperation } = require('./util');
4+
5+
6+
const kerberos = loadBindings();
47
const KerberosClient = kerberos.KerberosClient;
58
const KerberosServer = kerberos.KerberosServer;
6-
const defineOperation = require('./util').defineOperation;
79

810
// GSS Flags
911
const GSS_C_DELEG_FLAG = 1;

lib/util.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ function validateParameter(parameter, specs, specIndex) {
1919
}
2020

2121
throw new TypeError(
22-
`Invalid type for parameter \`${spec.name}\`, expected \`${
23-
spec.type
22+
`Invalid type for parameter \`${spec.name}\`, expected \`${spec.type
2423
}\` but found \`${typeof parameter}\``
2524
);
2625
}
@@ -81,4 +80,12 @@ function defineOperation(fn, paramDefs) {
8180
};
8281
}
8382

84-
module.exports = { defineOperation, validateParameter };
83+
function loadBindings() {
84+
try {
85+
return require('../build/Release/kerberos.node');
86+
} catch {
87+
return require('../build/Debug/kerberos.node');
88+
}
89+
}
90+
91+
module.exports = { defineOperation, validateParameter, loadBindings };

package-lock.json

Lines changed: 0 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
"url": "https://jira.mongodb.org/projects/NODE/issues/"
2828
},
2929
"dependencies": {
30-
"bindings": "^1.5.0",
3130
"node-addon-api": "^6.1.0",
3231
"prebuild-install": "^7.1.2"
3332
},
@@ -74,4 +73,4 @@
7473
},
7574
"license": "Apache-2.0",
7675
"readmeFilename": "README.md"
77-
}
76+
}

test/defineOperation_tests.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
'use strict';
2-
const kerberos = require('bindings')('kerberos');
2+
3+
const { loadBindings } = require('../lib/util');
4+
5+
const kerberos = loadBindings();
36
const defineOperation = require('../lib/util').defineOperation;
47
const expect = require('chai').expect;
58

@@ -16,7 +19,7 @@ describe('defineOperation', () => {
1619
});
1720

1821
it('should validate optional parameters, with valid parameters after', function () {
19-
expect(() => testMethod('llamas', false, true, () => {})).to.throw(
22+
expect(() => testMethod('llamas', false, true, () => { })).to.throw(
2023
/Invalid type for parameter `optionalString`/
2124
);
2225
});

0 commit comments

Comments
 (0)