npm.io
2.1.2 • Published 2d ago

@biorate/mssql

Licence
MIT
Version
2.1.2
Deps
6
Size
12 kB
Vulns
0
Weekly
0
Stars
5

@biorate/mssql

MSSQL connector — connection manager for the mssql library (Microsoft SQL Server).

Features

  • Auto-connect — creates ConnectionPool on @init() via config namespace Mssql.
  • Full TSQL support — raw query(), prepared statements, stored procedures via the mssql connection.
  • Typed errorsMssqlCantConnectError on connection failure.

Installation

pnpm add @biorate/mssql

Requires @biorate/connector, @biorate/inversion, @biorate/config, mssql.

Quick start

import { inject, container, Types, Core } from '@biorate/inversion';
import { IConfig, Config } from '@biorate/config';
import { MssqlConnector } from '@biorate/mssql';

class Root extends Core() {
  @inject(MssqlConnector) public connector: MssqlConnector;
}

container.bind<IConfig>(Types.Config).to(Config).inSingletonScope();
container.bind<MssqlConnector>(MssqlConnector).toSelf().inSingletonScope();
container.bind<Root>(Root).toSelf().inSingletonScope();

container.get<IConfig>(Types.Config).merge({
  Mssql: [{
    name: 'connection',
    options: {
      server: 'localhost',
      user: 'sa',
      password: 'admin_007',
      database: 'master',
      options: { trustServerCertificate: true },
    },
  }],
});

(async () => {
  const root = container.get<Root>(Root);
  await root.$run();
  await root.connector.current!.query(`
    CREATE TABLE #test (count int, text varchar(20));
    INSERT INTO #test (count, text) VALUES (1, 'test1'), (2, 'test2');
    SELECT * FROM #test;
  `);
  const result = await root.connector.current!.query(`SELECT 1 AS result`);
  console.log(result.recordset); // [{ result: 1 }]
})();

API Reference

MssqlConnector
Member Type Description
namespace 'Mssql' Config key for connection definitions.
connect(config) (config) => Promise<IMssqlConnection> Creates ConnectionPool via mssql.connect.
Config
interface IMssqlConfig extends IConnectorConfig {
  options: config;  // mssql ConnectionPool config (server, user, password, database, etc.)
}
Errors
Error Condition
MssqlCantConnectError mssql.connect() fails.

Architecture

MssqlConnector extends Connector<IMssqlConfig, IMssqlConnection>
│
├── namespace = 'Mssql'
├── connect(config) → await mssql.connect(config.options)
└── connection is a mssql.ConnectionPool
Learn
  • Documentation can be found here - docs.
Release History

See the CHANGELOG

License

MIT

Keywords