UNPKG

9.66 kBSource Map (JSON)View Raw
1{"version":3,"file":"BaseScyllaModel.js","names":["_mapKeys","_interopRequireDefault","require","_mapValuesKeys","_tryJSONparse","_tryJSONstringify","_isFinite","_map","_mapValues","_snakeCase","notNan","a","isFinite","BaseScyllaModel","_ref","app","_classCallCheck2","log","schema","getSchema","_createClass2","key","value","stringifyData","data","_this","mapValues","type","warn","undefined","includes","Number","tryJSONstringify","Date","getTime","startsWith","value2","Array","isArray","filter","parseData","_this2","mapValuesKeys","tryJSONparse","getSchemaString","mapKeys","newKey","concat","snakeCase","map","join","createInsertQuery","table","keys","Object","defaultKeyspace","scylla","config","_execute","_asyncToGenerator2","_regenerator","mark","_callee","query","values","options","json","res","wrap","_callee$","_context","prev","next","debug","trace","execute","sent","abrupt","t0","error","stop","_x","_x2","_x3","_x4","apply","arguments","_run","_callee2","_callee2$","_context2","module","run","_run2","_callee3","props","obj","_callee3$","_context3","_x5","_default","exports"],"sources":["../src/BaseScyllaModel.js"],"sourcesContent":["import mapKeys from '@lskjs/utils/mapKeys';\nimport mapValuesKeys from '@lskjs/utils/mapValuesKeys';\nimport tryJSONparse from '@lskjs/utils/tryJSONparse';\nimport tryJSONstringify from '@lskjs/utils/tryJSONstringify';\nimport isFinite from 'lodash/isFinite';\nimport map from 'lodash/map';\nimport mapValues from 'lodash/mapValues';\nimport snakeCase from 'lodash/snakeCase';\n\nconst notNan = (a) => (isFinite(a) ? a : null);\n\nclass BaseScyllaModel {\n constructor({ app }) {\n this.app = app;\n this.log = app.log;\n if (!this.schema) this.schema = this.getSchema();\n }\n static async run(props) {\n const obj = new this(props);\n await obj.run();\n return obj;\n }\n getSchema() {\n return {};\n }\n stringifyData(data) {\n return mapValues(data, (value, key) => {\n const type = this.schema[key];\n if (!type) {\n this.log.warn('missing field in schema: ', key);\n return undefined;\n }\n if (['int', 'bigint', 'smallint'].includes(type)) return notNan(Number(value));\n if (type === 'text<json>') return tryJSONstringify(value);\n if (type === 'timestamp') return new Date(value).getTime();\n if (type.startsWith('list')) {\n const value2 = Array.isArray(value) ? value.filter((a) => a !== null && a !== undefined) : null;\n // console.log({ value, value2 });\n return value2;\n }\n return value;\n });\n }\n parseData(data) {\n return mapValuesKeys(data, (value, key) => {\n const type = this.schema[key];\n\n if (typeof value === 'undefined') return null;\n if (type === 'text<json>') return { key, value: tryJSONparse(value) };\n if (type === 'timestamp') return { key, value: new Date(value) };\n return { key, value };\n });\n }\n getSchemaString() {\n const schema = mapKeys(this.schema, (value, key) => {\n const newKey = key[0] === '_' ? `_${snakeCase(key)}` : snakeCase(key);\n if (newKey[0] === '_') return `\"${newKey}\"`;\n return newKey;\n });\n return map(schema, (value, key) => `${key} ${value === 'text<json>' ? 'text' : value}`).join(',\\n');\n }\n\n createInsertQuery(table, data) {\n const keys = Object.keys(data);\n const { defaultKeyspace } = this.scylla.config;\n return `INSERT INTO ${defaultKeyspace}.${this.table} (${keys\n .map((key) => `\"${key}\"`)\n .join(', ')}) VALUES (${keys.map(() => '?').join(', ')})`;\n }\n async execute(query, values, options, json) {\n if (this.scylla.debug) this.scylla.log.trace(`[scylla] table=${this.table}\\n`, query, values);\n try {\n const res = await this.scylla.execute(query, values, options);\n return res;\n } catch (err) {\n this.scylla.log.warn(`[scylla] table=${this.table}\\n`, query);\n this.scylla.log.trace(json || values);\n this.scylla.log.error('[scylla] err ', err);\n throw err;\n }\n }\n async run() {\n this.scylla = await this.app.module('scylla');\n }\n}\n\nexport default BaseScyllaModel;\n"],"mappings":"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"}
\No newline at end of file