UNPKG

sequelize

Version:

Sequelize is a promise-based Node.js ORM tool for Postgres, MySQL, MariaDB, SQLite, Microsoft SQL Server, Amazon Redshift and Snowflake’s Data Cloud. It features solid transaction support, relations, eager and lazy loading, read replication and more.

69 lines (68 loc) 2.31 kB
var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); var __export = (target, all) => { __markAsModule(target); for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; __export(exports, { JoinSQLFragmentsError: () => JoinSQLFragmentsError, joinSQLFragments: () => joinSQLFragments }); function doesNotWantLeadingSpace(str) { return /^[;,)]/.test(str); } function doesNotWantTrailingSpace(str) { return /\($/.test(str); } function singleSpaceJoinHelper(parts) { return parts.reduce(({ skipNextLeadingSpace, result }, part) => { if (skipNextLeadingSpace || doesNotWantLeadingSpace(part)) { result += part.trim(); } else { result += ` ${part.trim()}`; } return { skipNextLeadingSpace: doesNotWantTrailingSpace(part), result }; }, { skipNextLeadingSpace: true, result: "" }).result; } function joinSQLFragments(array) { if (array.length === 0) return ""; const truthyArray = array.filter((x) => !!x); const flattenedArray = truthyArray.map((fragment) => { if (Array.isArray(fragment)) { return joinSQLFragments(fragment); } return fragment; }); for (const fragment of flattenedArray) { if (fragment && typeof fragment !== "string") { throw new JoinSQLFragmentsError(flattenedArray, fragment, `Tried to construct a SQL string with a non-string, non-falsy fragment (${fragment}).`); } } const trimmedArray = flattenedArray.map((x) => x.trim()); const nonEmptyStringArray = trimmedArray.filter((x) => x !== ""); return singleSpaceJoinHelper(nonEmptyStringArray); } class JoinSQLFragmentsError extends TypeError { constructor(args, fragment, message) { super(message); __publicField(this, "args"); __publicField(this, "fragment"); this.args = args; this.fragment = fragment; this.name = "JoinSQLFragmentsError"; } } //# sourceMappingURL=join-sql-fragments.js.map