forked from dresende/node-orm2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommon.js
More file actions
104 lines (93 loc) · 2.63 KB
/
common.js
File metadata and controls
104 lines (93 loc) · 2.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
var common = exports;
var path = require('path');
var async = require('async');
var ORM = require('../');
common.ORM = ORM;
common.protocol = function () {
return process.env.ORM_PROTOCOL;
};
common.isTravis = function() {
return Boolean(process.env.CI);
};
common.createConnection = function(cb) {
ORM.connect(this.getConnectionString(), cb);
};
common.hasConfig = function (proto) {
var config;
try {
config = require("./config");
} catch (ex) {
return 'not-found';
}
return (config.hasOwnProperty(proto) ? 'found' : 'not-defined');
};
common.getConfig = function () {
if (common.isTravis()) {
switch (this.protocol()) {
case 'mysql':
return { user: "root", host: "localhost", database: "orm_test" };
case 'postgres':
case 'redshift':
return { user: "postgres", host: "localhost", database: "orm_test" };
case 'sqlite':
return {};
case 'mongodb':
return { host: "localhost", database: "test" };
default:
throw new Error("Unknown protocol");
}
} else {
return require("./config")[this.protocol()];
}
};
common.getConnectionString = function () {
var url;
if (common.isTravis()) {
switch (this.protocol()) {
case 'mysql':
return 'mysql://root@localhost/orm_test';
case 'postgres':
case 'redshift':
return 'postgres://postgres@localhost/orm_test';
case 'sqlite':
return 'sqlite://';
case 'mongodb':
return 'mongodb://localhost/test';
default:
throw new Error("Unknown protocol");
}
} else {
var config = require("./config")[this.protocol()];
switch (this.protocol()) {
case 'mysql':
return 'mysql://' +
(config.user || 'root') +
(config.password ? ':' + config.password : '') +
'@' + (config.host || 'localhost') +
'/' + (config.database || 'orm_test');
case 'postgres':
return 'postgres://' +
(config.user || 'postgres') +
(config.password ? ':' + config.password : '') +
'@' + (config.host || 'localhost') +
'/' + (config.database || 'orm_test');
case 'redshift':
return 'redshift://' +
(config.user || 'postgres') +
(config.password ? ':' + config.password : '') +
'@' + (config.host || 'localhost') +
'/' + (config.database || 'orm_test');
case 'mongodb':
return 'mongodb://' +
(config.user || '') +
(config.password ? ':' + config.password : '') +
'@' + (config.host || 'localhost') +
'/' + (config.database || 'test');
case 'sqlite':
return 'sqlite://' + (config.pathname || "");
default:
throw new Error("Unknown protocol");
}
}
return url;
};