jsforce
Version:
Salesforce API Library for JavaScript
42 lines (38 loc) • 1.05 kB
text/typescript
import { EventEmitter } from 'events';
import VERSION from './VERSION';
import Connection from './connection';
import OAuth2 from './oauth2';
import SfDate from './date';
import registry, { Registry } from './registry';
import client, { BrowserClient } from './browser/client';
/**
*
*/
class JSforce extends EventEmitter {
VERSION: typeof VERSION = VERSION;
Connection: typeof Connection = Connection;
OAuth2: typeof OAuth2 = OAuth2;
SfDate: typeof SfDate = SfDate;
Date: typeof SfDate = SfDate;
BrowserClient: typeof BrowserClient = BrowserClient;
registry: Registry = registry;
browser: BrowserClient = client;
}
export function registerModule(
name: string,
factory: (conn: Connection) => any,
) {
jsforce.on('connection:new', (conn: Connection) => {
let obj: any = undefined;
Object.defineProperty(conn, name, {
get() {
obj = obj ?? factory(conn);
return obj;
},
enumerable: true,
configurable: true,
});
});
}
const jsforce = new JSforce();
export default jsforce;