Socket
Socket
Sign inDemoInstall

mongo-seeding-cli

Package Overview
Dependencies
61
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.0.0-0 to 3.0.0-1

4

bin/seed.js

@@ -5,2 +5,4 @@ #!/usr/bin/env node

require('ts-node').register();
require('../dist/index').run();
const { cliSeeder } = require('../dist/index');
cliSeeder.run();

@@ -15,3 +15,5 @@ "use strict";

'$ {bold seed}',
'$ {bold seed ./seed-data/}',
'$ {bold seed -u `mongodb://127.0.0.1:27017/mydbname` --drop-database --replace-id}',
'$ {bold seed -u `mongodb://127.0.0.1:27017/mydbname` --replace-id /absolute/path/}',
],

@@ -18,0 +20,0 @@ },

@@ -1,1 +0,7 @@

export declare const run: () => Promise<void>;
declare class CliSeeder {
run: () => Promise<void>;
private getCollectionReadingConfig;
private printError;
}
export declare const cliSeeder: CliSeeder;
export {};

@@ -14,32 +14,59 @@ "use strict";

const commandLineArgs = require("command-line-args");
const path_1 = require("path");
const mongo_seeding_1 = require("mongo-seeding");
const options_1 = require("./options");
const help_1 = require("./help");
exports.run = () => __awaiter(this, void 0, void 0, function* () {
let options;
try {
options = commandLineArgs(options_1.cliOptions);
class CliSeeder {
constructor() {
this.run = () => __awaiter(this, void 0, void 0, function* () {
let options;
try {
options = commandLineArgs(options_1.cliOptions);
}
catch (err) {
this.printError(err);
return;
}
if (help_1.shouldShowHelp(options)) {
help_1.showHelp();
return;
}
try {
options_1.validateOptions(options);
}
catch (err) {
this.printError(err);
return;
}
const config = options_1.createConfigFromOptions(options);
const seeder = new mongo_seeding_1.Seeder(config);
const collectionsPath = options.data ? options.data : './';
const collectionReadingConfig = this.getCollectionReadingConfig(options);
try {
const collections = seeder.readCollectionsFromPath(path_1.resolve(collectionsPath), collectionReadingConfig);
yield seeder.import(collections);
}
catch (err) {
this.printError(err);
}
process.exit(0);
});
this.getCollectionReadingConfig = (options) => {
const transformers = [];
const replaceIdWithUnderscoreId = options['replace-id'] || process.env.REPLACE_ID === 'true';
if (replaceIdWithUnderscoreId) {
transformers.push(mongo_seeding_1.Seeder.Transformers.replaceDocumentIdWithUnderscoreId);
}
return {
extensions: ['ts', 'js', 'json'],
transformers,
};
};
this.printError = (err) => {
console.error(`Error ${err.name}: ${err.message}`);
process.exit(0);
};
}
catch (err) {
printError(err);
process.exit(0);
return;
}
if (help_1.shouldShowHelp(options)) {
help_1.showHelp();
return;
}
const config = options_1.createConfigFromOptions(options);
try {
options_1.validateOptions(options);
yield mongo_seeding_1.seedDatabase(config);
}
catch (err) {
printError(err);
}
process.exit(0);
});
const printError = (err) => {
console.error(`Error ${err.name}: ${err.message}`);
};
}
exports.cliSeeder = new CliSeeder();
//# sourceMappingURL=index.js.map

@@ -1,5 +0,7 @@

import { AppConfig, DeepPartial } from 'mongo-seeding/dist/common';
import { DeepPartial } from 'mongo-seeding/dist/common';
import { CommandLineOption, CommandLineArguments } from './types';
import { SeederConfig } from 'mongo-seeding';
export declare const cliOptions: CommandLineOption[];
export declare const validateOptions: (options: CommandLineArguments) => void;
export declare const createConfigFromOptions: (cmdArgs: CommandLineArguments) => DeepPartial<AppConfig>;
export declare const createConfigFromOptions: (cmdArgs: CommandLineArguments) => DeepPartial<SeederConfig>;
export declare function convertEmptyObjectToUndefined(obj: any): object | undefined;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = require("path");
const extend = require("extend");

@@ -47,3 +46,3 @@ const validators_1 = require("./validators");

alias: 'u',
description: 'If defined, the URI will be used for establishing connection to database, ignoring values defined via other `db-*` parameters, i.e. `db-name`, `db-host`, etc.; Default: {bold undefined}',
description: 'If defined, the URI will be used for establishing connection to database, ignoring values defined via other `db-*` parameters, e.g. `db-name`, `db-host`, etc.; Default: {bold undefined}',
type: String,

@@ -62,4 +61,4 @@ },

