UNPKG

sequelize-ibmi

Version:

Multi dialect ORM for Node.JS

69 lines (62 loc) 1.92 kB
'use strict'; const _ = require('lodash'); const AbstractDialect = require('../abstract'); const ConnectionManager = require('./connection-manager'); const Query = require('./query'); const { QueryGenerator } = require('./query-generator'); const { IBMiQueryInterface } = require('./query-interface'); const DataTypes = require('../../data-types').ibmi; class IBMiDialect extends AbstractDialect { constructor(sequelize) { super(); this.sequelize = sequelize; this.connectionManager = new ConnectionManager(this, sequelize); this.queryGenerator = new QueryGenerator({ _dialect: this, sequelize }); this.queryInterface = new IBMiQueryInterface(this.sequelize, this.queryGenerator); this.supports.autoIncrement.defaultValue = true; this.supports.autoIncrement.update = true; this.supports.schemas = true; } } IBMiDialect.prototype.supports = _.merge(_.cloneDeep(AbstractDialect.prototype.supports), { 'DEFAULT': true, 'DEFAULT VALUES': false, 'UNION ALL': true, 'VALUES ()': true, 'ON DUPLICATE KEY': false, transactions: false, transactionOptions: { type: false }, inserts: { }, bulkDefault: true, index: { using: false, where: true, functionBased: true, collate: false }, constraints: { addConstraint: true, dropConstraint: true }, joinTableDependent: false, indexViaAlter: false, groupedLimit: false, JSON: false, upserts: false }); IBMiDialect.prototype.defaultVersion = '7.3.0'; IBMiDialect.prototype.Query = Query; IBMiDialect.prototype.DataTypes = DataTypes; IBMiDialect.prototype.name = 'ibmi'; IBMiDialect.prototype.TICK_CHAR = '"'; IBMiDialect.prototype.TICK_CHAR_LEFT = IBMiDialect.prototype.TICK_CHAR; IBMiDialect.prototype.TICK_CHAR_RIGHT = IBMiDialect.prototype.TICK_CHAR; module.exports = IBMiDialect; module.exports.IBMiDialect = IBMiDialect; module.exports.default = IBMiDialect;