update structure

This commit is contained in:
Philipp Kunz 2016-09-12 17:31:23 +02:00
parent 50a6a1a690
commit 411b0b1ae9
7 changed files with 52 additions and 18 deletions

View File

@ -6,13 +6,17 @@ export declare class DbCollection<T> {
/** /**
* adds a validation function that all newly inserted and updated objects have to pass * adds a validation function that all newly inserted and updated objects have to pass
*/ */
addObjectValidation(): void; addObjectValidation(funcArg: any): void;
/** /**
* inserts am object into the DbCollection * finds an object in the DbCollection
*/ */
insert(objectArg: T): void; find(docMatchArg: T): T[];
/**
* inserts object into the DbCollection
*/
insertOne(docArg: T): PromiseLike<void>;
/** /**
* inserts many objects at once into the DbCollection * inserts many objects at once into the DbCollection
*/ */
insertMany(objectArrayArg: T[]): void; insertMany(docArrayArg: T[]): void;
} }

View File

@ -6,15 +6,24 @@ class DbCollection {
/** /**
* adds a validation function that all newly inserted and updated objects have to pass * adds a validation function that all newly inserted and updated objects have to pass
*/ */
addObjectValidation() { } addObjectValidation(funcArg) { }
/** /**
* inserts am object into the DbCollection * finds an object in the DbCollection
*/ */
insert(objectArg) { } find(docMatchArg) {
return this.collection.find().toArray();
}
/**
* inserts object into the DbCollection
*/
insertOne(docArg) {
return this.collection.insertOne(docArg);
}
/** /**
* inserts many objects at once into the DbCollection * inserts many objects at once into the DbCollection
*/ */
insertMany(objectArrayArg) { } insertMany(docArrayArg) {
}
} }
exports.DbCollection = DbCollection; exports.DbCollection = DbCollection;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuZGJjb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRkYXRhLmNsYXNzZXMuZGJjb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQTtJQUVJLFlBQVksT0FBZSxFQUFFLGVBQTZCO1FBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLEtBQUcsQ0FBQztJQUV2Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxTQUFZLElBQUcsQ0FBQztJQUV2Qjs7T0FFRztJQUNILFVBQVUsQ0FBQyxjQUFtQixJQUFHLENBQUM7QUFDdEMsQ0FBQztBQXBCWSxvQkFBWSxlQW9CeEIsQ0FBQSJ9 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuZGJjb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRkYXRhLmNsYXNzZXMuZGJjb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQTtJQUVJLFlBQVksT0FBZSxFQUFFLGVBQTZCO1FBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLENBQUMsT0FBTyxJQUFFLENBQUM7SUFFOUI7O09BRUc7SUFDSCxJQUFJLENBQUMsV0FBYztRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxNQUFTO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxXQUFnQjtJQUUzQixDQUFDO0FBQ0wsQ0FBQztBQS9CWSxvQkFBWSxlQStCeEIsQ0FBQSJ9

View File

@ -5,7 +5,8 @@
"main": "dist/index.js", "main": "dist/index.js",
"typings": "dist/index.d.ts", "typings": "dist/index.d.ts",
"scripts": { "scripts": {
"test": "(npmts)" "test": "(npm run prepareMongo && npmts)",
"prepareMongo": "(rm -rf ./test/data && mkdir ./test/data/)"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@ -30,6 +31,7 @@
"@types/should": "^8.1.29", "@types/should": "^8.1.29",
"shelljs": "^0.7.4", "shelljs": "^0.7.4",
"should": "^11.1.0", "should": "^11.1.0",
"smartstring": "^2.0.17",
"typings-test": "^1.0.3" "typings-test": "^1.0.3"
} }
} }

View File

View File

