metal-orm 1.0.27 → 1.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -98,6 +98,8 @@ __export(index_exports, {
98
98
  createPostgresExecutor: () => createPostgresExecutor,
99
99
  createQueryLoggingExecutor: () => createQueryLoggingExecutor,
100
100
  createSqliteExecutor: () => createSqliteExecutor,
101
+ createTediousExecutor: () => createTediousExecutor,
102
+ createTediousMssqlClient: () => createTediousMssqlClient,
101
103
  currentDate: () => currentDate,
102
104
  currentTime: () => currentTime,
103
105
  dateAdd: () => dateAdd,
@@ -7662,6 +7664,71 @@ function createMssqlExecutor(client) {
7662
7664
  }
7663
7665
  };
7664
7666
  }
7667
+ var defaultInferType = (value, TYPES) => {
7668
+ if (value === null || value === void 0) return TYPES.NVarChar;
7669
+ if (typeof value === "number") {
7670
+ return Number.isInteger(value) ? TYPES.Int : TYPES.Float;
7671
+ }
7672
+ if (typeof value === "bigint") return TYPES.BigInt;
7673
+ if (typeof value === "boolean") return TYPES.Bit;
7674
+ if (value instanceof Date) return TYPES.DateTime;
7675
+ if (typeof Buffer !== "undefined" && Buffer.isBuffer(value)) {
7676
+ return TYPES.VarBinary;
7677
+ }
7678
+ return TYPES.NVarChar;
7679
+ };
7680
+ function createTediousMssqlClient(connection, { Request, TYPES }, options) {
7681
+ const inferType = options?.inferType ?? defaultInferType;
7682
+ return {
7683
+ async query(sql, params = []) {
7684
+ const rows = await new Promise(
7685
+ (resolve, reject) => {
7686
+ const collected = [];
7687
+ const request = new Request(sql, (err) => {
7688
+ if (err) return reject(err);
7689
+ resolve(collected);
7690
+ });
7691
+ params.forEach((value, idx) => {
7692
+ const sqlType = inferType(value, TYPES);
7693
+ request.addParameter(
7694
+ `p${idx + 1}`,
7695
+ sqlType,
7696
+ value
7697
+ );
7698
+ });
7699
+ request.on("row", (cols) => {
7700
+ const row = {};
7701
+ for (const col2 of cols) {
7702
+ row[col2.metadata.colName] = col2.value;
7703
+ }
7704
+ collected.push(row);
7705
+ });
7706
+ connection.execSql(request);
7707
+ }
7708
+ );
7709
+ return { recordset: rows };
7710
+ },
7711
+ beginTransaction: connection.beginTransaction ? () => new Promise((resolve, reject) => {
7712
+ connection.beginTransaction(
7713
+ (err) => err ? reject(err) : resolve()
7714
+ );
7715
+ }) : void 0,
7716
+ commit: connection.commitTransaction ? () => new Promise((resolve, reject) => {
7717
+ connection.commitTransaction(
7718
+ (err) => err ? reject(err) : resolve()
7719
+ );
7720
+ }) : void 0,
7721
+ rollback: connection.rollbackTransaction ? () => new Promise((resolve, reject) => {
7722
+ connection.rollbackTransaction(
7723
+ (err) => err ? reject(err) : resolve()
7724
+ );
7725
+ }) : void 0
7726
+ };
7727
+ }
7728
+ function createTediousExecutor(connection, module2, options) {
7729
+ const client = createTediousMssqlClient(connection, module2, options);
7730
+ return createMssqlExecutor(client);
7731
+ }
7665
7732
  // Annotate the CommonJS export names for ESM import in node:
7666
7733
  0 && (module.exports = {
7667
7734
  AsyncLocalStorage,
@@ -7719,6 +7786,8 @@ function createMssqlExecutor(client) {
7719
7786
  createPostgresExecutor,
7720
7787
  createQueryLoggingExecutor,
7721
7788
  createSqliteExecutor,
7789
+ createTediousExecutor,
7790
+ createTediousMssqlClient,
7722
7791
  currentDate,
7723
7792
  currentTime,
7724
7793
  dateAdd,