diff --git a/templates/app/.eslintrc b/templates/app/.eslintrc index 93dbcc287..28a8da424 100644 --- a/templates/app/.eslintrc +++ b/templates/app/.eslintrc @@ -82,7 +82,7 @@ "no-octal-escape": 0, //disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251"; "no-octal": 0, //disallow use of octal literals "no-param-reassign": 0, //disallow reassignment of function parameters - "no-process-env": 1, //disallow use of process.env + "no-process-env": 0, //disallow use of process.env "no-proto": 2, //disallow usage of __proto__ property "no-redeclare": 2, //disallow declaring the same variable more than once "no-return-assign": 2, //disallow use of assignment in return statement diff --git a/templates/app/client/app/app.js b/templates/app/client/app/app.js index 40f47388a..cda6907e9 100644 --- a/templates/app/client/app/app.js +++ b/templates/app/client/app/app.js @@ -13,9 +13,8 @@ const ngRoute = require('angular-route');<% } %> import uiRouter from 'angular-ui-router';<% } %> <%_ if(filters.uibootstrap) { _%> import uiBootstrap from 'angular-ui-bootstrap';<% } %> -// import ngMessages from 'angular-messages'; <%_ if(filters.auth) { _%> -import ngValidationMatch from 'angular-validation-match'; +import 'angular-validation-match'; <% } %> diff --git a/templates/app/client/components/auth(auth)/auth.service.js b/templates/app/client/components/auth(auth)/auth.service.js index e38a12632..b4fc54758 100644 --- a/templates/app/client/components/auth(auth)/auth.service.js +++ b/templates/app/client/components/auth(auth)/auth.service.js @@ -1,4 +1,7 @@ 'use strict'; + +import _ from 'lodash'; + // @flow class _User { _id: string = ''; @@ -185,9 +188,8 @@ export function AuthService($location, $http, $cookies, $q, appConfig, Util, Use * @param {Function|*} callback - optional, function(is) * @return {Bool|Promise} */ - isAdmin() { - return Auth.hasRole - .apply(Auth, [].concat.apply(['admin'], arguments)); + isAdmin(...args) { + return Auth.hasRole(...Reflect.apply([].concat, ['admin'], args)); }, /** @@ -196,6 +198,7 @@ export function AuthService($location, $http, $cookies, $q, appConfig, Util, Use * @return {Bool} */ isAdminSync() { + // eslint-disable-next-line no-sync return Auth.hasRoleSync('admin'); }, diff --git a/templates/app/client/components/modal(uibootstrap)/modal.service.js b/templates/app/client/components/modal(uibootstrap)/modal.service.js index 31de851db..5dff0da27 100644 --- a/templates/app/client/components/modal(uibootstrap)/modal.service.js +++ b/templates/app/client/components/modal(uibootstrap)/modal.service.js @@ -37,9 +37,9 @@ export function Modal($rootScope, $uibModal) { * @param {String} name - name or info to show on modal * @param {All} - any additional args are passed straight to del callback */ - return function() { - var args = Array.prototype.slice.call(arguments); - var name = args.shift(); + return function(...args) { + var slicedArgs = Reflect.apply(Array.prototype.slice, args); + var name = slicedArgs.shift(); var deleteModal; deleteModal = openModal({ @@ -64,7 +64,7 @@ export function Modal($rootScope, $uibModal) { }, 'modal-danger'); deleteModal.result.then(function(event) { - del.apply(event, args); + Reflect.apply(del, event, slicedArgs); }); }; } diff --git a/templates/app/server/api/user(auth)/user.model(mongooseModels).js b/templates/app/server/api/user(auth)/user.model(mongooseModels).js index b19e3ff36..c62104f0b 100644 --- a/templates/app/server/api/user(auth)/user.model(mongooseModels).js +++ b/templates/app/server/api/user(auth)/user.model(mongooseModels).js @@ -99,10 +99,10 @@ UserSchema // Validate email is not taken UserSchema .path('email') - .validate(function(value, respond) { + .validate(function(value) { <%_ if(filters.oauth) { -%> if(authTypes.indexOf(this.provider) !== -1) { - return respond(true); + return true; } <%_ } -%> @@ -110,11 +110,11 @@ UserSchema .then(user => { if(user) { if(this.id === user.id) { - return respond(true); + return true; } - return respond(false); + return false; } - return respond(true); + return true; }) .catch(function(err) { throw err; @@ -197,14 +197,16 @@ UserSchema.methods = { * @return {String} * @api public */ - makeSalt(byteSize, callback) { - var defaultByteSize = 16; + makeSalt(...args) { + let byteSize; + let callback; + let defaultByteSize = 16; - if(typeof arguments[0] === 'function') { - callback = arguments[0]; + if(typeof args[0] === 'function') { + callback = args[0]; byteSize = defaultByteSize; - } else if(typeof arguments[1] === 'function') { - callback = arguments[1]; + } else if(typeof args[1] === 'function') { + callback = args[1]; } else { throw new Error('Missing Callback'); } @@ -244,17 +246,20 @@ UserSchema.methods = { var salt = new Buffer(this.salt, 'base64'); if(!callback) { - return crypto.pbkdf2Sync(password, salt, defaultIterations, defaultKeyLength) + // eslint-disable-next-line no-sync + return crypto.pbkdf2Sync(password, salt, defaultIterations, + defaultKeyLength, 'sha1') .toString('base64'); } - return crypto.pbkdf2(password, salt, defaultIterations, defaultKeyLength, (err, key) => { - if(err) { - return callback(err); - } else { - return callback(null, key.toString('base64')); - } - }); + return crypto.pbkdf2(password, salt, defaultIterations, defaultKeyLength, + 'sha1', (err, key) => { + if(err) { + return callback(err); + } else { + return callback(null, key.toString('base64')); + } + }); } }; diff --git a/templates/app/server/api/user(auth)/user.model(sequelizeModels).js b/templates/app/server/api/user(auth)/user.model(sequelizeModels).js index 58e8f5ae2..991bc9403 100644 --- a/templates/app/server/api/user(auth)/user.model(sequelizeModels).js +++ b/templates/app/server/api/user(auth)/user.model(sequelizeModels).js @@ -135,8 +135,10 @@ export default function(sequelize, DataTypes) { * @return {String} * @api public */ - makeSalt(byteSize, callback) { - var defaultByteSize = 16; + makeSalt(...args) { + let byteSize; + let callback; + let defaultByteSize = 16; if(typeof arguments[0] === 'function') { callback = arguments[0]; @@ -177,6 +179,7 @@ export default function(sequelize, DataTypes) { var salt = new Buffer(this.salt, 'base64'); if(!callback) { + // eslint-disable-next-line no-sync return crypto.pbkdf2Sync(password, salt, defaultIterations, defaultKeyLength) .toString('base64'); } diff --git a/templates/app/server/config/seed(models).js b/templates/app/server/config/seed(models).js index cd4f07d33..053b26c66 100644 --- a/templates/app/server/config/seed(models).js +++ b/templates/app/server/config/seed(models).js @@ -17,8 +17,8 @@ export default function seedDatabaseIfNeeded() { <% if (filters.mongooseModels) { %>Thing.find({}).remove()<% } if (filters.sequelizeModels) { %>return Thing.destroy({ where: {} })<% } %> .then(() => { - <% if (filters.mongooseModels) { %>Thing.create({<% } - if (filters.sequelizeModels) { %>return Thing.bulkCreate([{<% } %> + <% if (filters.mongooseModels) { %>let thing = Thing.create({<% } + if (filters.sequelizeModels) { %>let thing = Thing.bulkCreate([{<% } %> name: 'Development Tools', info: 'Integration with popular tools such as Webpack, Gulp, Babel, TypeScript, Karma, ' + 'Mocha, ESLint, Node Inspector, Livereload, Protractor, Pug, ' @@ -47,6 +47,7 @@ export default function seedDatabaseIfNeeded() { + 'and openshift subgenerators' <% if (filters.mongooseModels) { %>});<% } if (filters.sequelizeModels) { %>}]);<% } %> + return thing; }) .then(() => console.log('finished populating things')) .catch(err => console.log('error populating things', err)); diff --git a/templates/endpoint/basename.controller.js b/templates/endpoint/basename.controller.js index a9b5fa74c..098f7d532 100644 --- a/templates/endpoint/basename.controller.js +++ b/templates/endpoint/basename.controller.js @@ -27,6 +27,7 @@ function respondWithResult(res, statusCode) { function patchUpdates(patches) { return function(entity) { try { + // eslint-disable-next-line prefer-reflect jsonpatch.apply(entity, patches, /*validate*/ true); } catch(err) { return Promise.reject(err); @@ -98,7 +99,7 @@ export function create(req, res) { // Upserts the given <%= classedName %> in the DB at the specified ID export function upsert(req, res) { if(req.body._id) { - delete req.body._id; + Reflect.deleteProperty(req.body, '_id'); } <%_ if(filters.mongooseModels) { -%> return <%= classedName %>.findOneAndUpdate({_id: req.params.id}, req.body, {new: true, upsert: true, setDefaultsOnInsert: true, runValidators: true}).exec()<% } %> @@ -115,7 +116,7 @@ export function upsert(req, res) { // Updates an existing <%= classedName %> in the DB export function patch(req, res) { if(req.body._id) { - delete req.body._id; + Reflect.deleteProperty(req.body, '_id'); } <% if(filters.mongooseModels) { %>return <%= classedName %>.findById(req.params.id).exec()<% } if(filters.sequelizeModels) { %>return <%= classedName %>.find({