Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 10x 10x 24x 24x 24x 10x 10x | function makeDevOrProd(getNodeEnv: () => 'dev' | 'prod') {
/**
* 开发环境和生产环境返回不同的值或调用不同的函数。
*
* @param devValue 开发环境返回的值或调用的函数
* @param prodValue 生产环境返回的值或调用的函数
*/
function devOrProd<R, T extends R = R, F extends () => R = () => R>(
devValue: T | F,
prodValue: T | F,
): R {
const nodeEnv = getNodeEnv()
return nodeEnv === 'prod'
? typeof prodValue === 'function'
? (prodValue as any)()
: prodValue
: typeof devValue === 'function'
? (devValue as any)()
: devValue
}
/**
* 构造 devOrProd。
*/
devOrProd.make = makeDevOrProd
return devOrProd
}
/**
* 开发环境和生产环境返回不同的值或调用不同的函数。
*
* `process.env.NODE_ENV` 为空值、`production`、`prod` 时被认为是生产环境,否则是开发环境。
*
* @param devValue 开发环境返回的值或调用的函数
* @param prodValue 生产环境返回的值或调用的函数
*/
export const devOrProd = makeDevOrProd(() => {
const nodeEnv = process.env.NODE_ENV
return !nodeEnv || nodeEnv === 'production' || nodeEnv === 'prod'
? 'prod'
: 'dev'
})
|