@ -1,7 +1,7 @@
"use strict"; "use strict";
require('typings-test'); require('typings-test');
let portastic = require('portastic');
const shelljs = require('shelljs'); const shelljs = require('shelljs');
const smartstring = require('smartstring');
// the tested module // the tested module
const smartdata = require('../dist/index'); const smartdata = require('../dist/index');
let mongoChildProcess; let mongoChildProcess;
@ -13,7 +13,7 @@ describe('mongodb', function () {
mongoChildProcess = shelljs.exec('mongod --dbpath=./test/data --port 27017', { async: true, silent: true }); mongoChildProcess = shelljs.exec('mongod --dbpath=./test/data --port 27017', { async: true, silent: true });
let doneCalled = false; let doneCalled = false;
mongoChildProcess.stdout.on('data', function (data) { mongoChildProcess.stdout.on('data', function (data) {
console.log(data); console.log(smartstring.indent.indentWithPrefix(data, "*** MongoDB Process *** : "));
if (!doneCalled) { if (!doneCalled) {
if (/waiting for connections on port 27017/.test(data)) { if (/waiting for connections on port 27017/.test(data)) {
doneCalled = true; doneCalled = true;
@ -31,6 +31,9 @@ describe('smartdata', function () {
it('should create a collection', function () { it('should create a collection', function () {
testDbCollection = new smartdata.DbCollection('something', testDbConnection); testDbCollection = new smartdata.DbCollection('something', testDbConnection);
}); });
it('should insert something into the collection', function () {
testDbCollection.insertOne({ hello: 'test' });
});
it('should close the db Connection', function () { it('should close the db Connection', function () {
testDbConnection.close(); testDbConnection.close();
}); });
@ -42,4 +45,4 @@ describe('mongodb', function () {
mongoChildProcess.kill('SIGTERM'); mongoChildProcess.kill('SIGTERM');
}); });
}); });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FDUCxDQUFDLENBRG9CO0FBQ3JCLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUNwQyxNQUFZLE9BQU8sV0FBTSxTQUd6QixDQUFDLENBSGlDO0FBRWxDLG9CQUFvQjtBQUNwQixNQUFZLFNBQVMsV0FBTSxlQUUzQixDQUFDLENBRnlDO0FBRTFDLElBQUksaUJBQWlCLENBQUE7QUFDckIsSUFBSSxnQkFBd0MsQ0FBQTtBQUM1QyxJQUFJLGdCQUE2QyxDQUFBO0FBRWpELFFBQVEsQ0FBQyxTQUFTLEVBQUU7SUFDaEIsRUFBRSxDQUFDLHNCQUFzQixFQUFFLFVBQVUsSUFBSTtRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ25CLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsMENBQTBDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzNHLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN0QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFTLElBQUk7WUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQixFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7Z0JBQ2IsRUFBRSxDQUFDLENBQUMsdUNBQXVDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckQsVUFBVSxHQUFHLElBQUksQ0FBQTtvQkFDakIsSUFBSSxFQUFFLENBQUE7Z0JBQ1YsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUE7QUFDRixRQUFRLENBQUMsV0FBVyxFQUFFO0lBQ2xCLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxVQUFVLElBQUk7UUFDekQsZ0JBQWdCLEdBQUcsSUFBSSxTQUFTLENBQUMsWUFBWSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7UUFDcEYsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNyRCxDQUFDLENBQUMsQ0FBQTtJQUNGLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRTtRQUM3QixnQkFBZ0IsR0FBRyxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDaEYsQ0FBQyxDQUFDLENBQUE7SUFDRixFQUFFLENBQUMsZ0NBQWdDLEVBQUU7UUFDakMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDNUIsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQTtBQUVGLFFBQVEsQ0FBQyxTQUFTLEVBQUU7SUFDaEIsRUFBRSxDQUFDLHFCQUFxQixFQUFFO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO1FBQ3RELGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNyQyxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFBIn0= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FFUCxDQUFDLENBRm9CO0FBRXJCLE1BQVksT0FBTyxXQUFNLFNBQ3pCLENBQUMsQ0FEaUM7QUFFbEMsTUFBWSxXQUFXLFdBQU0sYUFHN0IsQ0FBQyxDQUh5QztBQUUxQyxvQkFBb0I7QUFDcEIsTUFBWSxTQUFTLFdBQU0sZUFFM0IsQ0FBQyxDQUZ5QztBQUUxQyxJQUFJLGlCQUFpQixDQUFBO0FBQ3JCLElBQUksZ0JBQXdDLENBQUE7QUFDNUMsSUFBSSxnQkFBNkMsQ0FBQTtBQUVqRCxRQUFRLENBQUMsU0FBUyxFQUFFO0lBQ2hCLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLElBQUk7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuQixpQkFBaUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUMzRyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUE7UUFDdEIsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBUyxJQUFJO1lBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFBO1lBQ25GLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztnQkFDYixFQUFFLENBQUMsQ0FBQyx1Q0FBdUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNyRCxVQUFVLEdBQUcsSUFBSSxDQUFBO29CQUNqQixJQUFJLEVBQUUsQ0FBQTtnQkFDVixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQTtBQUNGLFFBQVEsQ0FBQyxXQUFXLEVBQUU7SUFDbEIsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLFVBQVUsSUFBSTtRQUN6RCxnQkFBZ0IsR0FBRyxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMscUNBQXFDLENBQUMsQ0FBQTtRQUNwRixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JELENBQUMsQ0FBQyxDQUFBO0lBQ0YsRUFBRSxDQUFDLDRCQUE0QixFQUFFO1FBQzdCLGdCQUFnQixHQUFHLElBQUksU0FBUyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUNoRixDQUFDLENBQUMsQ0FBQTtJQUNGLEVBQUUsQ0FBQyw2Q0FBNkMsRUFBQztRQUM3QyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQTtJQUMvQyxDQUFDLENBQUMsQ0FBQTtJQUNGLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRTtRQUNqQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFBO0FBRUYsUUFBUSxDQUFDLFNBQVMsRUFBRTtJQUNoQixFQUFFLENBQUMscUJBQXFCLEVBQUU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7UUFDdEQsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3JDLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUEifQ==

View File

@ -2,6 +2,7 @@ import 'typings-test'
import * as shelljs from 'shelljs' import * as shelljs from 'shelljs'
import * as should from 'should' import * as should from 'should'
import * as smartstring from 'smartstring'
// the tested module // the tested module
import * as smartdata from '../dist/index' import * as smartdata from '../dist/index'
@ -16,7 +17,7 @@ describe('mongodb', function () {
mongoChildProcess = shelljs.exec('mongod --dbpath=./test/data --port 27017', { async: true, silent: true }) mongoChildProcess = shelljs.exec('mongod --dbpath=./test/data --port 27017', { async: true, silent: true })
let doneCalled = false let doneCalled = false
mongoChildProcess.stdout.on('data', function(data) { mongoChildProcess.stdout.on('data', function(data) {
console.log(data) console.log(smartstring.indent.indentWithPrefix(data,"*** MongoDB Process *** : "))
if (!doneCalled){ if (!doneCalled){
if (/waiting for connections on port 27017/.test(data)) { if (/waiting for connections on port 27017/.test(data)) {
doneCalled = true doneCalled = true
@ -34,6 +35,10 @@ describe('smartdata', function () {
it('should create a collection', function () { it('should create a collection', function () {
testDbCollection = new smartdata.DbCollection('something', testDbConnection) testDbCollection = new smartdata.DbCollection('something', testDbConnection)
}) })
it('should insert something into the collection',function(done){
testDbCollection.insertOne({hello: 'test'}).then(() => { done() })
})
it('should find all instances of test')
it('should close the db Connection', function () { it('should close the db Connection', function () {
testDbConnection.close() testDbConnection.close()
}) })

View File

@ -10,15 +10,26 @@ export class DbCollection<T> {
/** /**
* adds a validation function that all newly inserted and updated objects have to pass * adds a validation function that all newly inserted and updated objects have to pass
*/ */
addObjectValidation(){} addObjectValidation(funcArg){}
/** /**
* inserts am object into the DbCollection * finds an object in the DbCollection
*/ */
insert(objectArg: T) {} find(docMatchArg: T): T[] {
return this.collection.find().toArray()
}
/**
* inserts object into the DbCollection
*/
insertOne(docArg: T): PromiseLike<void> {
return this.collection.insertOne(docArg)
}
/** /**
* inserts many objects at once into the DbCollection * inserts many objects at once into the DbCollection
*/ */
insertMany(objectArrayArg: T[]) {} insertMany(docArrayArg: T[]): void {
}
} }