https://github.com/oresoftware/ldap-pool
A simple NPM package for creating a pool of LDAP clients.
https://github.com/oresoftware/ldap-pool
javascript javascript-library ldap ldap-client ldap-library ldap-pool ldapjs nodejs pool typescript typescript-library
Last synced: 11 months ago
JSON representation
A simple NPM package for creating a pool of LDAP clients.
- Host: GitHub
- URL: https://github.com/oresoftware/ldap-pool
- Owner: ORESoftware
- License: mit
- Created: 2017-06-14T18:37:43.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-05-30T04:36:15.000Z (over 7 years ago)
- Last Synced: 2024-11-23T09:13:56.561Z (about 1 year ago)
- Topics: javascript, javascript-library, ldap, ldap-client, ldap-library, ldap-pool, ldapjs, nodejs, pool, typescript, typescript-library
- Language: JavaScript
- Homepage:
- Size: 231 KB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# LDAP Pool - a simple client pool for LDAP connections
## This API is promise-based - so as to work well with async/await flow control.
## Installation
```bash
$ npm install ldap-pool --save
```
## Usage
```typescript
import {Pool, LDAPPool, LDAPPoolClient} from 'ldap-pool';
let pool = new Pool({});
let pool = Pool.create({}); // same as above
// synchronous
let client = pool.getClientSync(); // returns a LDAPPoolClient synchronously
// asynchronous
pool.getClient().then(function(c: LDAPPoolClient){
// gets an LDAPPoolClient asynchronously (the least active client)
});
```
The asynchronous getClient method is preferred, because this can guarantee we use a client that is
not already active. Although it shouldn't matter that much.
Here we have a full use cycle:
```typescript
const pool = Pool.create({
connOpts: {
url: url,
reconnect: true,
idleTimeout: 30000
},
size: 4,
dn: 'uid=cdt_main.gen,OU=Generics,O=cco.nabisco.com',
pwd: ''
})
let client = pool.getClientSync();
client.search('foo', {}, function(err,res){
// when you're done, return the client to the pool
// this is important for performance, but *not* imperative for functionality/correctness
client.returnToPool();
});
```