{"ScriptPreparationCode":null,"TestCases":[{"Name":"keys","Code":"const NULL_VALUES = [null, undefined, \u0027\u0027] \r\n\r\nconst input = {\r\n bool: true,\r\n date: \u002701-01-1994\u0027,\r\n duration: \u00271d\u0027,\r\n formatted: \u0027123.00\u0027,\r\n arr: [{\r\n str: \u0027string\u0027,\r\n arr: [{\r\n date: \u002701-01-1994\u0027,\r\n }, ],\r\n duration: \u00271d\u0027,\r\n obj: {\r\n formatted: \u0027123.00\u0027,\r\n },\r\n }, ],\r\n obj: {\r\n date: \u002701-01-1994\u0027,\r\n arr: [\r\n \u00271d\u0027,\r\n {\r\n formatted: \u0027123.00\u0027,\r\n },\r\n ],\r\n },\r\n}\r\n\r\nfunction extractCustomType(result, refs = new Set()) {\r\n if (NULL_VALUES.includes(result) || [\u0027number\u0027, \u0027string\u0027, \u0027boolean\u0027].includes(typeof result)) return result\r\n\r\n const proto = Object.getPrototypeOf(result)\r\n if (!proto) return result\r\n\r\n if (refs.has(result)) return result\r\n refs.add(result)\r\n\r\n if ([\u0027escape\u0027, \u0027literal\u0027].includes(proto.constructor.name))\r\n return extractCustomType(result.params[0], refs)\r\n // it is Formula\r\n if (result.toObject instanceof Function) return result.toObject()\r\n\r\n if (Array.isArray(result)) return result.map(each =\u003E extractCustomType(each, refs))\r\n if (proto.constructor.name === \u0027Object\u0027) {\r\n return Object.keys(result).reduce((acc, key) =\u003E {\r\n if (!(result[key] instanceof Function)) acc[key] = extractCustomType(result[key], refs)\r\n return acc\r\n }, {})\r\n }\r\n\r\n return result\r\n}\r\n\r\nextractCustomType(input)","IsDeferred":false},{"Name":"entries","Code":"const NULL_VALUES = [null, undefined, \u0027\u0027] \r\n\r\nconst input = {\r\n bool: true,\r\n date: \u002701-01-1994\u0027,\r\n duration: \u00271d\u0027,\r\n formatted: \u0027123.00\u0027,\r\n arr: [{\r\n str: \u0027string\u0027,\r\n arr: [{\r\n date: \u002701-01-1994\u0027,\r\n }, ],\r\n duration: \u00271d\u0027,\r\n obj: {\r\n formatted: \u0027123.00\u0027,\r\n },\r\n }, ],\r\n obj: {\r\n date: \u002701-01-1994\u0027,\r\n arr: [\r\n \u00271d\u0027,\r\n {\r\n formatted: \u0027123.00\u0027,\r\n },\r\n ],\r\n },\r\n}\r\n\r\nfunction extractCustomType(result, refs = new Set()) {\r\n if (NULL_VALUES.includes(result) || [\u0027number\u0027, \u0027string\u0027, \u0027boolean\u0027].includes(typeof result)) return result\r\n\r\n const proto = Object.getPrototypeOf(result)\r\n if (!proto) return result\r\n\r\n if (refs.has(result)) return result\r\n refs.add(result)\r\n\r\n if ([\u0027escape\u0027, \u0027literal\u0027].includes(proto.constructor.name))\r\n return extractCustomType(result.params[0], refs)\r\n // it is Formula\r\n if (result.toObject instanceof Function) return result.toObject()\r\n\r\n if (Array.isArray(result)) return result.map(each =\u003E extractCustomType(each, refs))\r\n if (proto.constructor.name === \u0027Object\u0027) {\r\n return Object.entries(result).reduce((acc, [key, value]) =\u003E {\r\n if (!(value instanceof Function)) acc[key] = extractCustomType(value, refs)\r\n return acc\r\n }, {})\r\n }\r\n\r\n return result\r\n}\r\n\r\nextractCustomType(input)","IsDeferred":false},{"Name":"copy","Code":"const NULL_VALUES = [null, undefined, \u0027\u0027] \r\n\r\nconst input = {\r\n bool: true,\r\n date: \u002701-01-1994\u0027,\r\n duration: \u00271d\u0027,\r\n formatted: \u0027123.00\u0027,\r\n arr: [{\r\n str: \u0027string\u0027,\r\n arr: [{\r\n date: \u002701-01-1994\u0027,\r\n }, ],\r\n duration: \u00271d\u0027,\r\n obj: {\r\n formatted: \u0027123.00\u0027,\r\n },\r\n }, ],\r\n obj: {\r\n date: \u002701-01-1994\u0027,\r\n arr: [\r\n \u00271d\u0027,\r\n {\r\n formatted: \u0027123.00\u0027,\r\n },\r\n ],\r\n },\r\n}\r\n\r\nfunction extractCustomType(result, refs = new Set()) {\r\n if (NULL_VALUES.includes(result) || [\u0027number\u0027, \u0027string\u0027, \u0027boolean\u0027].includes(typeof result)) return result\r\n\r\n const proto = Object.getPrototypeOf(result)\r\n if (!proto) return result\r\n\r\n if (refs.has(result)) return result\r\n refs.add(result)\r\n\r\n if ([\u0027escape\u0027, \u0027literal\u0027].includes(proto.constructor.name))\r\n return extractCustomType(result.params[0], refs)\r\n // it is Formula\r\n if (result.toObject instanceof Function) return result.toObject()\r\n\r\n if (Array.isArray(result)) return result.map(each =\u003E extractCustomType(each, refs))\r\n if (proto.constructor.name === \u0027Object\u0027) {\r\n return Object.entries(result).reduce((acc, [key, value]) =\u003E {\r\n if (value instanceof Function) return acc\r\n return { ...acc, [key]: extractCustomType(value, refs) }\r\n }, {})\r\n }\r\n\r\n return result\r\n}\r\n\r\nextractCustomType(input)","IsDeferred":false}]}