/
assert_options.js
39 lines (36 loc) · 1.15 KB
/
assert_options.js
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
module.exports = function assert_options(what, value) {
// discuss at: https://locutus.io/php/assert_options/
// original by: Brett Zamir (https://brett-zamir.me)
// example 1: assert_options('ASSERT_CALLBACK')
// returns 1: null
let iniKey, defaultVal
switch (what) {
case 'ASSERT_ACTIVE':
iniKey = 'assert.active'
defaultVal = 1
break
case 'ASSERT_WARNING':
iniKey = 'assert.warning'
defaultVal = 1
var msg = 'We have not yet implemented warnings for us to throw '
msg += 'in JavaScript (assert_options())'
throw new Error(msg)
case 'ASSERT_BAIL':
iniKey = 'assert.bail'
defaultVal = 0
break
case 'ASSERT_QUIET_EVAL':
iniKey = 'assert.quiet_eval'
defaultVal = 0
break
case 'ASSERT_CALLBACK':
iniKey = 'assert.callback'
defaultVal = null
break
default:
throw new Error('Improper type for assert_options()')
}
// I presume this is to be the most recent value, instead of the default value
const iniVal = (typeof require !== 'undefined' ? require('../info/ini_get')(iniKey) : undefined) || defaultVal
return iniVal
}