@rcronin/sequelize-ibmi-mapepire
Version:
IBM i (via Mapepire) Sequelize V7 Dialect
131 lines • 4.66 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.IBMiDialect = void 0;
const core_1 = require("@sequelize/core");
const sql_js_1 = require("@sequelize/core/_non-semver-use-at-your-own-risk_/utils/sql.js");
const utils_1 = require("@sequelize/utils");
const DataTypes = __importStar(require("./_internal/data-types-overrides.js"));
const connection_manager_js_1 = require("./connection-manager.js");
const query_generator_js_1 = require("./query-generator.js");
const query_interface_js_1 = require("./query-interface.js");
const query_js_1 = require("./query.js");
const DIALECT_OPTIONS_NAMES = (0, utils_1.getSynchronizedTypeKeys)({});
const CONNECTION_OPTION_NAMES = (0, utils_1.getSynchronizedTypeKeys)({
host: undefined,
port: undefined,
user: undefined,
password: undefined,
rejectUnauthorized: undefined,
ca: undefined,
jdbcOptions: undefined
});
class IBMiDialect extends core_1.AbstractDialect {
static supports = core_1.AbstractDialect.extendSupport({
'VALUES ()': true,
'ON DUPLICATE KEY': false,
connectionTransactionMethods: true,
bulkDefault: true,
index: {
using: false,
where: true,
functionBased: true,
collate: false,
include: false
},
constraints: {
onUpdate: false
},
groupedLimit: false,
upserts: false,
schemas: true,
dataTypes: {
COLLATE_BINARY: true
},
removeColumn: {
cascade: true
},
renameTable: {
changeSchema: false,
changeSchemaAndTable: false
},
createSchema: {
authorization: true
},
dropSchema: {
cascade: true,
ifExists: true
}
});
connectionManager;
queryGenerator;
queryInterface;
Query = query_js_1.IBMiQuery;
constructor(sequelize, options) {
super({
dataTypesDocumentationUrl: 'https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_75/db2/rbafzch2data.htm',
identifierDelimiter: '"',
minimumDatabaseVersion: '7.5.0',
name: 'ibmi',
sequelize,
options,
dataTypeOverrides: DataTypes
});
this.connectionManager = new connection_manager_js_1.IBMiConnectionManager(this);
this.queryGenerator = new query_generator_js_1.IBMiQueryGenerator(this);
this.queryInterface = new query_interface_js_1.IBMiQueryInterface(this);
}
createBindCollector() {
return (0, sql_js_1.createUnspecifiedOrderedBindCollector)();
}
escapeBuffer(buffer) {
return `BLOB(X'${buffer.toString('hex')}')`;
}
getDefaultSchema() {
// TODO: what is the default schema in IBMi?
return '';
}
parseConnectionUrl() {
throw new Error('The "url" option is not supported by the Db2 dialect. Instead, please use the "odbcConnectionString" option.');
}
static getSupportedOptions() {
return DIALECT_OPTIONS_NAMES;
}
static getSupportedConnectionOptions() {
return CONNECTION_OPTION_NAMES;
}
}
exports.IBMiDialect = IBMiDialect;
//# sourceMappingURL=dialect.js.map