all-in-one smtp+imap with minimal setup
git clone http://git.nthia.dev/nthmail
module.exports = function parseFetchParts(str) {
return str.replace(/^\(|\)$/g,'')
.match(/[^\s\[]+(?:\[[^\]]*\])?\s*(?:<[^>]*>)?/g)
.map(w => {
let m = /^([^\s\[]*)\s*(?:\[([^\]]*)\])?(?:<([^>]*)>)?/.exec(w)
let r = { name: m[1] }
if (m[2]) {
r.sections = m[2].match(/[^\s\(]+\s*(?:\(([^\)]*)\))?/g)
.map(s => {
let m = /(\S+)\s*(?:\(([^\)]*)\))?/.exec(s)
let x = { name: m[1] }
if (m[2]) x.fields = m[2].split(/\s+/)
return x
})
}
if (m[3]) r.partials = m[3].split(/\s*\.\s*/).map(Number)
return r
})
}