@data-master/data-connector-config

1.0.0 • Public • Published

Data Connector Config

npm version

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.

Package Sidebar

Install

npm i @data-master/data-connector-config

Weekly Downloads

2

Version

1.0.0

License

AGPL-3.0

Unpacked Size

56.4 kB

Total Files

8

Last publish

Collaborators

  • darkknight