123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437 |
- "use strict";
- var __defProp = Object.defineProperty;
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
- var __hasOwnProp = Object.prototype.hasOwnProperty;
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
- var __spreadValues = (a, b) => {
- for (var prop in b || (b = {}))
- if (__hasOwnProp.call(b, prop))
- __defNormalProp(a, prop, b[prop]);
- if (__getOwnPropSymbols)
- for (var prop of __getOwnPropSymbols(b)) {
- if (__propIsEnum.call(b, prop))
- __defNormalProp(a, prop, b[prop]);
- }
- return a;
- };
- const DataTypes = require("./data-types");
- const SqlString = require("./sql-string");
- const _ = require("lodash");
- const baseIsNative = require("lodash/_baseIsNative");
- const uuidv1 = require("uuid").v1;
- const uuidv4 = require("uuid").v4;
- const operators = require("./operators");
- const operatorsSet = new Set(Object.values(operators));
- let inflection = require("inflection");
- exports.classToInvokable = require("./utils/class-to-invokable").classToInvokable;
- exports.joinSQLFragments = require("./utils/join-sql-fragments").joinSQLFragments;
- function useInflection(_inflection) {
- inflection = _inflection;
- }
- exports.useInflection = useInflection;
- function camelizeIf(str, condition) {
- let result = str;
- if (condition) {
- result = camelize(str);
- }
- return result;
- }
- exports.camelizeIf = camelizeIf;
- function underscoredIf(str, condition) {
- let result = str;
- if (condition) {
- result = underscore(str);
- }
- return result;
- }
- exports.underscoredIf = underscoredIf;
- function isPrimitive(val) {
- const type = typeof val;
- return ["string", "number", "boolean"].includes(type);
- }
- exports.isPrimitive = isPrimitive;
- function mergeDefaults(a, b) {
- return _.mergeWith(a, b, (objectValue, sourceValue) => {
- if (!_.isPlainObject(objectValue) && objectValue !== void 0) {
- if (_.isFunction(objectValue) && baseIsNative(objectValue)) {
- return sourceValue || objectValue;
- }
- return objectValue;
- }
- });
- }
- exports.mergeDefaults = mergeDefaults;
- function merge() {
- const result = {};
- for (const obj of arguments) {
- _.forOwn(obj, (value, key) => {
- if (value !== void 0) {
- if (!result[key]) {
- result[key] = value;
- } else if (_.isPlainObject(value) && _.isPlainObject(result[key])) {
- result[key] = merge(result[key], value);
- } else if (Array.isArray(value) && Array.isArray(result[key])) {
- result[key] = value.concat(result[key]);
- } else {
- result[key] = value;
- }
- }
- });
- }
- return result;
- }
- exports.merge = merge;
- function spliceStr(str, index, count, add) {
- return str.slice(0, index) + add + str.slice(index + count);
- }
- exports.spliceStr = spliceStr;
- function camelize(str) {
- return str.trim().replace(/[-_\s]+(.)?/g, (match, c) => c.toUpperCase());
- }
- exports.camelize = camelize;
- function underscore(str) {
- return inflection.underscore(str);
- }
- exports.underscore = underscore;
- function singularize(str) {
- return inflection.singularize(str);
- }
- exports.singularize = singularize;
- function pluralize(str) {
- return inflection.pluralize(str);
- }
- exports.pluralize = pluralize;
- function format(arr, dialect) {
- const timeZone = null;
- return SqlString.format(arr[0], arr.slice(1), timeZone, dialect);
- }
- exports.format = format;
- function formatNamedParameters(sql, parameters, dialect) {
- const timeZone = null;
- return SqlString.formatNamedParameters(sql, parameters, timeZone, dialect);
- }
- exports.formatNamedParameters = formatNamedParameters;
- function cloneDeep(obj, onlyPlain) {
- obj = obj || {};
- return _.cloneDeepWith(obj, (elem) => {
- if (Array.isArray(elem) || _.isPlainObject(elem)) {
- return void 0;
- }
- if (onlyPlain || typeof elem === "object") {
- return elem;
- }
- if (elem && typeof elem.clone === "function") {
- return elem.clone();
- }
- });
- }
- exports.cloneDeep = cloneDeep;
- function mapFinderOptions(options, Model) {
- if (options.attributes && Array.isArray(options.attributes)) {
- options.attributes = Model._injectDependentVirtualAttributes(options.attributes);
- options.attributes = options.attributes.filter((v) => !Model._virtualAttributes.has(v));
- }
- mapOptionFieldNames(options, Model);
- return options;
- }
- exports.mapFinderOptions = mapFinderOptions;
- function mapOptionFieldNames(options, Model) {
- if (Array.isArray(options.attributes)) {
- options.attributes = options.attributes.map((attr) => {
- if (typeof attr !== "string")
- return attr;
- if (Model.rawAttributes[attr] && attr !== Model.rawAttributes[attr].field) {
- return [Model.rawAttributes[attr].field, attr];
- }
- return attr;
- });
- }
- if (options.where && _.isPlainObject(options.where)) {
- options.where = mapWhereFieldNames(options.where, Model);
- }
- return options;
- }
- exports.mapOptionFieldNames = mapOptionFieldNames;
- function mapWhereFieldNames(attributes, Model) {
- if (attributes) {
- attributes = cloneDeep(attributes);
- getComplexKeys(attributes).forEach((attribute) => {
- const rawAttribute = Model.rawAttributes[attribute];
- if (rawAttribute && rawAttribute.field !== rawAttribute.fieldName) {
- attributes[rawAttribute.field] = attributes[attribute];
- delete attributes[attribute];
- }
- if (_.isPlainObject(attributes[attribute]) && !(rawAttribute && (rawAttribute.type instanceof DataTypes.HSTORE || rawAttribute.type instanceof DataTypes.JSON))) {
- attributes[attribute] = mapOptionFieldNames({
- where: attributes[attribute]
- }, Model).where;
- }
- if (Array.isArray(attributes[attribute])) {
- attributes[attribute].forEach((where, index) => {
- if (_.isPlainObject(where)) {
- attributes[attribute][index] = mapWhereFieldNames(where, Model);
- }
- });
- }
- });
- }
- return attributes;
- }
- exports.mapWhereFieldNames = mapWhereFieldNames;
- function mapValueFieldNames(dataValues, fields, Model) {
- const values = {};
- for (const attr of fields) {
- if (dataValues[attr] !== void 0 && !Model._virtualAttributes.has(attr)) {
- if (Model.rawAttributes[attr] && Model.rawAttributes[attr].field && Model.rawAttributes[attr].field !== attr) {
- values[Model.rawAttributes[attr].field] = dataValues[attr];
- } else {
- values[attr] = dataValues[attr];
- }
- }
- }
- return values;
- }
- exports.mapValueFieldNames = mapValueFieldNames;
- function isColString(value) {
- return typeof value === "string" && value[0] === "$" && value[value.length - 1] === "$";
- }
- exports.isColString = isColString;
- function canTreatArrayAsAnd(arr) {
- return arr.some((arg) => _.isPlainObject(arg) || arg instanceof Where);
- }
- exports.canTreatArrayAsAnd = canTreatArrayAsAnd;
- function combineTableNames(tableName1, tableName2) {
- return tableName1.toLowerCase() < tableName2.toLowerCase() ? tableName1 + tableName2 : tableName2 + tableName1;
- }
- exports.combineTableNames = combineTableNames;
- function toDefaultValue(value, dialect) {
- if (typeof value === "function") {
- const tmp = value();
- if (tmp instanceof DataTypes.ABSTRACT) {
- return tmp.toSql();
- }
- return tmp;
- }
- if (value instanceof DataTypes.UUIDV1) {
- return uuidv1();
- }
- if (value instanceof DataTypes.UUIDV4) {
- return uuidv4();
- }
- if (value instanceof DataTypes.NOW) {
- return now(dialect);
- }
- if (Array.isArray(value)) {
- return value.slice();
- }
- if (_.isPlainObject(value)) {
- return __spreadValues({}, value);
- }
- return value;
- }
- exports.toDefaultValue = toDefaultValue;
- function defaultValueSchemable(value) {
- if (value === void 0) {
- return false;
- }
- if (value instanceof DataTypes.NOW) {
- return false;
- }
- if (value instanceof DataTypes.UUIDV1 || value instanceof DataTypes.UUIDV4) {
- return false;
- }
- return typeof value !== "function";
- }
- exports.defaultValueSchemable = defaultValueSchemable;
- function removeNullValuesFromHash(hash, omitNull, options) {
- let result = hash;
- options = options || {};
- options.allowNull = options.allowNull || [];
- if (omitNull) {
- const _hash = {};
- _.forIn(hash, (val, key) => {
- if (options.allowNull.includes(key) || key.endsWith("Id") || val !== null && val !== void 0) {
- _hash[key] = val;
- }
- });
- result = _hash;
- }
- return result;
- }
- exports.removeNullValuesFromHash = removeNullValuesFromHash;
- const dialects = /* @__PURE__ */ new Set(["mariadb", "mysql", "postgres", "sqlite", "mssql", "db2"]);
- function now(dialect) {
- const d = new Date();
- if (!dialects.has(dialect)) {
- d.setMilliseconds(0);
- }
- return d;
- }
- exports.now = now;
- const TICK_CHAR = "`";
- exports.TICK_CHAR = TICK_CHAR;
- function addTicks(s, tickChar) {
- tickChar = tickChar || TICK_CHAR;
- return tickChar + removeTicks(s, tickChar) + tickChar;
- }
- exports.addTicks = addTicks;
- function removeTicks(s, tickChar) {
- tickChar = tickChar || TICK_CHAR;
- return s.replace(new RegExp(tickChar, "g"), "");
- }
- exports.removeTicks = removeTicks;
- function flattenObjectDeep(value) {
- if (!_.isPlainObject(value))
- return value;
- const flattenedObj = {};
- function flattenObject(obj, subPath) {
- Object.keys(obj).forEach((key) => {
- const pathToProperty = subPath ? `${subPath}.${key}` : key;
- if (typeof obj[key] === "object" && obj[key] !== null) {
- flattenObject(obj[key], pathToProperty);
- } else {
- flattenedObj[pathToProperty] = _.get(obj, key);
- }
- });
- return flattenedObj;
- }
- return flattenObject(value, void 0);
- }
- exports.flattenObjectDeep = flattenObjectDeep;
- class SequelizeMethod {
- }
- exports.SequelizeMethod = SequelizeMethod;
- class Fn extends SequelizeMethod {
- constructor(fn, args) {
- super();
- this.fn = fn;
- this.args = args;
- }
- clone() {
- return new Fn(this.fn, this.args);
- }
- }
- exports.Fn = Fn;
- class Col extends SequelizeMethod {
- constructor(col, ...args) {
- super();
- if (args.length > 0) {
- col = args;
- }
- this.col = col;
- }
- }
- exports.Col = Col;
- class Cast extends SequelizeMethod {
- constructor(val, type, json) {
- super();
- this.val = val;
- this.type = (type || "").trim();
- this.json = json || false;
- }
- }
- exports.Cast = Cast;
- class Literal extends SequelizeMethod {
- constructor(val) {
- super();
- this.val = val;
- }
- }
- exports.Literal = Literal;
- class Json extends SequelizeMethod {
- constructor(conditionsOrPath, value) {
- super();
- if (_.isObject(conditionsOrPath)) {
- this.conditions = conditionsOrPath;
- } else {
- this.path = conditionsOrPath;
- if (value) {
- this.value = value;
- }
- }
- }
- }
- exports.Json = Json;
- class Where extends SequelizeMethod {
- constructor(attribute, comparator, logic) {
- super();
- if (logic === void 0) {
- logic = comparator;
- comparator = "=";
- }
- this.attribute = attribute;
- this.comparator = comparator;
- this.logic = logic;
- }
- }
- exports.Where = Where;
- function getOperators(obj) {
- return Object.getOwnPropertySymbols(obj).filter((s) => operatorsSet.has(s));
- }
- exports.getOperators = getOperators;
- function getComplexKeys(obj) {
- return getOperators(obj).concat(Object.keys(obj));
- }
- exports.getComplexKeys = getComplexKeys;
- function getComplexSize(obj) {
- return Array.isArray(obj) ? obj.length : getComplexKeys(obj).length;
- }
- exports.getComplexSize = getComplexSize;
- function isWhereEmpty(obj) {
- return !!obj && _.isEmpty(obj) && getOperators(obj).length === 0;
- }
- exports.isWhereEmpty = isWhereEmpty;
- function generateEnumName(tableName, columnName) {
- return `enum_${tableName}_${columnName}`;
- }
- exports.generateEnumName = generateEnumName;
- function camelizeObjectKeys(obj) {
- const newObj = new Object();
- Object.keys(obj).forEach((key) => {
- newObj[camelize(key)] = obj[key];
- });
- return newObj;
- }
- exports.camelizeObjectKeys = camelizeObjectKeys;
- function defaults(object, ...sources) {
- object = Object(object);
- sources.forEach((source) => {
- if (source) {
- source = Object(source);
- getComplexKeys(source).forEach((key) => {
- const value = object[key];
- if (value === void 0 || _.eq(value, Object.prototype[key]) && !Object.prototype.hasOwnProperty.call(object, key)) {
- object[key] = source[key];
- }
- });
- }
- });
- return object;
- }
- exports.defaults = defaults;
- function nameIndex(index, tableName) {
- if (tableName.tableName)
- tableName = tableName.tableName;
- if (!Object.prototype.hasOwnProperty.call(index, "name")) {
- const fields = index.fields.map((field) => typeof field === "string" ? field : field.name || field.attribute);
- index.name = underscore(`${tableName}_${fields.join("_")}`);
- }
- return index;
- }
- exports.nameIndex = nameIndex;
- function intersects(arr1, arr2) {
- return arr1.some((v) => arr2.includes(v));
- }
- exports.intersects = intersects;
- function safeStringifyJson(value) {
- return JSON.stringify(value, (key, value2) => {
- if (typeof value2 === "bigint") {
- return String(value2);
- }
- return value2;
- });
- }
- exports.safeStringifyJson = safeStringifyJson;
- //# sourceMappingURL=utils.js.map
|