1
1
const fs = require ( 'fs' ) ;
2
- const path = require ( 'path ' ) ;
2
+ const _ = require ( 'lodash ' ) ;
3
3
const logger = require ( './logger' ) ;
4
4
5
5
const vsTypes = {
@@ -8,45 +8,43 @@ const vsTypes = {
8
8
turtle : 3 ,
9
9
} ;
10
10
11
- function loadJsonVS ( filepath ) {
11
+ function loadJsonVs ( absoluteFilepath ) {
12
12
try {
13
- const vsData = fs . readFileSync ( path . resolve ( __dirname , filepath ) ) ;
13
+ const vsData = fs . readFileSync ( absoluteFilepath ) ;
14
14
const vsJson = JSON . parse ( vsData ) ;
15
15
return vsJson ;
16
16
} catch ( error ) {
17
- logger . error ( `Could not load valueSet from path ${ filepath } ` ) ;
17
+ logger . error ( `Could not load valueSet from path ${ absoluteFilepath } ` ) ;
18
18
throw error ;
19
19
}
20
20
}
21
21
22
- function loadVS ( filepath , typeOfVS = vsTypes . json ) {
22
+ function loadVs ( absoluteFilepath , typeOfVS ) {
23
23
switch ( typeOfVS ) {
24
24
case vsTypes . json :
25
- logger . info ( `loading JSON valueset from ${ filepath } ` ) ;
26
- return loadJsonVS ( filepath ) ;
25
+ logger . debug ( `loading JSON valueset from ${ absoluteFilepath } ` ) ;
26
+ return loadJsonVs ( absoluteFilepath ) ;
27
27
28
28
case vsTypes . xml :
29
- logger . error ( 'No defined valueset loader for `xml` type valuesets' ) ;
30
- return null ;
29
+ throw Error ( 'No defined valueset loader for `xml` type valuesets' ) ;
31
30
32
31
case vsTypes . turtle :
33
- logger . error ( 'No defined valueset loader for `turtle` type valuesets' ) ;
34
- return null ;
32
+ throw Error ( 'No defined valueset loader for `turtle` type valuesets' ) ;
35
33
36
34
default :
37
- logger . error ( `'${ typeOfVS } ' is not a recognized valueset type` ) ;
38
- return null ;
35
+ throw Error ( `${ typeOfVS } ' is not a recognized valueset type` ) ;
39
36
}
40
37
}
41
38
42
39
/**
43
40
* Check if code is in value set
44
- * @param {object } code value to look for in a valueset
41
+ * @param {string } code value to look for in a valueset
45
42
* @param {object } valueSet contains list of codes included in value set
46
43
* @return {boolean } true if condition is in valueSet's compose block or expansion block
47
44
*/
48
- const checkCodeInVS = ( code , valueSetFilePath , typeOfVS = vsTypes . json ) => {
49
- const valueSet = loadVS ( valueSetFilePath , typeOfVS ) ;
45
+ const checkCodeInVs = ( code , valueSetFilePath , typeOfVS = vsTypes . json ) => {
46
+ if ( _ . isUndefined ( code ) ) throw Error ( 'checkCodeInVs received a code of undefined' ) ;
47
+ const valueSet = loadVs ( valueSetFilePath , typeOfVS ) ;
50
48
let inVSExpansion = false ;
51
49
let inVSCompose = false ;
52
50
if ( valueSet . expansion ) {
@@ -69,7 +67,7 @@ const checkCodeInVS = (code, valueSetFilePath, typeOfVS = vsTypes.json) => {
69
67
70
68
module . exports = {
71
69
vsTypes,
72
- loadJsonVS ,
73
- loadVS ,
74
- checkCodeInVS ,
70
+ loadJsonVs ,
71
+ loadVs ,
72
+ checkCodeInVs ,
75
73
} ;
0 commit comments