mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
1 line
12 KiB
JSON
1 line
12 KiB
JSON
{"ast":null,"code":"import { OperatorsKeysArray, operator, ObjOperatorOverwrite, ArrOperatorOverwrite } from \"./object-operator.js\";\nimport { info } from \"./operators.js\";\nexport class argsAttributes {\n constructor(args, TableSchema) {\n this.TableSchema = TableSchema;\n this.value = [];\n this.schemeFields = ({} = {});\n for (const field of this.TableSchema.fields) {\n this.schemeFields[field.name] = field;\n }\n this.schemeFields[this.TableSchema.id.keyPath] = {\n keyPath: this.TableSchema.id.keyPath,\n name: this.TableSchema.id.keyPath,\n className: 'IntegerField'\n };\n if (args.constructor.name != 'Array') {\n args = [args];\n }\n const conditions = this.argsPrettyTransform(args);\n this.value = this.analyzeArgs(conditions);\n }\n analyzeArgs(conditions) {\n return conditions.map(condition => {\n const newObject = {};\n const keys = Object.keys(condition);\n for (let field of keys) {\n let fieldName;\n let fieldPath;\n let arg;\n const element = field.split('__');\n if (element.length == 1) {\n element.push('eq');\n }\n let operation = element[element.length - 1];\n if (OperatorsKeysArray.includes(operation)) {\n operation = element.pop();\n } else {\n operation = 'eq';\n }\n fieldName = element[0];\n fieldPath = element.join('.');\n if (OperatorsKeysArray.includes(operation)) {\n arg = condition[field];\n } else {\n throw 'operator';\n }\n const fieldClassName = this.detectClassName(fieldName);\n newObject[field] = {\n fieldName: fieldName,\n fieldPath: fieldPath,\n operation: operation,\n operationArg: arg,\n operator: this.detectOperator(fieldClassName, operation, fieldName),\n fieldClassName: fieldClassName\n };\n if (fieldClassName == 'indexedDBArrayField' || fieldClassName == 'indexedDBJsonField') {\n newObject[field]['customData'] = info.run;\n } else {\n newObject[field]['customData'] = () => {};\n }\n }\n return newObject;\n });\n }\n detectClassName(fieldName) {\n return this.schemeFields[fieldName].className;\n }\n detectOperator(fieldClassName, operation, fieldName) {\n try {\n if (fieldClassName == 'indexedDBJsonField') {\n return ObjOperatorOverwrite[operation];\n } else if (fieldClassName == 'indexedDBArrayField') {\n return ArrOperatorOverwrite[operation];\n } else {\n return operator[operation];\n }\n } catch (err) {\n throw 'Field ' + fieldName + ' does not exit on the table' + err;\n }\n }\n argsPrettyTransform(args) {\n const conditions = [];\n const loop = o => {\n // https://stackoverflow.com/a/38597076/14115342\n const condition = {};\n for (const k of Object.keys(o)) {\n if (o[k].constructor.name === 'Array') {\n loop(o[k]);\n } else {\n if (o.constructor.name === 'Array') {\n for (const j of Object.keys(o[k])) {\n condition[j] = o[k][j];\n }\n } else {\n condition[k] = o[k];\n }\n }\n }\n if (JSON.stringify(condition) !== '{}') {\n conditions.push(condition);\n }\n };\n loop(args);\n return conditions;\n }\n}","map":{"version":3,"names":["OperatorsKeysArray","operator","ObjOperatorOverwrite","ArrOperatorOverwrite","info","argsAttributes","constructor","args","TableSchema","value","schemeFields","field","fields","name","id","keyPath","className","conditions","argsPrettyTransform","analyzeArgs","map","condition","newObject","keys","Object","fieldName","fieldPath","arg","element","split","length","push","operation","includes","pop","join","fieldClassName","detectClassName","operationArg","detectOperator","run","err","loop","o","k","j","JSON","stringify"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/beast-orm/dist/src/sql/Operators/args-attributes.js"],"sourcesContent":["import { OperatorsKeysArray, operator, ObjOperatorOverwrite, ArrOperatorOverwrite } from \"./object-operator.js\";\r\nimport { info } from \"./operators.js\";\r\nexport class argsAttributes {\r\n constructor(args, TableSchema) {\r\n this.TableSchema = TableSchema;\r\n this.value = [];\r\n this.schemeFields = {} = {};\r\n for (const field of this.TableSchema.fields) {\r\n this.schemeFields[field.name] = field;\r\n }\r\n this.schemeFields[this.TableSchema.id.keyPath] = {\r\n keyPath: this.TableSchema.id.keyPath,\r\n name: this.TableSchema.id.keyPath,\r\n className: 'IntegerField',\r\n };\r\n if (args.constructor.name != 'Array') {\r\n args = [args];\r\n }\r\n const conditions = this.argsPrettyTransform(args);\r\n this.value = this.analyzeArgs(conditions);\r\n }\r\n analyzeArgs(conditions) {\r\n return conditions.map((condition) => {\r\n const newObject = {};\r\n const keys = Object.keys(condition);\r\n for (let field of keys) {\r\n let fieldName;\r\n let fieldPath;\r\n let arg;\r\n const element = field.split('__');\r\n if (element.length == 1) {\r\n element.push('eq');\r\n }\r\n let operation = element[element.length - 1];\r\n if (OperatorsKeysArray.includes(operation)) {\r\n operation = element.pop();\r\n }\r\n else {\r\n operation = 'eq';\r\n }\r\n fieldName = element[0];\r\n fieldPath = element.join('.');\r\n if (OperatorsKeysArray.includes(operation)) {\r\n arg = condition[field];\r\n }\r\n else {\r\n throw ('operator');\r\n }\r\n const fieldClassName = this.detectClassName(fieldName);\r\n newObject[field] = {\r\n fieldName: fieldName,\r\n fieldPath: fieldPath,\r\n operation: operation,\r\n operationArg: arg,\r\n operator: this.detectOperator(fieldClassName, operation, fieldName),\r\n fieldClassName: fieldClassName,\r\n };\r\n if (fieldClassName == 'indexedDBArrayField' || fieldClassName == 'indexedDBJsonField') {\r\n newObject[field]['customData'] = info.run;\r\n }\r\n else {\r\n newObject[field]['customData'] = () => { };\r\n }\r\n }\r\n return newObject;\r\n });\r\n }\r\n detectClassName(fieldName) {\r\n return this.schemeFields[fieldName].className;\r\n }\r\n detectOperator(fieldClassName, operation, fieldName) {\r\n try {\r\n if (fieldClassName == 'indexedDBJsonField') {\r\n return ObjOperatorOverwrite[operation];\r\n }\r\n else if (fieldClassName == 'indexedDBArrayField') {\r\n return ArrOperatorOverwrite[operation];\r\n }\r\n else {\r\n return operator[operation];\r\n }\r\n }\r\n catch (err) {\r\n throw ('Field ' + fieldName + ' does not exit on the table' + err);\r\n }\r\n }\r\n argsPrettyTransform(args) {\r\n const conditions = [];\r\n const loop = (o) => {\r\n // https://stackoverflow.com/a/38597076/14115342\r\n const condition = {};\r\n for (const k of Object.keys(o)) {\r\n if (o[k].constructor.name === 'Array') {\r\n loop(o[k]);\r\n }\r\n else {\r\n if (o.constructor.name === 'Array') {\r\n for (const j of Object.keys(o[k])) {\r\n condition[j] = o[k][j];\r\n }\r\n }\r\n else {\r\n condition[k] = o[k];\r\n }\r\n }\r\n }\r\n if (JSON.stringify(condition) !== '{}') {\r\n conditions.push(condition);\r\n }\r\n };\r\n loop(args);\r\n return conditions;\r\n }\r\n}\r\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |