stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
24 lines • 1.68 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createCreateTableQuery = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _schema = require("../schema");
var createCreateTableQuery = tableName => {
var _tables$tableName$for, _tables$tableName$ind;
var columnsWithDescriptors = Object.entries(_schema.tables[tableName].columns).map(entry => {
var _entry = (0, _slicedToArray2.default)(entry, 2),
key = _entry[0],
value = _entry[1];
return `${key} ${value}`;
});
var primaryKeyConstraints = (_schema.tables[tableName].primaryKey || []).length > 0 ? [`PRIMARY KEY (${(_schema.tables[tableName].primaryKey || []).join(', ')})`] : [];
var foreignKeysConstraints = ((_tables$tableName$for = _schema.tables[tableName].foreignKeys) == null ? void 0 : _tables$tableName$for.map(k => `FOREIGN KEY (${k.column}) REFERENCES ${k.referenceTable}(${k.referenceTableColumn}) ON DELETE ${k.onDeleteAction || 'NO ACTION'}`)) || [];
var indexQueries = ((_tables$tableName$ind = _schema.tables[tableName].indexes) == null ? void 0 : _tables$tableName$ind.map(index => [`CREATE ${index.unique ? 'UNIQUE' : ''} INDEX IF NOT EXISTS ${index.name} ON ${tableName}(${index.columns.join(',')})`])) || [];
return [[`CREATE TABLE IF NOT EXISTS ${tableName}(
${[...columnsWithDescriptors, ...primaryKeyConstraints, ...foreignKeysConstraints].join(',\n')}
);`], ...indexQueries];
};
exports.createCreateTableQuery = createCreateTableQuery;
//# sourceMappingURL=createCreateTableQuery.js.map