{
name: 'drop-collection',
description: 'Drops collection before importing it',
name: 'drop-collections',
description: 'Drops every collection that is being imported',
type: Boolean,

@@ -69,3 +68,3 @@ },

name: 'replace-id',
description: 'Replaces `id` property with `_id` for every object to import',
description: 'Replaces `id` property with `_id` for every document before import',
type: Boolean,

@@ -92,16 +91,15 @@ },

return {
database: {
protocol: options['db-protocol'],
host: options['db-host'],
port: options['db-port'],
name: options['db-name'],
username: options['db-username'],
password: options['db-password'],
},
databaseConnectionUri: options['db-uri'],
inputPath: options.data ? path_1.resolve(options.data) : path_1.resolve('./'),
database: options['db-uri']
? options['db-uri']
: convertEmptyObjectToUndefined({
protocol: options['db-protocol'],
host: options['db-host'],
port: options['db-port'],
name: options['db-name'],
username: options['db-username'],
password: options['db-password'],
}),
databaseReconnectTimeout: options['reconnect-timeout'],
dropDatabase: options['drop-database'],
dropCollection: options['drop-collection'],
replaceIdWithUnderscoreId: options['replace-id'],
reconnectTimeoutInSeconds: options['reconnect-timeout'],
dropCollections: options['drop-collections'],
};

@@ -112,21 +110,29 @@ }

const envOptions = {
database: {
protocol: env.DB_PROTOCOL ? String(env.DB_PROTOCOL) : undefined,
host: env.DB_HOST ? String(env.DB_HOST) : undefined,
port: env.DB_PORT ? Number(env.DB_PORT) : undefined,
name: env.DB_NAME ? String(env.DB_NAME) : undefined,
username: env.DB_USERNAME ? String(env.DB_USERNAME) : undefined,
password: env.DB_PASSWORD ? String(env.DB_PASSWORD) : undefined,
},
databaseConnectionUri: env.DB_URI ? String(env.DB_URI) : undefined,
dropDatabase: env.DROP_DATABASE === 'true',
dropCollection: env.DROP_COLLECTION === 'true',
replaceIdWithUnderscoreId: env.REPLACE_ID === 'true',
supportedExtensions: ['ts', 'js', 'json'],
reconnectTimeoutInSeconds: env.RECONNECT_TIMEOUT
database: env.DB_URI
? String(env.DB_URI)
: convertEmptyObjectToUndefined({
protocol: env.DB_PROTOCOL ? String(env.DB_PROTOCOL) : undefined,
host: env.DB_HOST ? String(env.DB_HOST) : undefined,
port: env.DB_PORT ? Number(env.DB_PORT) : undefined,
name: env.DB_NAME ? String(env.DB_NAME) : undefined,
username: env.DB_USERNAME ? String(env.DB_USERNAME) : undefined,
password: env.DB_PASSWORD ? String(env.DB_PASSWORD) : undefined,
}),
databaseReconnectTimeout: env.RECONNECT_TIMEOUT
? Number(env.RECONNECT_TIMEOUT)
: undefined,
dropDatabase: env.DROP_DATABASE === 'true',
dropCollections: env.DROP_COLLECTIONS === 'true',
};
return envOptions;
}
function convertEmptyObjectToUndefined(obj) {
for (const key in obj) {
if (obj.hasOwnProperty(key) && typeof obj[key] !== 'undefined') {
return obj;
}
}
return undefined;
}
exports.convertEmptyObjectToUndefined = convertEmptyObjectToUndefined;
//# sourceMappingURL=options.js.map

