INNER CODE UNIT · TypeScript
parseAddressList
postalsys/postal-mime · src/address-parser.ts:447
function parseAddressList(str: string, depth: number): Address[] {
// Prevent stack overflow from deeply nested groups (DoS protection)
if (depth > MAX_NESTED_GROUP_DEPTH) {
return [];
}
let tokenizer = new Tokenizer(str);
let tokens = tokenizer.tokenize();
let addresses: Token[][] = [];
let address: Token[] = [];
const parsedAddresses: Address[] = [];
tokens.forEach(token => {
if (token.type === 'operator' && (token.value === ',' || token.value === ';')) {
if (address.length) {
addresses.push(address);
}