UNPKG

n8n-nodes-wechat

Version:
90 lines 3.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildUploadOptions = exports.getNodeParameters = exports.flattenSameKeyArrays = exports.xml2obj = exports.obj2xml = void 0; const xml_js_1 = require("xml-js"); const form_data_1 = __importDefault(require("form-data")); const obj2xml = (obj, options = {}) => { return (0, xml_js_1.js2xml)(obj, { compact: true, textFn: (v, _, o) => (typeof o === 'string' ? `<![CDATA[${v}]]>` : v), ...options, }); }; exports.obj2xml = obj2xml; const xml2obj = (xml, options = {}) => { return (0, xml_js_1.xml2js)(xml, { compact: true, textFn: (v) => { return !isNaN(Number(v)) ? Number(v) : ['true', 'false'].includes(v) ? v === 'true' : v; }, ...options, }); }; exports.xml2obj = xml2obj; const flattenSameKeyArrays = (obj) => { if (Array.isArray(obj)) return obj.map((item) => (0, exports.flattenSameKeyArrays)(item)); if (typeof obj === 'object' && obj !== null) { const result = {}; for (const key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { let value = (0, exports.flattenSameKeyArrays)(obj[key]); if (typeof value === 'object' && !Array.isArray(value) && Object.keys(value).length === 1 && value[key] !== undefined && Array.isArray(value[key])) { result[key] = value[key]; } else { result[key] = value; } } } return result; } return obj; }; exports.flattenSameKeyArrays = flattenSameKeyArrays; const getNodeParameters = (ctx) => { const result = Object.keys(ctx.getNode().parameters) .filter((k) => !['resource', 'operation'].includes(k)) .reduce((p, c) => ({ ...p, [c]: ctx.getNodeParameter(c, 0) }), {}); return (0, exports.flattenSameKeyArrays)(result); }; exports.getNodeParameters = getNodeParameters; const buildUploadOptions = async (ctx, reqOptions) => { if (!(reqOptions === null || reqOptions === void 0 ? void 0 : reqOptions.body) || !Object.prototype.toString.call(reqOptions.body).includes('Object')) { return reqOptions; } const body = new form_data_1.default(); for (let k of Object.keys(reqOptions.body)) { let value = reqOptions.body[k]; if (k.endsWith('BINARY_PROPERTY_NAME')) { const binaryData = ctx.helpers.assertBinaryData(0, value); const content = Buffer.from(binaryData.data, 'base64'); const knownLength = content.length; const { mimeType: contentType, fileName } = binaryData; const fileField = k.replace('BINARY_PROPERTY_NAME', ''); body.append(fileField, content, { contentType, knownLength, filename: fileName, }); } else { body.append(k, JSON.stringify(value), { contentType: 'application/json' }); } } if (!reqOptions.headers) reqOptions.headers = {}; reqOptions.headers['Content-Length'] = body.getLengthSync(); reqOptions.headers['Content-Type'] = `multipart/related; boundary=${body.getBoundary()}`; reqOptions.body = body; return reqOptions; }; exports.buildUploadOptions = buildUploadOptions; //# sourceMappingURL=Helpers.js.map