UNPKG

ngx-soap

Version:

SOAP service for Angular

59 lines 6.28 kB
export class Multipart { constructor() { this.preambleCRLF = true; this.postambleCRLF = true; } build(parts, boundary) { const body = []; function add(part) { if (typeof part === 'number') { part = part.toString(); } return body.push(part); } if (this.preambleCRLF) { add('\r\n'); } parts.forEach(function (part) { let preamble = '--' + boundary + '\r\n'; Object.keys(part).forEach(function (key) { if (key === 'body') { return; } preamble += key + ': ' + part[key] + '\r\n'; }); preamble += '\r\n'; add(preamble); add(part.body); add('\r\n'); }); add('--' + boundary + '--'); if (this.postambleCRLF) { add('\r\n'); } const size = body.map((part) => { if (typeof part === 'string') { return part.length; } else { return part.byteLength; } }).reduce((a, b) => a + b, 0); let uint8array = new Uint8Array(size); let i = 0; body.forEach((part) => { if (typeof part === 'string') { for (let j = 0; j < part.length; i++, j++) { uint8array[i] = part.charCodeAt(j) & 0xff; } } else { for (let j = 0; j < part.byteLength; i++, j++) { uint8array[i] = part[j]; } } }); return uint8array.buffer; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwYXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNvYXAvc3JjL2xpYi9zb2FwL211bHRpcGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUNFLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO0lBeUR2QixDQUFDO0lBdkRDLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUTtRQUNuQixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7UUFFaEIsU0FBUyxHQUFHLENBQUUsSUFBSTtZQUNoQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDNUIsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN4QjtZQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUNaO1FBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUk7WUFDMUIsSUFBSSxRQUFRLEdBQUcsSUFBSSxHQUFHLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHO2dCQUNyQyxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7b0JBQUUsT0FBTTtpQkFBRTtnQkFDOUIsUUFBUSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQTtZQUM3QyxDQUFDLENBQUMsQ0FBQztZQUNILFFBQVEsSUFBSSxNQUFNLENBQUM7WUFDbkIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2QsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLElBQUksR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFNUIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNiO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzdCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7YUFDbkI7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU5QixJQUFJLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUN6QyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQzNDO2FBQ0Y7aUJBQU07Z0JBQ0wsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQzdDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTXVsdGlwYXJ0ICB7XG4gIHByZWFtYmxlQ1JMRiA9IHRydWU7XG4gIHBvc3RhbWJsZUNSTEYgPSB0cnVlO1xuXG4gIGJ1aWxkKHBhcnRzLCBib3VuZGFyeSkge1xuICAgIGNvbnN0IGJvZHkgPSBbXTtcblxuICAgIGZ1bmN0aW9uIGFkZCAocGFydCkge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0ID09PSAnbnVtYmVyJykge1xuICAgICAgICBwYXJ0ID0gcGFydC50b1N0cmluZygpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJvZHkucHVzaChwYXJ0KVxuICAgIH1cblxuICAgIGlmICh0aGlzLnByZWFtYmxlQ1JMRikge1xuICAgICAgYWRkKCdcXHJcXG4nKVxuICAgIH1cblxuICAgIHBhcnRzLmZvckVhY2goZnVuY3Rpb24gKHBhcnQpIHtcbiAgICAgIGxldCBwcmVhbWJsZSA9ICctLScgKyBib3VuZGFyeSArICdcXHJcXG4nO1xuICAgICAgT2JqZWN0LmtleXMocGFydCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdib2R5JykgeyByZXR1cm4gfVxuICAgICAgICBwcmVhbWJsZSArPSBrZXkgKyAnOiAnICsgcGFydFtrZXldICsgJ1xcclxcbidcbiAgICAgIH0pO1xuICAgICAgcHJlYW1ibGUgKz0gJ1xcclxcbic7XG4gICAgICBhZGQocHJlYW1ibGUpO1xuICAgICAgYWRkKHBhcnQuYm9keSk7XG4gICAgICBhZGQoJ1xcclxcbicpO1xuICAgIH0pO1xuICAgIGFkZCgnLS0nICsgYm91bmRhcnkgKyAnLS0nKTtcblxuICAgIGlmICh0aGlzLnBvc3RhbWJsZUNSTEYpIHtcbiAgICAgIGFkZCgnXFxyXFxuJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2l6ZSA9IGJvZHkubWFwKChwYXJ0KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHBhcnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBwYXJ0Lmxlbmd0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhcnQuYnl0ZUxlbmd0aDtcbiAgICAgIH1cbiAgICB9KS5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKTtcblxuICAgIGxldCB1aW50OGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSk7XG4gICAgbGV0IGkgPSAwO1xuICAgIGJvZHkuZm9yRWFjaCgocGFydCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBhcnQubGVuZ3RoOyBpKyssIGorKykge1xuICAgICAgICAgIHVpbnQ4YXJyYXlbaV0gPSBwYXJ0LmNoYXJDb2RlQXQoaikgJiAweGZmO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBhcnQuYnl0ZUxlbmd0aDsgaSsrLCBqKyspIHtcbiAgICAgICAgICB1aW50OGFycmF5W2ldID0gcGFydFtqXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB1aW50OGFycmF5LmJ1ZmZlcjtcbiAgfVxuXG59XG4iXX0=