|
2 | 2 | * Populate DB with sample data on server start
|
3 | 3 | * to disable, edit config/environment/index.js, and set `seedDB: false`
|
4 | 4 | */
|
5 |
| - |
6 |
| -'use strict';<% if(filters.mongooseModels) { %> |
| 5 | +<% if(filters.mongooseModels) { %> |
7 | 6 | import Thing from '../api/thing/thing.model';<% if(filters.auth) { %>
|
8 | 7 | import User from '../api/user/user.model';<% } %><% } %><% if(filters.sequelizeModels) { %>
|
9 | 8 | import sqldb from '../sqldb';<% } %>
|
10 | 9 | import config from './environment/';
|
11 | 10 |
|
12 | 11 | export default function seedDatabaseIfNeeded() {
|
13 |
| - if(!config.seedDB) { |
14 |
| - return Promise.resolve(); |
15 |
| - } |
| 12 | + if(!config.seedDB) { |
| 13 | + return Promise.resolve(); |
| 14 | + } |
16 | 15 |
|
17 |
| - <% if(filters.sequelizeModels) { %>let Thing = sqldb.Thing;<% if(filters.auth) { %> |
18 |
| - let User = sqldb.User;<% } %><% } %> |
| 16 | + <% if(filters.sequelizeModels) { %>let Thing = sqldb.Thing;<% if(filters.auth) { %> |
| 17 | + let User = sqldb.User;<% } %><% } %> |
19 | 18 |
|
20 |
| - let promises = []; |
| 19 | + let promises = []; |
21 | 20 |
|
22 |
| - let thingPromise = <% if(filters.mongooseModels) { %>Thing.find({}).remove()<% } if(filters.sequelizeModels) { %>Thing.destroy({ where: {} })<% } %> |
23 |
| - .then(() => { |
24 |
| - <% if(filters.mongooseModels) { %>return Thing.create({<% } |
25 |
| - if(filters.sequelizeModels) { %>return Thing.bulkCreate([{<% } %> |
26 |
| - name: 'Development Tools', |
27 |
| - info: 'Integration with popular tools such as Webpack, Babel, TypeScript, Karma, Mocha, ESLint, Protractor, ' |
28 |
| - + 'Pug, Stylus, Sass, and Less.' |
29 |
| - }, { |
30 |
| - name: 'Server and Client integration', |
31 |
| - info: 'Built with a powerful and fun stack: MongoDB, Express, Angular, and Node.' |
32 |
| - }, { |
33 |
| - name: 'Smart Build System', |
34 |
| - info: 'Build system ignores `spec` files, allowing you to keep tests alongside code. Automatic injection of ' |
35 |
| - + 'scripts and styles into your app.html' |
36 |
| - }, { |
37 |
| - name: 'Modular Structure', |
38 |
| - info: 'Best practice client and server structures allow for more code reusability and maximum scalability' |
39 |
| - }, { |
40 |
| - name: 'Optimized Build', |
41 |
| - info: 'Build process packs up your templates as a single JavaScript payload, minifies your ' + |
42 |
| - 'scripts/css/images, and rewrites asset names for caching.' |
43 |
| - }, { |
44 |
| - name: 'Deployment Ready', |
45 |
| - info: 'Easily deploy your app to Heroku or Openshift with the heroku and openshift subgenerators' |
46 |
| - <% if(filters.mongooseModels) { %>});<% } |
47 |
| - if(filters.sequelizeModels) { %>}]);<% } %> |
48 |
| - }) |
49 |
| - .then(() => console.log('finished populating things')) |
50 |
| - .catch(err => console.log('error populating things', err)); |
51 |
| - promises.push(thingPromise); |
| 21 | + let thingPromise = <% if(filters.mongooseModels) { %>Thing.find({}).remove()<% } if(filters.sequelizeModels) { %>Thing.destroy({ where: {} })<% } %> |
| 22 | + .then(() => { |
| 23 | + <% if(filters.mongooseModels) { %>return Thing.create({<% } |
| 24 | + if(filters.sequelizeModels) { %>return Thing.bulkCreate([{<% } %> |
| 25 | + name: 'Development Tools', |
| 26 | + info: 'Integration with popular tools such as Webpack, Babel, TypeScript, Karma, Mocha, ESLint, Protractor, ' |
| 27 | + + 'Pug, Stylus, Sass, and Less.' |
| 28 | + }, { |
| 29 | + name: 'Server and Client integration', |
| 30 | + info: 'Built with a powerful and fun stack: MongoDB, Express, Angular, and Node.' |
| 31 | + }, { |
| 32 | + name: 'Smart Build System', |
| 33 | + info: 'Build system ignores `spec` files, allowing you to keep tests alongside code. Automatic injection of ' |
| 34 | + + 'scripts and styles into your app.html' |
| 35 | + }, { |
| 36 | + name: 'Modular Structure', |
| 37 | + info: 'Best practice client and server structures allow for more code reusability and maximum scalability' |
| 38 | + }, { |
| 39 | + name: 'Optimized Build', |
| 40 | + info: 'Build process packs up your templates as a single JavaScript payload, minifies your ' + |
| 41 | + 'scripts/css/images, and rewrites asset names for caching.' |
| 42 | + }, { |
| 43 | + name: 'Deployment Ready', |
| 44 | + info: 'Easily deploy your app to Heroku or Openshift with the heroku and openshift subgenerators' |
| 45 | + <% if(filters.mongooseModels) { %>});<% } |
| 46 | + if(filters.sequelizeModels) { %>}]);<% } %> |
| 47 | + }) |
| 48 | + .then(() => console.log('finished populating things')) |
| 49 | + .catch(err => console.log('error populating things', err)); |
| 50 | + promises.push(thingPromise); |
52 | 51 | <% if(filters.auth) { %>
|
53 |
| - let userPromise = <% if(filters.mongooseModels) { %>User.find({}).remove()<% } if(filters.sequelizeModels) { %>User.destroy({ where: {} })<% } %> |
54 |
| - .then(() => { |
55 |
| - <% if(filters.mongooseModels) { %>return User.create({<% } |
56 |
| - if(filters.sequelizeModels) { %>return User.bulkCreate([{<% } %> |
57 |
| - provider: 'local', |
58 |
| - name: 'Test User', |
59 |
| - |
60 |
| - password: 'test' |
61 |
| - }, { |
62 |
| - provider: 'local', |
63 |
| - role: 'admin', |
64 |
| - name: 'Admin', |
65 |
| - |
66 |
| - password: 'admin' |
67 |
| - <% if(filters.mongooseModels) { %>})<% } |
68 |
| - if(filters.sequelizeModels) { %>}])<% } %> |
69 |
| - .then(() => console.log('finished populating users')) |
70 |
| - .catch(err => console.log('error populating users', err)); |
71 |
| - }); |
72 |
| - promises.push(userPromise);<% } %> |
| 52 | + let userPromise = <% if(filters.mongooseModels) { %>User.find({}).remove()<% } if(filters.sequelizeModels) { %>User.destroy({ where: {} })<% } %> |
| 53 | + .then(() => { |
| 54 | + <% if(filters.mongooseModels) { %>return User.create({<% } |
| 55 | + if(filters.sequelizeModels) { %>return User.bulkCreate([{<% } %> |
| 56 | + provider: 'local', |
| 57 | + name: 'Test User', |
| 58 | + |
| 59 | + password: 'test' |
| 60 | + }, { |
| 61 | + provider: 'local', |
| 62 | + role: 'admin', |
| 63 | + name: 'Admin', |
| 64 | + |
| 65 | + password: 'admin' |
| 66 | + <% if(filters.mongooseModels) { %>})<% } |
| 67 | + if(filters.sequelizeModels) { %>}])<% } %> |
| 68 | + .then(() => console.log('finished populating users')) |
| 69 | + .catch(err => console.log('error populating users', err)); |
| 70 | + }); |
| 71 | + promises.push(userPromise);<% } %> |
73 | 72 |
|
74 |
| - return Promise.all(promises); |
| 73 | + return Promise.all(promises); |
75 | 74 | }
|
0 commit comments