UNPKG

@dxspring/formdata

Version:
103 lines 6.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MasterProvider = void 0; // Providers const ObjectProvider_1 = require("./ObjectProvider"); const ArrayProvider_1 = require("./ArrayProvider"); // Master Provider const MasterProvider = ({ data, key, json }) => { var _a, _b; const FinalJSONData = {}; const FinalFormData = new FormData(); // Check Data If Not Exists if (!data) { return json ? FinalJSONData : FinalFormData; } // If Data Is Object if (data instanceof Object && !(data instanceof Array) && !!Object.keys(data).length) { for (let Index = 0; Index < Object.keys(data).length; Index++) { // Value Is Object if (data[Object.keys(data)[Index]] instanceof Object && !(data[Object.keys(data)[Index]] instanceof Array) && !!Object.keys(data[Object.keys(data)[Index]]).length) { const ObjectData = (0, ObjectProvider_1.ObjectProvider)({ data: data[Object.keys(data)[Index]], key: Object.keys(data)[Index] }); if (ObjectData && Object.keys(ObjectData).length) { for (let Index = 0; Index < Object.keys(ObjectData).length; Index++) { FinalJSONData[Object.keys(ObjectData)[Index]] = ObjectData[Object.keys(ObjectData)[Index]]; FinalFormData.append(Object.keys(ObjectData)[Index], ObjectData[Object.keys(ObjectData)[Index]]); } } } // Value Is Array if (data[Object.keys(data)[Index]] instanceof Array && data[Object.keys(data)[Index]].length) { const ArrayData = (0, ArrayProvider_1.ArrayProvider)({ data: data[Object.keys(data)[Index]], key: Object.keys(data)[Index] }); if (ArrayData && Object.keys(ArrayData).length) { for (let Index = 0; Index < Object.keys(ArrayData).length; Index++) { FinalJSONData[Object.keys(ArrayData)[Index]] = ArrayData[Object.keys(ArrayData)[Index]]; FinalFormData.append(Object.keys(ArrayData)[Index], ArrayData[Object.keys(ArrayData)[Index]]); } } } // Value Is File if (data[Object.keys(data)[Index]] instanceof FileList && ((_a = data[Object.keys(data)[Index]]) === null || _a === void 0 ? void 0 : _a.length) === 1) { FinalJSONData[Object.keys(data)[Index]] = data[Object.keys(data)[Index]][0]; FinalFormData.append(Object.keys(data)[Index], data[Object.keys(data)[Index]][0]); } // Value Is String, Number Or Boolean if (data[Object.keys(data)[Index]] && !(data[Object.keys(data)[Index]] instanceof Array) && !(data[Object.keys(data)[Index]] instanceof Object) && !(data[Object.keys(data)[Index]] instanceof FileList)) { FinalJSONData[Object.keys(data)[Index]] = data[Object.keys(data)[Index]]; FinalFormData.append(Object.keys(data)[Index], data[Object.keys(data)[Index]]); } } } // If Data Is Array if (data instanceof Array && !!data.length) { for (let Index = 0; Index < data.length; Index++) { // Value Is Object if (data[Index] instanceof Object && !(data[Index] instanceof Array) && !!Object.keys(data[Index]).length) { const ObjectData = (0, ObjectProvider_1.ObjectProvider)({ data: data[Index], key: `${key ? key : 'object'}[${Index}]` }); if (ObjectData && Object.keys(ObjectData).length) { for (let Index = 0; Index < Object.keys(ObjectData).length; Index++) { FinalJSONData[Object.keys(ObjectData)[Index]] = ObjectData[Object.keys(ObjectData)[Index]]; FinalFormData.append(Object.keys(ObjectData)[Index], ObjectData[Object.keys(ObjectData)[Index]]); } } } // Value Is Array if (data[Index] instanceof Array && !!data[Index].length) { const ArrayData = (0, ArrayProvider_1.ArrayProvider)({ data: data[Index], key: `${key ? key : 'array'}[${Index}]`, customKey: key ? key : 'array' }); if (ArrayData && Object.keys(ArrayData).length) { for (let Index = 0; Index < Object.keys(ArrayData).length; Index++) { FinalJSONData[Object.keys(ArrayData)[Index]] = ArrayData[Object.keys(ArrayData)[Index]]; FinalFormData.append(Object.keys(ArrayData)[Index], ArrayData[Object.keys(ArrayData)[Index]]); } } } // Value Is File if (data[Index] instanceof FileList && ((_b = data[Index]) === null || _b === void 0 ? void 0 : _b.length) === 1) { FinalJSONData[`${key ? key : 'file'}[${Index}]`] = data[Index][0]; FinalFormData.append(`${key ? key : 'file'}[${Index}]`, data[Index][0]); } // Value Is String, Number Or Boolean if (data[Index] && !(data[Index] instanceof Array) && !(data[Index] instanceof Object) && !(data[Index] instanceof FileList)) { FinalJSONData[`${key ? key : 'value'}[${Index}]`] = data[Index]; FinalFormData.append(`${key ? key : 'value'}[${Index}]`, data[Index]); } } } // If Data Is File if (data instanceof FileList && data.length === 1) { FinalJSONData[key ? key : 'file'] = data[0]; FinalFormData.append(key ? key : 'file', data[0]); } // If Data Is String, Number Or Boolean if (!(data instanceof Object) && !(data instanceof Array) && !(data instanceof FileList)) { FinalJSONData[key ? key : 'value'] = data; FinalFormData.append(key ? key : 'value', data); } // OutPut return json ? FinalJSONData : FinalFormData; }; exports.MasterProvider = MasterProvider; //# sourceMappingURL=MasterProvider.js.map