mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-03-06 20:21:01 +01:00
feat(config): Mongo Seed 2.0 Adds a more configurable and easily extended MongoDB Seed feature. Adds additional options at the collection, and collection item level to allow more control over how each environment config handles the seeding feature. Enforces seed order based on the order of the environment's seeding configuration object. Removes the previous SeedDB config file. Adds chalk to messages logged to the console for readability. Refactors the Mongo Seed configuration tests. Adds Gulp tasks to perform Mongo Seed operations for default, prod, and test environment configurations. Also, adds accommodating npm scripts.
123 lines
3.7 KiB
JavaScript
123 lines
3.7 KiB
JavaScript
'use strict';
|
|
|
|
var defaultEnvConfig = require('./default');
|
|
|
|
module.exports = {
|
|
db: {
|
|
uri: process.env.MONGOHQ_URL || process.env.MONGODB_URI || 'mongodb://' + (process.env.DB_1_PORT_27017_TCP_ADDR || 'localhost') + '/mean-dev',
|
|
options: {},
|
|
// Enable mongoose debug mode
|
|
debug: process.env.MONGODB_DEBUG || false
|
|
},
|
|
log: {
|
|
// logging with Morgan - https://github.com/expressjs/morgan
|
|
// Can specify one of 'combined', 'common', 'dev', 'short', 'tiny'
|
|
format: 'dev',
|
|
fileLogger: {
|
|
directoryPath: process.cwd(),
|
|
fileName: 'app.log',
|
|
maxsize: 10485760,
|
|
maxFiles: 2,
|
|
json: false
|
|
}
|
|
},
|
|
app: {
|
|
title: defaultEnvConfig.app.title + ' - Development Environment'
|
|
},
|
|
facebook: {
|
|
clientID: process.env.FACEBOOK_ID || 'APP_ID',
|
|
clientSecret: process.env.FACEBOOK_SECRET || 'APP_SECRET',
|
|
callbackURL: '/api/auth/facebook/callback'
|
|
},
|
|
twitter: {
|
|
username: '@TWITTER_USERNAME',
|
|
clientID: process.env.TWITTER_KEY || 'CONSUMER_KEY',
|
|
clientSecret: process.env.TWITTER_SECRET || 'CONSUMER_SECRET',
|
|
callbackURL: '/api/auth/twitter/callback'
|
|
},
|
|
google: {
|
|
clientID: process.env.GOOGLE_ID || 'APP_ID',
|
|
clientSecret: process.env.GOOGLE_SECRET || 'APP_SECRET',
|
|
callbackURL: '/api/auth/google/callback'
|
|
},
|
|
linkedin: {
|
|
clientID: process.env.LINKEDIN_ID || 'APP_ID',
|
|
clientSecret: process.env.LINKEDIN_SECRET || 'APP_SECRET',
|
|
callbackURL: '/api/auth/linkedin/callback'
|
|
},
|
|
github: {
|
|
clientID: process.env.GITHUB_ID || 'APP_ID',
|
|
clientSecret: process.env.GITHUB_SECRET || 'APP_SECRET',
|
|
callbackURL: '/api/auth/github/callback'
|
|
},
|
|
paypal: {
|
|
clientID: process.env.PAYPAL_ID || 'CLIENT_ID',
|
|
clientSecret: process.env.PAYPAL_SECRET || 'CLIENT_SECRET',
|
|
callbackURL: '/api/auth/paypal/callback',
|
|
sandbox: true
|
|
},
|
|
mailer: {
|
|
from: process.env.MAILER_FROM || 'MAILER_FROM',
|
|
options: {
|
|
service: process.env.MAILER_SERVICE_PROVIDER || 'MAILER_SERVICE_PROVIDER',
|
|
auth: {
|
|
user: process.env.MAILER_EMAIL_ID || 'MAILER_EMAIL_ID',
|
|
pass: process.env.MAILER_PASSWORD || 'MAILER_PASSWORD'
|
|
}
|
|
}
|
|
},
|
|
livereload: true,
|
|
seedDB: {
|
|
seed: process.env.MONGO_SEED === 'true',
|
|
options: {
|
|
logResults: process.env.MONGO_SEED_LOG_RESULTS !== 'false'
|
|
},
|
|
// Order of collections in configuration will determine order of seeding.
|
|
// i.e. given these settings, the User seeds will be complete before
|
|
// Article seed is performed.
|
|
collections: [{
|
|
model: 'User',
|
|
docs: [{
|
|
data: {
|
|
username: 'local-admin',
|
|
email: 'admin@localhost.com',
|
|
firstName: 'Admin',
|
|
lastName: 'Local',
|
|
roles: ['admin', 'user']
|
|
}
|
|
}, {
|
|
// Set to true to overwrite this document
|
|
// when it already exists in the collection.
|
|
// If set to false, or missing, the seed operation
|
|
// will skip this document to avoid overwriting it.
|
|
overwrite: true,
|
|
data: {
|
|
username: 'local-user',
|
|
email: 'user@localhost.com',
|
|
firstName: 'User',
|
|
lastName: 'Local',
|
|
roles: ['user']
|
|
}
|
|
}]
|
|
}, {
|
|
model: 'Article',
|
|
options: {
|
|
// Override log results setting at the
|
|
// collection level.
|
|
logResults: true
|
|
},
|
|
skip: {
|
|
// Skip collection when this query returns results.
|
|
// e.g. {}: Only seeds collection when it is empty.
|
|
when: {} // Mongoose qualified query
|
|
},
|
|
docs: [{
|
|
data: {
|
|
title: 'First Article',
|
|
content: 'This is a seeded Article for the development environment'
|
|
}
|
|
}]
|
|
}]
|
|
}
|
|
};
|