UNPKG

apeman-react-mixins

Version:
64 lines (49 loc) 993 B
/** * Mixin to check env. * @mixin ApEnvMixin */ 'use strict' import React, {PropTypes as types} from 'react' const ENV_ENV_KEY = "_apEnv" /** @lends ApEnvMixin */ let ApEnvMixin = { // -------------------- // Custom // -------------------- $apEnvMixed: true, /** * Detect if env is production. * @returns {boolean} */ isProductionEnv () { const s = this return s.getEnv() === 'production' }, /** * Get env values. * @returns {string} - Env value. */ getEnv () { const s = this return s.props.NODE_ENV || s.context[ ENV_ENV_KEY ] || process.env.NODE_ENV }, // -------------------- // Specs // -------------------- propTypes: { NODE_ENV: types.string }, contextTypes: { [ENV_ENV_KEY]: types.string }, childContextTypes: { [ENV_ENV_KEY]: types.string }, getChildContext () { const s = this return { [ENV_ENV_KEY]: s.getEnv() } } } export default Object.freeze(ApEnvMixin)