node-ldapjs/lib/index.js

132 lines
2.5 KiB
JavaScript
Raw Normal View History

2011-08-04 20:32:01 +00:00
// Copyright 2011 Mark Cavage, Inc. All rights reserved.
2012-02-18 08:54:22 +00:00
var Logger = require('bunyan');
2011-08-04 20:32:01 +00:00
var Client = require('./client');
var Attribute = require('./attribute');
var Change = require('./change');
var Protocol = require('./protocol');
var Server = require('./server');
var assert = require('assert');
2011-12-09 21:59:17 +00:00
var controls = require('./controls');
var persistentSearch = require('./persistent_search');
2011-08-04 20:32:01 +00:00
var dn = require('./dn');
var errors = require('./errors');
var filters = require('./filters');
var messages = require('./messages');
2011-08-04 20:32:01 +00:00
var url = require('./url');
2011-12-09 21:59:17 +00:00
2011-08-04 20:32:01 +00:00
/// Hack a few things we need (i.e., "monkey patch" the prototype)
if (!String.prototype.startsWith) {
2012-02-24 00:02:52 +00:00
String.prototype.startsWith = function (str) {
2011-08-04 20:32:01 +00:00
var re = new RegExp('^' + str);
return re.test(this);
};
}
if (!String.prototype.endsWith) {
2012-02-24 00:02:52 +00:00
String.prototype.endsWith = function (str) {
2011-08-04 20:32:01 +00:00
var re = new RegExp(str + '$');
return re.test(this);
};
}
///--- API
module.exports = {
Client: Client,
2012-02-24 00:02:52 +00:00
createClient: function (options) {
if (typeof (options) !== 'object')
2011-08-04 20:32:01 +00:00
throw new TypeError('options (object) required');
2012-02-18 08:54:22 +00:00
if (!options.log) {
options.log = new Logger({
name: 'ldapjs',
component: 'client',
stream: process.stderr
});
}
2011-08-04 20:32:01 +00:00
return new Client(options);
},
Server: Server,
2012-02-24 00:02:52 +00:00
createServer: function (options) {
2012-02-18 08:54:22 +00:00
if (options === undefined)
options = {};
if (typeof (options) !== 'object')
throw new TypeError('options (object) required');
if (!options.log) {
options.log = new Logger({
name: 'ldapjs',
component: 'client',
stream: process.stderr
});
}
return new Server(options);
},
2011-08-04 20:32:01 +00:00
2011-08-19 22:08:23 +00:00
Attribute: Attribute,
Change: Change,
2011-08-04 20:32:01 +00:00
DN: dn.DN,
PersistentSearchCache: persistentSearch.PersistentSearchCache,
RDN: dn.RDN,
2011-08-04 20:32:01 +00:00
parseDN: dn.parse,
2011-08-19 22:08:23 +00:00
dn: dn,
2011-08-04 20:32:01 +00:00
persistentSearch: persistentSearch,
2011-08-04 20:32:01 +00:00
filters: filters,
parseFilter: filters.parseString,
2011-08-19 22:08:23 +00:00
parseURL: url.parse,
url: url
2011-08-04 20:32:01 +00:00
};
2011-12-09 21:59:17 +00:00
2011-08-04 20:32:01 +00:00
///--- Export all the childrenz
var k;
for (k in Protocol) {
if (Protocol.hasOwnProperty(k))
module.exports[k] = Protocol[k];
}
for (k in messages) {
if (messages.hasOwnProperty(k))
module.exports[k] = messages[k];
}
2011-12-09 21:59:17 +00:00
for (k in controls) {
if (controls.hasOwnProperty(k))
module.exports[k] = controls[k];
}
2011-08-04 20:32:01 +00:00
for (k in filters) {
if (filters.hasOwnProperty(k)) {
if (k !== 'parse' && k !== 'parseString')
module.exports[k] = filters[k];
}
}
for (k in errors) {
if (errors.hasOwnProperty(k)) {
module.exports[k] = errors[k];
}
}