{"_id":"@data-master/data-connector-config","name":"@data-master/data-connector-config","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@data-master/data-connector-config","version":"1.0.0","description":"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","main":"dist/index.js","scripts":{"build":"babel src -d dist"},"author":"","license":"AGPL-3.0","devDependencies":{"@babel/cli":"^7.21.0","@babel/core":"^7.21.4","@babel/preset-env":"^7.21.4"},"engines":{"node":">=14.17.0"},"keywords":["data","connector","configuration","MongoDB","MySQL","Snowflake"],"_id":"@data-master/data-connector-config@1.0.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Y4o36mgN2vAMO9iyXycQTrwHUGo1DJkI+nFMGhrX4BsLkXEj0HlQVOcUI4fQefXT6k5CPJv/3SLe5EvGCLL5fw==","shasum":"5f691354a02455f2ba2033eb3cae97774caefeb6","tarball":"https://registry.npmjs.org/@data-master/data-connector-config/-/data-connector-config-1.0.0.tgz","fileCount":8,"unpackedSize":56404,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSJCdD9Jju2IIhQSUFKLLOZ4ELrr/rO/pw/V+uOzFFTwIhAO8paGS5lFr7AfIwgLz3usrmKLA1+4rsslNnPbsRHrRb"}]},"_npmUser":{"name":"darkknight","email":"mail.biswas.arnab@gmail.com"},"directories":{},"maintainers":[{"name":"darkknight","email":"mail.biswas.arnab@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/data-connector-config_1.0.0_1711571517416_0.8748378341629104"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-27T20:31:57.312Z","1.0.0":"2024-03-27T20:31:57.591Z","modified":"2024-03-27T20:31:58.383Z"},"maintainers":[{"name":"darkknight","email":"mail.biswas.arnab@gmail.com"}],"description":"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","keywords":["data","connector","configuration","MongoDB","MySQL","Snowflake"],"license":"AGPL-3.0","readme":"# Data Connector Config\r\n\r\n[![npm version](https://badge.fury.io/js/%40data-master%2Fdata-connector-config.svg)](https://badge.fury.io/js/%40data-master%2Fdata-connector-config)\r\n\r\n## Introduction\r\n\r\n`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.\r\n\r\n## Installation\r\n\r\nYou can install `@data-master/data-connector-config` via npm or yarn:\r\n\r\n```bash\r\nnpm install @data-master/data-connector-config\r\n```\r\n\r\n\r\n## Usage\r\n\r\nHere's how you can use `DataConnectorConfig` in your project:\r\n\r\n```javascript\r\nimport { DataConnectorConfig } from '@data-master/data-connector-config';\r\n\r\n// Create a new DataConnectorConfig instance\r\nconst config = new DataConnectorConfig({\r\n    endpoint: 'https://example.com/api',\r\n    timeout: 5000,\r\n    nestedConfig: new DataConnectorConfig({\r\n        nestedOption: 'value'\r\n    })\r\n});\r\n\r\n// Validate the configuration\r\nif (config.validate(['endpoint'])) {\r\n    console.log('Configuration is valid');\r\n} else {\r\n    console.error('Configuration is invalid');\r\n}\r\n\r\n// Convert configuration to JSON\r\nconst jsonConfig = config.toJSON();\r\nconsole.log(jsonConfig);\r\n\r\n// Get configuration values\r\nconsole.log(config.getConfig('endpoint'));\r\n\r\n// Set configuration values\r\nconfig.setConfig('newOption', 'newValue');\r\n```\r\n\r\n## API\r\n\r\n### `DataConnectorConfig(config, options = [], validate = false)`\r\n\r\n- `config`: An optional object representing initial configuration values.\r\n- `options`: An optional array of strings representing available configuration options.\r\n- `validate`: An optional boolean indicating whether to validate configuration options.\r\n\r\n### `setOptions(options)`\r\n\r\nSet available options for configuration.\r\n\r\n- `options`: An array of strings representing available options for configuration.\r\n\r\n### `setConfigs(config, validate = false)`\r\n\r\nSet configuration options.\r\n\r\n- `config`: An object representing the configuration.\r\n- `validate`: An optional boolean indicating whether to validate configuration options.\r\n\r\n### `setConfig(key, value, validate = false)`\r\n\r\nSet a configuration option.\r\n\r\n- `key`: The configuration option key.\r\n- `value`: The configuration option value.\r\n- `validate`: An optional boolean indicating whether to validate configuration options.\r\n\r\n### `getConfig(key)`\r\n\r\nGet the configuration for the specified key.\r\n\r\n- `key`: The configuration option key.\r\n\r\n### `getConfigs()`\r\n\r\nGet all configurations.\r\n\r\n### `toJSON()`\r\n\r\nConvert the configuration to JSON.\r\n\r\n### `validate(requiredFields = [], ignoreExtra = true)`\r\n\r\nValidate the configuration.\r\n\r\n- `requiredFields`: An optional array of strings representing required fields.\r\n- `ignoreExtra`: An optional boolean indicating whether to ignore extra fields.\r\n\r\n\r\n## Supported Connectors\r\n\r\n### MongoDB Connector\r\n\r\nThe `MongoDBConfig` class represents configuration for a MongoDB data connector. It extends `DataConnectorConfig` and provides specific getters and setters for MongoDB-related options.\r\n\r\n#### Usage Example\r\n\r\n```javascript\r\nimport { MongoDBConfig } from '@data-master/data-connector-config';\r\n\r\nconst mongoConfig = new MongoDBConfig({\r\n    username: 'user',\r\n    password: 'pass',\r\n    host: 'localhost',\r\n    port: 27017\r\n});\r\n```\r\n\r\n### MySQL Connector\r\n\r\nThe `MySQLConfig` class represents configuration for a MySQL data connector. It extends `DataConnectorConfig` and provides specific getters and setters for MySQL-related options.\r\n\r\n#### Usage Example\r\n\r\n```javascript\r\nimport { MySQLConfig } from '@data-master/data-connector-config';\r\n\r\nconst mysqlConfig = new MySQLConfig({\r\n    host: 'localhost',\r\n    user: 'root',\r\n    password: 'password',\r\n    database: 'mydb'\r\n});\r\n```\r\n\r\n### Snowflake Connector\r\n\r\nThe `SnowflakeConfig` class represents configuration for a Snowflake data connector. It extends `DataConnectorConfig` and provides specific getters and setters for Snowflake-related options.\r\n\r\n#### Usage Example\r\n\r\n```javascript\r\nimport { SnowflakeConfig } from '@data-master/data-connector-config';\r\n\r\nconst snowflakeConfig = new SnowflakeConfig({\r\n    username: 'user',\r\n    password: 'pass',\r\n    account: 'account-name',\r\n    host: 'hostname.snowflakecomputing.com',\r\n    database: 'mydb',\r\n    schema: 'public'\r\n});\r\n```\r\n\r\n## License\r\nThis project is licensed under the GNU Affero General Public License v3.\r\n","readmeFilename":"readme.md"}