MCPcopy Create free account
hub / github.com/Laxilef/OTGateway / method

Function method

src_data/scripts/utils.js:822–859  ·  view source on GitHub ↗
(object, pair)

Source from the content-addressed store, hash-verified

820
821function form2json(data, noCastItems = []) {
822 let method = function (object, pair) {
823 let keys = pair[0].replace(/\]/g, '').split('[');
824 let key = keys[0];
825 let value = pair[1];
826
827 if (!noCastItems.includes(keys.join('.'))) {
828 if (value === 'true' || value === 'false') {
829 value = value === 'true';
830
831 } else if (typeof (value) === 'string' && value.trim() !== '' && !isNaN(value)) {
832 value = parseFloat(value);
833 }
834 }
835
836 if (keys.length > 1) {
837 let i, x, segment;
838 let last = value;
839 let type = isNaN(keys[1]) ? {} : [];
840 value = segment = object[key] || type;
841
842 for (i = 1; i < keys.length; i++) {
843 x = keys[i];
844 if (i == keys.length - 1) {
845 if (Array.isArray(segment)) {
846 segment.push(last);
847 } else {
848 segment[x] = last;
849 }
850 } else if (segment[x] == undefined) {
851 segment[x] = isNaN(keys[i + 1]) ? {} : [];
852 }
853 segment = segment[x];
854 }
855 }
856
857 object[key] = value;
858 return object;
859 }
860
861 let object = Array.from(data).reduce(method, {});
862 return JSON.stringify(object);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected