[add] StyleSheet: immutable style in development

Fix #66
This commit is contained in:
Nicolas Gallagher
2015-12-30 13:59:29 -08:00
parent c65aa8a943
commit 97b3a91c0e
+16 -1
View File
@@ -10,7 +10,7 @@ import StylePropTypes from '../StylePropTypes'
* event classes
*/
const initialState = { classNames: predefinedClassNames }
const options = { obfuscateClassNames: process.env.NODE_ENV === 'production' }
const options = { obfuscateClassNames: !(process.env.NODE_ENV !== 'production') }
const createStore = () => new Store(initialState, options)
let store = createStore()
let isRendered = false
@@ -62,6 +62,21 @@ const create = (styles: Object): Object => {
}
}
if (process.env.NODE_ENV !== 'production') {
const deepFreeze = (obj) => {
const propNames = Object.getOwnPropertyNames(obj)
propNames.forEach((name) => {
const prop = obj[name]
if (typeof prop === 'object' && prop !== null && !Object.isFrozen(prop)) {
deepFreeze(prop)
}
})
return Object.freeze(obj)
}
deepFreeze(styles)
}
return styles
}