123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- const { difference } = require('../utils/objectUtils');
- function columnNameToPropertyName(ModelClass, columnName) {
- const model = new ModelClass();
- const addedProps = Object.keys(model.$parseDatabaseJson({}));
- const row = {};
- row[columnName] = null;
- const props = Object.keys(model.$parseDatabaseJson(row));
- const propertyName = difference(props, addedProps)[0];
- return propertyName || null;
- }
- function propertyNameToColumnName(ModelClass, propertyName) {
- const model = new ModelClass();
- const addedCols = Object.keys(model.$formatDatabaseJson({}));
- const obj = {};
- obj[propertyName] = null;
- const cols = Object.keys(model.$formatDatabaseJson(obj));
- const columnName = difference(cols, addedCols)[0];
- return columnName || null;
- }
- function idColumnToIdProperty(ModelClass, idColumn) {
- const idProperty = ModelClass.columnNameToPropertyName(idColumn);
- if (!idProperty) {
- throw new Error(
- ModelClass.name +
- '.$parseDatabaseJson probably changes the value of the id column `' +
- idColumn +
- '` which is a no-no.'
- );
- }
- return idProperty;
- }
- module.exports = {
- columnNameToPropertyName,
- propertyNameToColumnName,
- idColumnToIdProperty
- };
|