Socket
Socket
Sign inDemoInstall

@debitoor/mongocopy

Package Overview
Dependencies
Maintainers
15
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@debitoor/mongocopy - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

.eslintrc.js

73

index.js

@@ -1,33 +0,44 @@

var mongojs = require('mongojs');
var stream = require('stream');
var async = require('async');
const {MongoClient} = require('mongodb');
const stream = require('stream');
const async = require('async');
var DUPLICATE_KEY_ERROR = 11000;
const DUPLICATE_KEY_ERROR = 11000;
function run(opts, cb) {
var collections = Object.keys(opts.data);
var dbFrom = opts.dbFrom.ObjectId ?
opts.dbFrom :
mongojs(opts.dbFrom.uri, opts.dbFrom.options, collections);
var dbTo = opts.dbTo && opts.dbTo.ObjectId ?
opts.dbTo :
mongojs(opts.dbTo.uri, opts.dbTo.options, collections);
const collections = Object.keys(opts.data);
let {dbFrom, dbTo} = opts;
if(dbFrom.ObjectId && dbTo.ObjectId) {
return startCopy();
}
var report = {};
log('copying..');
return async.eachSeries(collections, runOne, function(err) {
log('finished.');
return cb(err, report);
const report = {};
async.parallel({
dbFrom: (done) => MongoClient.connect(dbFrom.uri, dbFrom.options, done),
dbTo: (done) => MongoClient.connect(dbTo.uri, dbFrom.options, done)
}, (err, dbs) => {
if(err) {
return cb(err);
}
dbFrom = dbs.dbFrom;
dbTo = dbs.dbTo;
startCopy();
});
function startCopy() {
log('copying..');
return async.eachSeries(collections, runOne, function(err) {
log('finished.');
return cb(err, report);
});
}
function runOne(colName, cb) {
var colFrom = dbFrom[colName];
var colTo = dbTo[colName];
if (!colFrom || !colTo) {
return cb(new Error('There is no column "' + colName + '" in database'));
}
var query = opts.data[colName].query || {};
var transform = opts.data[colName].transform;
const colFrom = dbFrom.collection(colName);
const colTo = dbTo.collection(colName);
const query = opts.data[colName].query || {};
const {transform} = opts.data[colName];
var insy = new stream.Transform({objectMode: true});
const insy = new stream.Transform({objectMode: true});
insy._transform = function (doc, enc, cb) {

@@ -38,4 +49,4 @@ if (opts.dryRun) {

}
var _this = this;
colTo.insert(doc, function(err, newDoc) {
const _this = this;
colTo.insertOne(doc, function(err, newDoc) {
if (err) {

@@ -52,12 +63,12 @@ if (err.code === DUPLICATE_KEY_ERROR) {

});
}
};
log(colName, 'started..');
var cursor = colFrom.find(query);
let cursor = colFrom.find(query);
report[colName] = {copied: 0, duplicates: 0, duplicateIds: []};
if (transform) {
var transy = new stream.Transform({objectMode: true});
const transy = new stream.Transform({objectMode: true});
transy._transform = function(doc, enc, cb) {
var _this = this;
const _this = this;
return transform(doc, function(err, newDoc) {

@@ -70,3 +81,3 @@ if (err){

});
}
};
cursor = cursor.pipe(transy);

@@ -73,0 +84,0 @@ }

{
"name": "@debitoor/mongocopy",
"version": "1.0.0",
"version": "1.1.0",
"description": "module for copying the subsets of data between mongo databases",
"main": "index.js",
"scripts": {
"test": "node test"
"test": "mocha"
},

@@ -21,8 +21,11 @@ "keywords": [

"dependencies": {
"mongojs": "2.4.0",
"async": "2.1.4"
"async": "2.1.4",
"mongodb": "2.2.23"
},
"devDependencies": {
"tape": "4.6.3"
"@debitoor/eslint-config-debitoor": "1.2.0",
"chai": "3.5.0",
"mocha": "3.2.0",
"mocha-eslint": "3.0.1"
}
}

@@ -1,6 +0,4 @@

mongocopy [![Build Status](https://travis-ci.org/debitoor/mongocopy.png?branch=master)](https://travis-ci.org/debitoor/mongocopy)
mongocopy [![npm version](https://badge.fury.io/js/%40debitoor%2Fmongocopy.svg)](https://badge.fury.io/js/%40debitoor%2Fmongocopy) [![Build Status](https://travis-ci.org/debitoor/mongocopy.png?branch=master)](https://travis-ci.org/debitoor/mongocopy) [![dependencies Status](https://david-dm.org/debitoor/mongocopy/status.svg)](https://david-dm.org/debitoor/mongocopy)
=========
[![NPM](https://nodei.co/npm/mongocopy.png?global=true)](https://nodei.co/npm/mongocopy/)
Sometimes we need to copy a special set of user data from one environment to another.

@@ -7,0 +5,0 @@ The module fits nicely when you want to

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc