mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-30 17:37:26 +00:00 
			
		
		
		
	Fix no-prototype-builtins rule
This commit is contained in:
		
							parent
							
								
									37e69f2fe1
								
							
						
					
					
						commit
						61c41d821c
					
				| @ -41,7 +41,6 @@ module.exports = { | ||||
|   rules: { | ||||
|     'generator-star-spacing': 0, | ||||
|     'no-console': 0, | ||||
|     'no-prototype-builtins': 0, | ||||
|     'require-atomic-updates': 0, | ||||
|   }, | ||||
|   settings: { | ||||
|  | ||||
| @ -480,7 +480,7 @@ module.exports = function(strapi) { | ||||
|                     _.keyBy( | ||||
|                       _.filter(definition.attributes, (value, key) => { | ||||
|                         if ( | ||||
|                           value.hasOwnProperty('columnName') && | ||||
|                           Object.prototype.hasOwnProperty.call(value, 'columnName') && | ||||
|                           !_.isEmpty(value.columnName) && | ||||
|                           value.columnName !== key | ||||
|                         ) { | ||||
| @ -576,9 +576,9 @@ module.exports = function(strapi) { | ||||
|                             .attributes, | ||||
|                           details => { | ||||
|                             if ( | ||||
|                               details.hasOwnProperty('model') && | ||||
|                               Object.prototype.hasOwnProperty.call(details, 'model') && | ||||
|                               details.model === model && | ||||
|                               details.hasOwnProperty('via') && | ||||
|                               Object.prototype.hasOwnProperty.call(details, 'via') && | ||||
|                               details.via === name | ||||
|                             ) { | ||||
|                               return details; | ||||
| @ -589,9 +589,9 @@ module.exports = function(strapi) { | ||||
|                           strapi.models[details.model].attributes, | ||||
|                           details => { | ||||
|                             if ( | ||||
|                               details.hasOwnProperty('model') && | ||||
|                               Object.prototype.hasOwnProperty.call(details, 'model') && | ||||
|                               details.model === model && | ||||
|                               details.hasOwnProperty('via') && | ||||
|                               Object.prototype.hasOwnProperty.call(details, 'via') && | ||||
|                               details.via === name | ||||
|                             ) { | ||||
|                               return details; | ||||
|  | ||||
| @ -21,7 +21,7 @@ module.exports = { | ||||
|     // This is not a Bookshelf collection, only the name.
 | ||||
|     if (_.isString(collectionIdentity) && !_.isUndefined(models)) { | ||||
|       const PK = _.findKey(_.get(models, collectionIdentity + '.attributes'), o => { | ||||
|         return o.hasOwnProperty('primary'); | ||||
|         return Object.prototype.hasOwnProperty.call(o, 'primary'); | ||||
|       }); | ||||
| 
 | ||||
|       if (!_.isEmpty(PK)) { | ||||
|  | ||||
| @ -27,7 +27,7 @@ module.exports = strapi => { | ||||
|       if (_.isPlainObject(views) && !_.isEmpty(views)) { | ||||
|         const opts = _.clone(views); | ||||
| 
 | ||||
|         if (opts.hasOwnProperty('default')) { | ||||
|         if (Object.prototype.hasOwnProperty.call(opts, 'default')) { | ||||
|           opts.extension = opts.default; | ||||
|           delete opts.default; | ||||
|         } | ||||
|  | ||||
| @ -36,7 +36,7 @@ class InputWithAutoFocus extends React.Component { | ||||
|     if (this.props.filterToFocus === this.props.index) { | ||||
|       return new Promise(resolve => { | ||||
|         setTimeout(() => { | ||||
|           if (this.inputEl.hasOwnProperty('openCalendar')) { | ||||
|           if (Object.prototype.hasOwnProperty.call(this.inputEl, 'openCalendar')) { | ||||
|             this.inputEl.openCalendar(); | ||||
|           } else { | ||||
|             this.inputEl.focus(); | ||||
|  | ||||
| @ -141,8 +141,8 @@ export class ListPage extends React.Component { | ||||
| 
 | ||||
|     return Object.keys(attributes).filter(attr => { | ||||
|       return ( | ||||
|         !attributes[attr].hasOwnProperty('collection') && | ||||
|         !attributes[attr].hasOwnProperty('model') | ||||
|         !Object.prototype.hasOwnProperty.call(attributes[attr], 'collection') && | ||||
|         !Object.prototype.hasOwnProperty.call(attributes[attr], 'model') | ||||
|       ); | ||||
|     }); | ||||
|   }; | ||||
|  | ||||
| @ -191,8 +191,8 @@ class SettingPage extends React.PureComponent { | ||||
|       .filter(attr => { | ||||
|         return ( | ||||
|           findIndex(this.getListDisplay(), ['name', attr]) === -1 && | ||||
|           !attributes[attr].hasOwnProperty('collection') && | ||||
|           !attributes[attr].hasOwnProperty('model') | ||||
|           !Object.prototype.hasOwnProperty.call(attributes[attr], 'collection') && | ||||
|           !Object.prototype.hasOwnProperty.call(attributes[attr], 'model') | ||||
|         ); | ||||
|       }) | ||||
|       .map(attr => { | ||||
|  | ||||
| @ -30,8 +30,8 @@ module.exports = async (ctx, next) => { | ||||
|     if (controller && action) { | ||||
|       // Redirect to specific controller.
 | ||||
|       if ( | ||||
|         ctx.request.body.hasOwnProperty('fields') && | ||||
|         ctx.request.body.hasOwnProperty('files') | ||||
|         Object.prototype.hasOwnProperty.call(ctx.request.body, 'fields') && | ||||
|         Object.prototype.hasOwnProperty.call(ctx.request.body, 'files') | ||||
|       ) { | ||||
|         let { files, fields } = ctx.request.body; | ||||
| 
 | ||||
|  | ||||
| @ -72,7 +72,10 @@ module.exports = { | ||||
| 
 | ||||
|   add: async (params, values, source) => { | ||||
|     // Multipart/form-data.
 | ||||
|     if (values.hasOwnProperty('fields') && values.hasOwnProperty('files')) { | ||||
|     if ( | ||||
|       Object.prototype.hasOwnProperty.call(values, 'fields') && | ||||
|       Object.prototype.hasOwnProperty.call(values, 'files') | ||||
|     ) { | ||||
|       // Silent recursive parser.
 | ||||
|       const parser = value => { | ||||
|         try { | ||||
| @ -134,7 +137,10 @@ module.exports = { | ||||
| 
 | ||||
|   edit: async (params, values, source) => { | ||||
|     // Multipart/form-data.
 | ||||
|     if (values.hasOwnProperty('fields') && values.hasOwnProperty('files')) { | ||||
|     if ( | ||||
|       Object.prototype.hasOwnProperty.call(values, 'fields') && | ||||
|       Object.prototype.hasOwnProperty.call(values, 'files') | ||||
|     ) { | ||||
|       // Silent recursive parser.
 | ||||
|       const parser = value => { | ||||
|         try { | ||||
|  | ||||
| @ -49,7 +49,7 @@ class AttributesPickerModal extends React.Component { | ||||
|     const appPlugins = plugins; | ||||
| 
 | ||||
|     return attributes.filter(attr => { | ||||
|       if (appPlugins.hasOwnProperty('upload')) { | ||||
|       if (Object.prototype.hasOwnProperty.call(appPlugins, 'upload')) { | ||||
|         return true; | ||||
|       } | ||||
| 
 | ||||
|  | ||||
| @ -381,8 +381,8 @@ module.exports = { | ||||
|       (acc, curr) => { | ||||
|         const attribute = attributes[curr]; | ||||
|         const isField = | ||||
|           !attribute.hasOwnProperty('model') && | ||||
|           !attribute.hasOwnProperty('collection'); | ||||
|           !Object.prototype.hasOwnProperty.call(attribute, 'model') && | ||||
|           !Object.prototype.hasOwnProperty.call(attribute, 'collection'); | ||||
| 
 | ||||
|         if (attribute.required) { | ||||
|           acc.required.push(curr); | ||||
| @ -1525,8 +1525,8 @@ module.exports = { | ||||
|       .map(attr => { | ||||
|         const attribute = modelAttributes[attr]; | ||||
|         const isField = | ||||
|           !attribute.hasOwnProperty('model') && | ||||
|           !attribute.hasOwnProperty('collection'); | ||||
|           !Object.prototype.hasOwnProperty.call(attribute, 'model') && | ||||
|           !Object.prototype.hasOwnProperty.call(attribute, 'collection'); | ||||
| 
 | ||||
|         if (!isField) { | ||||
|           const name = attribute.model || attribute.collection; | ||||
| @ -1730,7 +1730,7 @@ module.exports = { | ||||
|   mergeComponents: (initObj, srcObj) => { | ||||
|     const cleanedObj = Object.keys(_.get(initObj, 'schemas', {})).reduce( | ||||
|       (acc, current) => { | ||||
|         const targetObj = _.get(srcObj, ['schemas'], {}).hasOwnProperty(current) | ||||
|         const targetObj = Object.prototype.hasOwnProperty.call(_.get(srcObj, ['schemas'], {}), current) | ||||
|           ? srcObj | ||||
|           : initObj; | ||||
| 
 | ||||
| @ -1750,7 +1750,7 @@ module.exports = { | ||||
| 
 | ||||
|   mergePaths: function(initObj, srcObj) { | ||||
|     return Object.keys(initObj.paths).reduce((acc, current) => { | ||||
|       if (_.get(srcObj, ['paths'], {}).hasOwnProperty(current)) { | ||||
|       if (Object.prototype.hasOwnProperty.call(_.get(srcObj, ['paths'], {}), current)) { | ||||
|         const verbs = Object.keys(initObj.paths[current]).reduce( | ||||
|           (acc1, curr) => { | ||||
|             const verb = this.mergeVerbObject( | ||||
|  | ||||
| @ -15,7 +15,7 @@ module.exports = (api, controller) => { | ||||
|     throw new Error('Should be an object'); | ||||
|   } | ||||
| 
 | ||||
|   if (_.isObject(controller) && controller.hasOwnProperty('identity')) { | ||||
|   if (_.isObject(controller) && Object.prototype.hasOwnProperty.call(controller, 'identity')) { | ||||
|     controller = controller.identity.toLowerCase(); | ||||
|   } else if (_.isString(controller)) { | ||||
|     controller = controller.toLowerCase(); | ||||
|  | ||||
| @ -108,8 +108,8 @@ module.exports = { | ||||
|       } | ||||
| 
 | ||||
|       if ( | ||||
|         (association.hasOwnProperty('collection') && association.collection === '*') || | ||||
|         (association.hasOwnProperty('model') && association.model === '*') | ||||
|         (Object.prototype.hasOwnProperty.call(association, 'collection') && association.collection === '*') || | ||||
|         (Object.prototype.hasOwnProperty.call(association, 'model') && association.model === '*') | ||||
|       ) { | ||||
|         if (association.model) { | ||||
|           types.current = 'morphToD'; | ||||
| @ -130,13 +130,13 @@ module.exports = { | ||||
|         // We have to find if they are a model linked to this key
 | ||||
|         _.forIn(allModels, model => { | ||||
|           _.forIn(model.attributes, attribute => { | ||||
|             if (attribute.hasOwnProperty('via') && attribute.via === key && attribute.model === currentModelName) { | ||||
|               if (attribute.hasOwnProperty('collection')) { | ||||
|             if (Object.prototype.hasOwnProperty.call(attribute, 'via') && attribute.via === key && attribute.model === currentModelName) { | ||||
|               if (Object.prototype.hasOwnProperty.call(attribute, 'collection')) { | ||||
|                 types.other = 'collection'; | ||||
| 
 | ||||
|                 // Break loop
 | ||||
|                 return false; | ||||
|               } else if (attribute.hasOwnProperty('model')) { | ||||
|               } else if (Object.prototype.hasOwnProperty.call(attribute, 'model')) { | ||||
|                 types.other = 'model'; | ||||
| 
 | ||||
|                 // Break loop
 | ||||
| @ -145,7 +145,7 @@ module.exports = { | ||||
|             } | ||||
|           }); | ||||
|         }); | ||||
|       } else if (association.hasOwnProperty('via') && association.hasOwnProperty('collection')) { | ||||
|       } else if (Object.prototype.hasOwnProperty.call(association, 'via') && Object.prototype.hasOwnProperty.call(association, 'collection')) { | ||||
|         const relatedAttribute = models[association.collection].attributes[association.via]; | ||||
| 
 | ||||
|         if (!relatedAttribute) { | ||||
| @ -159,23 +159,23 @@ module.exports = { | ||||
|         types.current = 'collection'; | ||||
| 
 | ||||
|         if ( | ||||
|           relatedAttribute.hasOwnProperty('collection') && | ||||
|           Object.prototype.hasOwnProperty.call(relatedAttribute, 'collection') && | ||||
|           relatedAttribute.collection !== '*' && | ||||
|           relatedAttribute.hasOwnProperty('via') | ||||
|           Object.prototype.hasOwnProperty.call(relatedAttribute, 'via') | ||||
|         ) { | ||||
|           types.other = 'collection'; | ||||
|         } else if ( | ||||
|           relatedAttribute.hasOwnProperty('collection') && | ||||
|           Object.prototype.hasOwnProperty.call(relatedAttribute, 'collection') && | ||||
|           relatedAttribute.collection !== '*' && | ||||
|           !relatedAttribute.hasOwnProperty('via') | ||||
|           !Object.prototype.hasOwnProperty.call(relatedAttribute, 'via') | ||||
|         ) { | ||||
|           types.other = 'collectionD'; | ||||
|         } else if (relatedAttribute.hasOwnProperty('model') && relatedAttribute.model !== '*') { | ||||
|         } else if (Object.prototype.hasOwnProperty.call(relatedAttribute, 'model') && relatedAttribute.model !== '*') { | ||||
|           types.other = 'model'; | ||||
|         } else if (relatedAttribute.hasOwnProperty('collection') || relatedAttribute.hasOwnProperty('model')) { | ||||
|         } else if (Object.prototype.hasOwnProperty.call(relatedAttribute, 'collection') || Object.prototype.hasOwnProperty.call(relatedAttribute, 'model')) { | ||||
|           types.other = 'morphTo'; | ||||
|         } | ||||
|       } else if (association.hasOwnProperty('via') && association.hasOwnProperty('model')) { | ||||
|       } else if (Object.prototype.hasOwnProperty.call(association, 'via') && Object.prototype.hasOwnProperty.call(association, 'model')) { | ||||
|         types.current = 'modelD'; | ||||
| 
 | ||||
|         // We have to find if they are a model linked to this key
 | ||||
| @ -183,30 +183,30 @@ module.exports = { | ||||
|         const attribute = model.attributes[association.via]; | ||||
| 
 | ||||
|         if ( | ||||
|           attribute.hasOwnProperty('via') && | ||||
|           Object.prototype.hasOwnProperty.call(attribute, 'via') && | ||||
|           attribute.via === key && | ||||
|           attribute.hasOwnProperty('collection') && | ||||
|           Object.prototype.hasOwnProperty.call(attribute, 'collection') && | ||||
|           attribute.collection !== '*' | ||||
|         ) { | ||||
|           types.other = 'collection'; | ||||
|         } else if (attribute.hasOwnProperty('model') && attribute.model !== '*') { | ||||
|         } else if (Object.prototype.hasOwnProperty.call(attribute, 'model') && attribute.model !== '*') { | ||||
|           types.other = 'model'; | ||||
|         } else if (attribute.hasOwnProperty('collection') || attribute.hasOwnProperty('model')) { | ||||
|         } else if (Object.prototype.hasOwnProperty.call(attribute, 'collection') || Object.prototype.hasOwnProperty.call(attribute, 'model')) { | ||||
|           types.other = 'morphTo'; | ||||
|         } | ||||
|       } else if (association.hasOwnProperty('model')) { | ||||
|       } else if (Object.prototype.hasOwnProperty.call(association, 'model')) { | ||||
|         types.current = 'model'; | ||||
| 
 | ||||
|         // We have to find if they are a model linked to this key
 | ||||
|         _.forIn(models, model => { | ||||
|           _.forIn(model.attributes, attribute => { | ||||
|             if (attribute.hasOwnProperty('via') && attribute.via === key) { | ||||
|               if (attribute.hasOwnProperty('collection')) { | ||||
|             if (Object.prototype.hasOwnProperty.call(attribute, 'via') && attribute.via === key) { | ||||
|               if (Object.prototype.hasOwnProperty.call(attribute, 'collection')) { | ||||
|                 types.other = 'collection'; | ||||
| 
 | ||||
|                 // Break loop
 | ||||
|                 return false; | ||||
|               } else if (attribute.hasOwnProperty('model')) { | ||||
|               } else if (Object.prototype.hasOwnProperty.call(attribute, 'model')) { | ||||
|                 types.other = 'modelD'; | ||||
| 
 | ||||
|                 // Break loop
 | ||||
| @ -215,19 +215,19 @@ module.exports = { | ||||
|             } | ||||
|           }); | ||||
|         }); | ||||
|       } else if (association.hasOwnProperty('collection')) { | ||||
|       } else if (Object.prototype.hasOwnProperty.call(association, 'collection')) { | ||||
|         types.current = 'collectionD'; | ||||
| 
 | ||||
|         // We have to find if they are a model linked to this key
 | ||||
|         _.forIn(models, model => { | ||||
|           _.forIn(model.attributes, attribute => { | ||||
|             if (attribute.hasOwnProperty('via') && attribute.via === key) { | ||||
|               if (attribute.hasOwnProperty('collection')) { | ||||
|             if (Object.prototype.hasOwnProperty.call(attribute, 'via') && attribute.via === key) { | ||||
|               if (Object.prototype.hasOwnProperty.call(attribute, 'collection')) { | ||||
|                 types.other = 'collection'; | ||||
| 
 | ||||
|                 // Break loop
 | ||||
|                 return false; | ||||
|               } else if (attribute.hasOwnProperty('model')) { | ||||
|               } else if (Object.prototype.hasOwnProperty.call(attribute, 'model')) { | ||||
|                 types.other = 'modelD'; | ||||
| 
 | ||||
|                 // Break loop
 | ||||
| @ -268,14 +268,14 @@ module.exports = { | ||||
|           nature: 'oneMorphToOne', | ||||
|           verbose: 'belongsToMorph', | ||||
|         }; | ||||
|       } else if (types.current === 'morphTo' && (types.other === 'model' || association.hasOwnProperty('model'))) { | ||||
|       } else if (types.current === 'morphTo' && (types.other === 'model' || Object.prototype.hasOwnProperty.call(association, 'model'))) { | ||||
|         return { | ||||
|           nature: 'manyMorphToOne', | ||||
|           verbose: 'belongsToManyMorph', | ||||
|         }; | ||||
|       } else if ( | ||||
|         types.current === 'morphTo' && | ||||
|         (types.other === 'collection' || association.hasOwnProperty('collection')) | ||||
|         (types.other === 'collection' || Object.prototype.hasOwnProperty.call(association, 'collection')) | ||||
|       ) { | ||||
|         return { | ||||
|           nature: 'manyMorphToMany', | ||||
| @ -383,7 +383,7 @@ module.exports = { | ||||
|       } | ||||
| 
 | ||||
|       // Exclude non-relational attribute
 | ||||
|       if (!association.hasOwnProperty('collection') && !association.hasOwnProperty('model')) { | ||||
|       if (!Object.prototype.hasOwnProperty.call(association, 'collection') && !Object.prototype.hasOwnProperty.call(association, 'model')) { | ||||
|         return undefined; | ||||
|       } | ||||
| 
 | ||||
| @ -399,7 +399,7 @@ module.exports = { | ||||
|       } | ||||
| 
 | ||||
|       // Build associations object
 | ||||
|       if (association.hasOwnProperty('collection') && association.collection !== '*') { | ||||
|       if (Object.prototype.hasOwnProperty.call(association, 'collection') && association.collection !== '*') { | ||||
|         const ast = { | ||||
|           alias: key, | ||||
|           type: 'collection', | ||||
| @ -417,7 +417,7 @@ module.exports = { | ||||
|         } | ||||
| 
 | ||||
|         definition.associations.push(ast); | ||||
|       } else if (association.hasOwnProperty('model') && association.model !== '*') { | ||||
|       } else if (Object.prototype.hasOwnProperty.call(association, 'model') && association.model !== '*') { | ||||
|         definition.associations.push({ | ||||
|           alias: key, | ||||
|           type: 'model', | ||||
| @ -429,7 +429,7 @@ module.exports = { | ||||
|           plugin: association.plugin || undefined, | ||||
|           filter: details.filter, | ||||
|         }); | ||||
|       } else if (association.hasOwnProperty('collection') || association.hasOwnProperty('model')) { | ||||
|       } else if (Object.prototype.hasOwnProperty.call(association, 'collection') || Object.prototype.hasOwnProperty.call(association, 'model')) { | ||||
|         const pluginsModels = Object.keys(strapi.plugins).reduce((acc, current) => { | ||||
|           Object.keys(strapi.plugins[current].models).forEach(entity => { | ||||
|             Object.keys(strapi.plugins[current].models[entity].attributes).forEach(attribute => { | ||||
| @ -505,7 +505,7 @@ module.exports = { | ||||
|       }, {}), | ||||
|     ); | ||||
| 
 | ||||
|     if (!models.hasOwnProperty(model)) { | ||||
|     if (!Object.prototype.hasOwnProperty.call(models, model)) { | ||||
|       return this.log.error(`The model ${model} can't be found.`); | ||||
|     } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										4
									
								
								packages/strapi/lib/core/bootstrap.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								packages/strapi/lib/core/bootstrap.js
									
									
									
									
										vendored
									
									
								
							| @ -258,7 +258,7 @@ module.exports = function(strapi) { | ||||
|       ); | ||||
|       acc[current] = !_.isObject(currentSettings) ? {} : currentSettings; | ||||
| 
 | ||||
|       if (!acc[current].hasOwnProperty('enabled')) { | ||||
|       if (!Object.prototype.hasOwnProperty.call(acc[current], 'enabled')) { | ||||
|         strapi.log.warn( | ||||
|           `(middleware:${current}) wasn't loaded due to missing key \`enabled\` in the configuration` | ||||
|         ); | ||||
| @ -284,7 +284,7 @@ module.exports = function(strapi) { | ||||
| 
 | ||||
|       acc[current] = !_.isObject(currentSettings) ? {} : currentSettings; | ||||
| 
 | ||||
|       if (!acc[current].hasOwnProperty('enabled')) { | ||||
|       if (!Object.prototype.hasOwnProperty.call(acc[current], 'enabled')) { | ||||
|         strapi.log.warn( | ||||
|           `(hook:${current}) wasn't loaded due to missing key \`enabled\` in the configuration` | ||||
|         ); | ||||
|  | ||||
| @ -56,7 +56,7 @@ module.exports = strapi => { | ||||
|           // Exclude routes with prefix.
 | ||||
|           const excludedRoutes = _.omitBy( | ||||
|             plugin.config.routes, | ||||
|             o => !o.config.hasOwnProperty('prefix') | ||||
|             o => !Object.prototype.hasOwnProperty.call(o.config, 'prefix') | ||||
|           ); | ||||
| 
 | ||||
|           _.forEach( | ||||
|  | ||||
| @ -24,7 +24,7 @@ module.exports = strapi => { | ||||
|         strapi.config.hooks.session.secretKeys; | ||||
| 
 | ||||
|       if ( | ||||
|         strapi.config.middleware.settings.session.hasOwnProperty('client') && | ||||
|         Object.prototype.hasOwnProperty.call(strapi.config.middleware.settings.session, 'client') && | ||||
|         _.isString(strapi.config.middleware.settings.session.client) && | ||||
|         strapi.config.middleware.settings.session.client !== 'cookie' | ||||
|       ) { | ||||
| @ -52,7 +52,7 @@ module.exports = strapi => { | ||||
|           }); | ||||
|         } | ||||
|       } else if ( | ||||
|         strapi.config.middleware.settings.session.hasOwnProperty('client') && | ||||
|         Object.prototype.hasOwnProperty.call(strapi.config.middleware.settings.session, 'client') && | ||||
|         _.isString(strapi.config.middleware.settings.session.client) && | ||||
|         strapi.config.middleware.settings.session.client === 'cookie' | ||||
|       ) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Abdón Rodríguez Davila
						Abdón Rodríguez Davila