tmap-mysql
v1.0.10
Published
MySQL Data Access Layer package for TradeMap4You projects.
Maintainers
Readme
tmap-mysql
MySQL Data Access Layer package for TradeMap4You projects.
Features
- Connection pooling for optimal performance
- Support for concurrent users (up to 1000)
- Full UTF-8 support (utf8mb4)
- Multiple query execution
- JSON table operations
- Connection pool management
Installation
Option 1: Install from npm (after publishing)
npm install tmap-mysqlOption 2: Use npm link for local development
For local testing and development, use npm link:
In the package directory (
TradeMap4You.JSPackages/DataAccess/MySql):npm linkThis creates a global symlink to this package.
In your project directory (e.g.,
TradeMap4You.AL.API):npm link tmap-mysqlThis links the local package to your project.
To unlink (when switching to published version):
npm unlink tmap-mysql npm install tmap-mysql
Usage
const MySqlDO = require('tmap-mysql');
const config = require('./config');
const dataRepo = new MySqlDO(config.mysqlConString);
// Example usage
const result = await dataRepo.executeQuery('SELECT * FROM users WHERE id = ?', [1]);Development
Building the Package
npm run buildThis builds the package using esbuild and outputs to dist/index.js.
Publishing to npm
Before publishing, ensure:
- ✅ Version is updated in
package.json - ✅ Package is built (
npm run build) - ✅ You're logged into npm (
npm login) - ✅ Package name is available (if first time publishing)
To publish:
npm publishNote: The prepublishOnly script will automatically build the package before publishing.
Version Management
- Patch version (1.0.6 → 1.0.7): Bug fixes
- Minor version (1.0.6 → 1.1.0): New features, backward compatible
- Major version (1.0.6 → 2.0.0): Breaking changes
Update version in package.json before publishing.
API Methods
executeQuery(query, params)- Execute parameterized querygetQueryResult(query)- Execute raw querygetTableData(tableName)- Get all data from a tableexecuteMultipleQuery(queryCollection)- Execute multiple queriesInsertRowFromData(tableName, data)- Insert single rowBulkInsertFromJson(tableName, jsonData)- Bulk insert from JSONgetPoolStatus()- Get connection pool statustestConnection()- Test database connectionclosePool()- Close connection pool (call on app shutdown)
Connection Pool Configuration
The package uses connection pooling with the following defaults:
- Connection Limit: 20
- Max Idle: 10
- Idle Timeout: 5 minutes (300000ms)
- Multiple Statements: Enabled
- Charset: utf8mb4
License
MIT
