-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.cjs
More file actions
51 lines (45 loc) · 1.62 KB
/
index.cjs
File metadata and controls
51 lines (45 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// CommonJS wrapper — for require('email-server')
// Loads the ESM module and re-exports all named exports.
async function load() {
const mod = await import('./index.js');
return mod.default || mod;
}
let cached = null;
let pending = null;
function getSync() {
if (cached) return cached;
throw new Error(
'email-server: CommonJS require() needs async init.\n' +
'Use: const mail = await require("email-server").init()\n' +
'Or switch to: import mail from "email-server"'
);
}
module.exports = {
init: function() {
if (cached) return Promise.resolve(cached);
if (pending) return pending;
pending = load().then(function(mod) {
cached = mod;
// Copy all exports to module.exports for subsequent require() calls
Object.keys(mod).forEach(function(k) {
module.exports[k] = mod[k];
});
return mod;
});
return pending;
},
// Lazy getters — work after init() resolves
get createServer() { return getSync().createServer; },
get buildDomainMailMaterial() { return getSync().buildDomainMailMaterial; },
get composeMessage() { return getSync().composeMessage; },
get parseMessage() { return getSync().parseMessage; },
get sendMail() { return getSync().sendMail; },
get resolveMX() { return getSync().resolveMX; },
get dkimSign() { return getSync().dkimSign; },
get dkimVerify() { return getSync().dkimVerify; },
get checkSPF() { return getSync().checkSPF; },
get checkDMARC() { return getSync().checkDMARC; },
get Server() { return getSync().Server; },
get SMTPSession() { return getSync().SMTPSession; },
get wire() { return getSync().wire; }
};