added deepFreeze
				
					
				
			This commit is contained in:
		
							parent
							
								
									35862f8a69
								
							
						
					
					
						commit
						f84a4bb406
					
				
							
								
								
									
										31
									
								
								coretool.js
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								coretool.js
									
									
									
									
									
								
							@ -10,6 +10,37 @@ module.exports = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  sleep: (ms) => new Promise((resolve, reject) => setTimeout(resolve, ms)),
 | 
					  sleep: (ms) => new Promise((resolve, reject) => setTimeout(resolve, ms)),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  deepFreeze (obj) {
 | 
				
			||||||
 | 
					    if (typeof obj !== 'object' || obj === null) {
 | 
				
			||||||
 | 
					      return obj
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    Object.freeze(obj)
 | 
				
			||||||
 | 
					    const propNames = Object.getOwnPropertyNames(obj)
 | 
				
			||||||
 | 
					    propNames.forEach(prop => {
 | 
				
			||||||
 | 
					      const propValue = obj[prop]
 | 
				
			||||||
 | 
					      // for nested object
 | 
				
			||||||
 | 
					      if (
 | 
				
			||||||
 | 
					        propValue && typeof propValue === 'object' &&
 | 
				
			||||||
 | 
					        !Object.isFrozen(propValue)
 | 
				
			||||||
 | 
					      ) {
 | 
				
			||||||
 | 
					        deepFreeze(propValue)
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      // for nested array
 | 
				
			||||||
 | 
					      if (Array.isArray(propValue)) {
 | 
				
			||||||
 | 
					        propValue.forEach(item => {
 | 
				
			||||||
 | 
					          if (
 | 
				
			||||||
 | 
					            item && typeof item === 'object' &&
 | 
				
			||||||
 | 
					            !Object.isFrozen(item)
 | 
				
			||||||
 | 
					          ) {
 | 
				
			||||||
 | 
					            deepFreeze(item)
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        Object.freeze(propValue) // Freeze the array itself
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    return obj
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  parse_json_anyway (value) {
 | 
					  parse_json_anyway (value) {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      return JSON.parse(value)
 | 
					      return JSON.parse(value)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user