joi-to-json 4.3.0 → 4.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,67 +1,67 @@
1
- const cmp = require('semver-compare')
2
-
3
- const c17 = require('./lib/convertors/v17')
4
- const c16 = require('./lib/convertors/v16')
5
- const c15 = require('./lib/convertors/v15')
6
- const c14 = require('./lib/convertors/v14')
7
- const c13 = require('./lib/convertors/v13')
8
- const c12 = require('./lib/convertors/v12')
9
-
10
- const JoiJsonSchemaParser = require('./lib/parsers/json')
11
- const JoiOpenApiSchemaParser = require('./lib/parsers/open-api')
12
- const JoiOpenApiThreePointOneSchemaParser = require('./lib/parsers/open-api-3.1')
13
- const JoiJsonDraftSchemaParser19 = require('./lib/parsers/json-draft-2019-09')
14
- const JoiJsonDraftSchemaParser = require('./lib/parsers/json-draft-04')
15
-
16
- const convertors = [
17
- c17, c16, c15, c14, c13, c12
18
- ]
19
- const parsers = {
20
- 'json-draft-2019-09': JoiJsonDraftSchemaParser19,
21
- 'json-draft-04': JoiJsonDraftSchemaParser,
22
- json: JoiJsonSchemaParser,
23
- 'open-api': JoiOpenApiSchemaParser,
24
- 'open-api-3.1': JoiOpenApiThreePointOneSchemaParser
25
- }
26
-
27
- function parse(joiObj, type = 'json', definitions = {}, parserOptions = {}) {
28
- if (typeof joiObj.describe !== 'function') {
29
- throw new Error('Not an joi object.')
30
- }
31
-
32
- let convertor
33
-
34
- for (let i = 0; i < convertors.length; i++) {
35
- const tmpConvertor = convertors[i]
36
- try {
37
- let version = tmpConvertor.getVersion(joiObj)
38
- let result = cmp(tmpConvertor.getSupportVersion(), version)
39
- if (result <= 0) {
40
- // The first parser has smaller or equal version
41
- convertor = tmpConvertor
42
- break
43
- }
44
- } catch (e) {
45
- // Format does not match this parser version.
46
- // Skip to check the next one
47
- continue
48
- }
49
- }
50
-
51
- if (!convertor) {
52
- console.warn('No matched joi version convertor found, using the latest version')
53
- convertor = convertors[0]
54
- }
55
-
56
- // fs.writeFileSync('./joi_spec.json', JSON.stringify(joiObj.describe(), null, 2))
57
- const joiBaseSpec = new convertor().toBaseSpec(joiObj.describe())
58
- // fs.writeFileSync(`./internal_${convertor.getSupportVersion()}_${type}.json`, JSON.stringify(joiBaseSpec, null, 2))
59
- const parser = parsers[type]
60
- if (!parser) {
61
- throw new Error(`No parser is registered for ${type}`)
62
- }
63
-
64
- return new parser(parserOptions).parse(joiBaseSpec, definitions)
65
- }
66
-
67
- module.exports = parse
1
+ const cmp = require('semver-compare')
2
+
3
+ const c17 = require('./lib/convertors/v17')
4
+ const c16 = require('./lib/convertors/v16')
5
+ const c15 = require('./lib/convertors/v15')
6
+ const c14 = require('./lib/convertors/v14')
7
+ const c13 = require('./lib/convertors/v13')
8
+ const c12 = require('./lib/convertors/v12')
9
+
10
+ const JoiJsonSchemaParser = require('./lib/parsers/json')
11
+ const JoiOpenApiSchemaParser = require('./lib/parsers/open-api')
12
+ const JoiOpenApiThreePointOneSchemaParser = require('./lib/parsers/open-api-3.1')
13
+ const JoiJsonDraftSchemaParser19 = require('./lib/parsers/json-draft-2019-09')
14
+ const JoiJsonDraftSchemaParser = require('./lib/parsers/json-draft-04')
15
+
16
+ const convertors = [
17
+ c17, c16, c15, c14, c13, c12
18
+ ]
19
+ const parsers = {
20
+ 'json-draft-2019-09': JoiJsonDraftSchemaParser19,
21
+ 'json-draft-04': JoiJsonDraftSchemaParser,
22
+ json: JoiJsonSchemaParser,
23
+ 'open-api': JoiOpenApiSchemaParser,
24
+ 'open-api-3.1': JoiOpenApiThreePointOneSchemaParser
25
+ }
26
+
27
+ function parse(joiObj, type = 'json', definitions = {}, parserOptions = {}) {
28
+ if (typeof joiObj.describe !== 'function') {
29
+ throw new Error('Not an joi object.')
30
+ }
31
+
32
+ let convertor
33
+
34
+ for (let i = 0; i < convertors.length; i++) {
35
+ const tmpConvertor = convertors[i]
36
+ try {
37
+ let version = tmpConvertor.getVersion(joiObj)
38
+ let result = cmp(tmpConvertor.getSupportVersion(), version)
39
+ if (result <= 0) {
40
+ // The first parser has smaller or equal version
41
+ convertor = tmpConvertor
42
+ break
43
+ }
44
+ } catch (e) {
45
+ // Format does not match this parser version.
46
+ // Skip to check the next one
47
+ continue
48
+ }
49
+ }
50
+
51
+ if (!convertor) {
52
+ console.warn('No matched joi version convertor found, using the latest version')
53
+ convertor = convertors[0]
54
+ }
55
+
56
+ // fs.writeFileSync('./joi_spec.json', JSON.stringify(joiObj.describe(), null, 2))
57
+ const joiBaseSpec = new convertor().toBaseSpec(joiObj.describe())
58
+ // fs.writeFileSync(`./internal_${convertor.getSupportVersion()}_${type}.json`, JSON.stringify(joiBaseSpec, null, 2))
59
+ const parser = parsers[type]
60
+ if (!parser) {
61
+ throw new Error(`No parser is registered for ${type}`)
62
+ }
63
+
64
+ return new parser(parserOptions).parse(joiBaseSpec, definitions)
65
+ }
66
+
67
+ module.exports = parse