@data-master/data-connector-config
v1.0.0
Published
A flexible and extensible library for managing configuration settings for various data connectors in JavaScript/TypeScript applications. It provides a generic class, DataConnectorConfig, that allows users to define, manipulate, validate, and serialize con
Downloads
4
Maintainers
Readme
Data Connector Config
Introduction
DataConnectorConfig
is a versatile class designed to manage generic data connector configurations in JavaScript/TypeScript applications. It provides a flexible way to define, manipulate, validate, and serialize configurations for various data connectors.
Installation
You can install @data-master/data-connector-config
via npm or yarn:
npm install @data-master/data-connector-config
Usage
Here's how you can use DataConnectorConfig
in your project:
import { DataConnectorConfig } from '@data-master/data-connector-config';
// Create a new DataConnectorConfig instance
const config = new DataConnectorConfig({
endpoint: 'https://example.com/api',
timeout: 5000,
nestedConfig: new DataConnectorConfig({
nestedOption: 'value'
})
});
// Validate the configuration
if (config.validate(['endpoint'])) {
console.log('Configuration is valid');
} else {
console.error('Configuration is invalid');
}
// Convert configuration to JSON
const jsonConfig = config.toJSON();
console.log(jsonConfig);
// Get configuration values
console.log(config.getConfig('endpoint'));
// Set configuration values
config.setConfig('newOption', 'newValue');
API
DataConnectorConfig(config, options = [], validate = false)
config
: An optional object representing initial configuration values.options
: An optional array of strings representing available configuration options.validate
: An optional boolean indicating whether to validate configuration options.
setOptions(options)
Set available options for configuration.
options
: An array of strings representing available options for configuration.
setConfigs(config, validate = false)
Set configuration options.
config
: An object representing the configuration.validate
: An optional boolean indicating whether to validate configuration options.
setConfig(key, value, validate = false)
Set a configuration option.
key
: The configuration option key.value
: The configuration option value.validate
: An optional boolean indicating whether to validate configuration options.
getConfig(key)
Get the configuration for the specified key.
key
: The configuration option key.
getConfigs()
Get all configurations.
toJSON()
Convert the configuration to JSON.
validate(requiredFields = [], ignoreExtra = true)
Validate the configuration.
requiredFields
: An optional array of strings representing required fields.ignoreExtra
: An optional boolean indicating whether to ignore extra fields.
Supported Connectors
MongoDB Connector
The MongoDBConfig
class represents configuration for a MongoDB data connector. It extends DataConnectorConfig
and provides specific getters and setters for MongoDB-related options.
Usage Example
import { MongoDBConfig } from '@data-master/data-connector-config';
const mongoConfig = new MongoDBConfig({
username: 'user',
password: 'pass',
host: 'localhost',
port: 27017
});
MySQL Connector
The MySQLConfig
class represents configuration for a MySQL data connector. It extends DataConnectorConfig
and provides specific getters and setters for MySQL-related options.
Usage Example
import { MySQLConfig } from '@data-master/data-connector-config';
const mysqlConfig = new MySQLConfig({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb'
});
Snowflake Connector
The SnowflakeConfig
class represents configuration for a Snowflake data connector. It extends DataConnectorConfig
and provides specific getters and setters for Snowflake-related options.
Usage Example
import { SnowflakeConfig } from '@data-master/data-connector-config';
const snowflakeConfig = new SnowflakeConfig({
username: 'user',
password: 'pass',
account: 'account-name',
host: 'hostname.snowflakecomputing.com',
database: 'mydb',
schema: 'public'
});
License
This project is licensed under the GNU Affero General Public License v3.