@@ -12,3 +12,3 @@ export interface CommandLineOption {

'drop-database'?: boolean;
'drop-collection'?: boolean;
'drop-collections'?: boolean;
'replace-id'?: boolean;

@@ -15,0 +15,0 @@ 'db-protocol'?: string;

{
"name": "mongo-seeding-cli",
"description": "The ultimate command line tool for populating your MongoDB database.",
"version": "3.0.0-0",
"version": "3.0.0-1",
"license": "MIT",

@@ -57,3 +57,3 @@ "keywords": [

"preversion": "npm run build",
"test": "jest",
"test": "jest -i",
"test:unit": "jest unit",

@@ -64,9 +64,9 @@ "test:integration": "jest integration",

"dependencies": {
"@types/node": "^10.9.0",
"@types/node": "^10.11.4",
"command-line-args": "^5.0.0",
"command-line-usage": "^5.0.0",
"extend": "^3.0.2",
"mongo-seeding": "^3.0.0-0",
"mongo-seeding": "^3.0.0-1",
"ts-node": "^7.0.1",
"typescript": "^3.0.0"
"typescript": "^3.1.1"
},

@@ -76,6 +76,6 @@ "devDependencies": {

"@types/extend": "^3.0.0",
"@types/jest": "^23.3.2",
"@types/jest": "^23.3.3",
"jest": "^23.6.0",
"mongodb": "^3.1.6",
"ts-jest": "^23.1.0"
"ts-jest": "^23.10.3"
},

@@ -82,0 +82,0 @@ "jest": {

@@ -62,6 +62,6 @@ ![Mongo Seeding](https://raw.githubusercontent.com/pkosiec/mongo-seeding/master/docs/assets/logo.png)

| `--db-password {DB_PASSWORD}` | *`undefined`* | Password for connecting with database that requires authentication |
| `--drop-database` | `false` | Dropping entire database before data import |
| `--drop-collection` | `false` | Dropping every collection that is being imported |
| `--replace-id` | `false` | Replacing `id` property with `_id` for every document during data import |
| `--reconnect-timeout` | `10` (seconds) | Maximum time of waiting for successful MongoDB connection|
| `--drop-database` | `false` | Drops entire database before data import |
| `--drop-collections` | `false` | Drops every collection which is being imported |
| `--replace-id` | `false` | Replaces `id` property with `_id` for every document during data import |
| `--reconnect-timeout` | `10000` | Maximum time in milliseconds of waiting for successful MongoDB connection |
| `--help` or `-h` | n/a | Help

@@ -81,5 +81,5 @@

| DB_PASSWORD | *`undefined`* | Password for connecting with database that requires authentication |
| DROP_DATABASE | `false` | Dropping entire database before data import |
| DROP_COLLECTION | `false` | Dropping every collection that is being imported |
| REPLACE_ID | `false` | Replacing `id` property with `_id` for every document during import; useful for ORMs |
| RECONNECT_TIMEOUT | `10` | Maximum time, in which app should keep trying connecting to database |
| DROP_DATABASE | `false` | Drops entire database before data import |
| DROP_COLLECTIONS | `false` | Drops every collection which is being imported |
| REPLACE_ID | `false` | Replaces `id` property with `_id` for every document during import; useful for ORMs |
| RECONNECT_TIMEOUT | `10000` | Maximum time in milliseconds of waiting for successful MongoDB connection |

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc