@novice1/api-doc-json-helper 1.0.3 → 1.0.4

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.
@@ -0,0 +1,31 @@
1
+ import { BaseHelperInterface } from '@novice1/api-doc-generator/lib/helpers/baseHelper';
2
+ /**
3
+ * JSON schema (draft-07) helper for \@novice1/api-doc-generator
4
+ */
5
+ export declare abstract class BaseJsonHelper implements BaseHelperInterface {
6
+ protected _schema: object;
7
+ protected _isRequired: boolean;
8
+ constructor({ value: schema }: {
9
+ value?: object | unknown;
10
+ isRoot?: boolean;
11
+ }, isRequired?: boolean);
12
+ protected hasMeta(v: string): boolean;
13
+ protected getMeta(v: string): unknown;
14
+ isValid(): boolean;
15
+ getType(): string;
16
+ getDescription(): string;
17
+ isRequired(): boolean;
18
+ isUnique(): boolean;
19
+ hasDefaultValue(): boolean;
20
+ getDefaultValue(): unknown;
21
+ hasExampleValue(): boolean;
22
+ getExampleValue(): unknown;
23
+ isDeprecated(): boolean;
24
+ allowsEmptyValue(): boolean;
25
+ getEnum(): unknown[];
26
+ hasMin(): boolean;
27
+ hasMax(): boolean;
28
+ getMin(): number | undefined;
29
+ getMax(): number | undefined;
30
+ getUnit(): string;
31
+ }
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseJsonHelper = void 0;
4
+ /**
5
+ * JSON schema (draft-07) helper for \@novice1/api-doc-generator
6
+ */
7
+ class BaseJsonHelper {
8
+ constructor({ value: schema = {} }, isRequired) {
9
+ this._isRequired = false;
10
+ this._schema = {};
11
+ if (schema && typeof schema === 'object') {
12
+ const s = schema;
13
+ this._schema = s;
14
+ }
15
+ if (isRequired) {
16
+ this._isRequired = isRequired;
17
+ }
18
+ }
19
+ hasMeta(v) {
20
+ if (!this.isValid()) {
21
+ return false;
22
+ }
23
+ return 'meta' in this._schema &&
24
+ this._schema.meta &&
25
+ typeof this._schema.meta === 'object' &&
26
+ v in this._schema.meta && typeof this._schema.meta[v] !== 'undefined' ?
27
+ true : false;
28
+ }
29
+ getMeta(v) {
30
+ if (!this.hasMeta(v)) {
31
+ return;
32
+ }
33
+ return 'meta' in this._schema &&
34
+ this._schema.meta &&
35
+ typeof this._schema.meta === 'object' &&
36
+ v in this._schema.meta && this._schema.meta[v];
37
+ }
38
+ isValid() {
39
+ return !!(this._schema && typeof this._schema === 'object' &&
40
+ (('type' in this._schema && typeof this._schema.type === 'string') ||
41
+ ('oneOf' in this._schema && Array.isArray(this._schema.oneOf)) ||
42
+ ('anyOf' in this._schema && Array.isArray(this._schema.anyOf))));
43
+ }
44
+ getType() {
45
+ let r = '';
46
+ if ('type' in this._schema && typeof this._schema.type === 'string') {
47
+ r = this._schema.type;
48
+ }
49
+ if ('format' in this._schema && typeof this._schema.format === 'string') {
50
+ r = this._schema.format;
51
+ }
52
+ return r;
53
+ }
54
+ getDescription() {
55
+ let r = '';
56
+ if ('description' in this._schema && typeof this._schema.description === 'string') {
57
+ r = this._schema.description;
58
+ }
59
+ return r;
60
+ }
61
+ isRequired() {
62
+ return this._isRequired;
63
+ }
64
+ isUnique() {
65
+ return !!('uniqueItems' in this._schema && this._schema.uniqueItems);
66
+ }
67
+ hasDefaultValue() {
68
+ return !!('default' in this._schema && typeof this._schema.default != 'undefined');
69
+ }
70
+ getDefaultValue() {
71
+ return 'default' in this._schema ? this._schema.default : undefined;
72
+ }
73
+ hasExampleValue() {
74
+ const schema = this._schema;
75
+ return !!('examples' in schema && Array.isArray(schema.examples) && schema.examples.length);
76
+ }
77
+ getExampleValue() {
78
+ const schema = this._schema;
79
+ if ('examples' in schema && Array.isArray(schema.examples) && schema.examples.length) {
80
+ return schema.examples[0];
81
+ }
82
+ return;
83
+ }
84
+ isDeprecated() {
85
+ return !!('deprecated' in this._schema && this._schema.deprecated);
86
+ }
87
+ allowsEmptyValue() {
88
+ let r = false;
89
+ if ('enum' in this._schema && Array.isArray(this._schema.enum)) {
90
+ const enume = this._schema.enum;
91
+ r = ['', null].some(v => enume.includes(v));
92
+ }
93
+ return r;
94
+ }
95
+ getEnum() {
96
+ let r = [];
97
+ if ('enum' in this._schema && Array.isArray(this._schema.enum)) {
98
+ r = this._schema.enum;
99
+ }
100
+ else if ('anyOf' in this._schema && Array.isArray(this._schema.anyOf)) {
101
+ for (const p of this._schema.anyOf) {
102
+ if (p && typeof p === 'object' && 'const' in p) {
103
+ r.push(p.const);
104
+ }
105
+ }
106
+ }
107
+ return r;
108
+ }
109
+ hasMin() {
110
+ return 'minProperties' in this._schema || 'minItems' in this._schema || 'minimum' in this._schema || 'minLength' in this._schema;
111
+ }
112
+ hasMax() {
113
+ return 'maxProperties' in this._schema || 'maxItems' in this._schema || 'maximum' in this._schema || 'maxLength' in this._schema;
114
+ }
115
+ getMin() {
116
+ if ('minProperties' in this._schema && typeof this._schema.minProperties === 'number') {
117
+ return this._schema.minProperties;
118
+ }
119
+ if ('minItems' in this._schema && typeof this._schema.minItems === 'number') {
120
+ return this._schema.minItems;
121
+ }
122
+ if ('minimum' in this._schema && typeof this._schema.minimum === 'number') {
123
+ return this._schema.minimum;
124
+ }
125
+ if ('minLength' in this._schema && typeof this._schema.minLength === 'number') {
126
+ return this._schema.minLength;
127
+ }
128
+ return;
129
+ }
130
+ getMax() {
131
+ if ('maxProperties' in this._schema && typeof this._schema.maxProperties === 'number') {
132
+ return this._schema.maxProperties;
133
+ }
134
+ if ('maxItems' in this._schema && typeof this._schema.maxItems === 'number') {
135
+ return this._schema.maxItems;
136
+ }
137
+ if ('maximum' in this._schema && typeof this._schema.maximum === 'number') {
138
+ return this._schema.maximum;
139
+ }
140
+ if ('maxLength' in this._schema && typeof this._schema.maxLength === 'number') {
141
+ return this._schema.maxLength;
142
+ }
143
+ return;
144
+ }
145
+ getUnit() {
146
+ const unit = this.getMeta('unit');
147
+ if (typeof unit === 'string') {
148
+ return unit;
149
+ }
150
+ return '';
151
+ }
152
+ }
153
+ exports.BaseJsonHelper = BaseJsonHelper;
154
+ //# sourceMappingURL=BaseJsonHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseJsonHelper.js","sourceRoot":"","sources":["../src/BaseJsonHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { OpenAPIHelperInterface } from '@novice1/api-doc-generator';
2
+ import { AdditionalProperties, DiscriminatorObject, XMLObject, ExampleObject, ReferenceObject, EncodingObject } from '@novice1/api-doc-generator/lib/generators/openapi/definitions';
3
+ import { BaseJsonHelper } from './BaseJsonHelper';
4
+ /**
5
+ * JSON schema (draft-07) helper for \@novice1/api-doc-generator
6
+ */
7
+ export declare class OpenAPIJsonHelper extends BaseJsonHelper implements OpenAPIHelperInterface {
8
+ getFirstItem(): OpenAPIJsonHelper | undefined;
9
+ getChildren(): Record<string, OpenAPIJsonHelper>;
10
+ getAlternatives(): OpenAPIJsonHelper[];
11
+ hasStyle(): boolean;
12
+ getStyle(): string;
13
+ hasAdditionalProperties(): boolean;
14
+ getAdditionalProperties(): AdditionalProperties;
15
+ hasRef(): boolean;
16
+ getRef(): string | undefined;
17
+ hasDiscriminator(): boolean;
18
+ getDiscriminator(): DiscriminatorObject | undefined;
19
+ hasXml(): boolean;
20
+ getXml(): XMLObject | undefined;
21
+ hasExamples?(): boolean;
22
+ getExamples?(): Record<string, ExampleObject | ReferenceObject> | undefined;
23
+ hasEncoding?(): boolean;
24
+ getEncoding?(): Record<string, EncodingObject> | undefined;
25
+ }
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenAPIJsonHelper = void 0;
4
+ const BaseJsonHelper_1 = require("./BaseJsonHelper");
5
+ /**
6
+ * JSON schema (draft-07) helper for \@novice1/api-doc-generator
7
+ */
8
+ class OpenAPIJsonHelper extends BaseJsonHelper_1.BaseJsonHelper {
9
+ getFirstItem() {
10
+ const schema = this._schema;
11
+ if ('items' in schema && typeof schema.items === 'object') {
12
+ return new OpenAPIJsonHelper({ value: schema.items });
13
+ }
14
+ return;
15
+ }
16
+ getChildren() {
17
+ const r = {};
18
+ const schema = this._schema;
19
+ if ('properties' in schema && typeof schema.properties === 'object' && schema.properties) {
20
+ const properties = schema.properties;
21
+ for (const p in properties) {
22
+ const isRequired = 'required' in schema && Array.isArray(schema.required) && schema.required.includes(p);
23
+ r[p] = new OpenAPIJsonHelper({ value: properties[p] }, isRequired);
24
+ }
25
+ }
26
+ return r;
27
+ }
28
+ getAlternatives() {
29
+ const r = [];
30
+ const schema = this._schema;
31
+ if ('oneOf' in schema && Array.isArray(schema.oneOf)) {
32
+ for (const p of schema.oneOf) {
33
+ r.push(new OpenAPIJsonHelper({ value: p }));
34
+ }
35
+ }
36
+ return r;
37
+ }
38
+ hasStyle() {
39
+ return typeof this.getMeta('style') === 'string';
40
+ }
41
+ getStyle() {
42
+ const style = this.getMeta('style');
43
+ if (typeof style === 'string') {
44
+ return style;
45
+ }
46
+ return '';
47
+ }
48
+ hasAdditionalProperties() {
49
+ const schema = this._schema;
50
+ return !!('additionalProperties' in schema && schema.additionalProperties);
51
+ }
52
+ getAdditionalProperties() {
53
+ const schema = this._schema;
54
+ return 'additionalProperties' in schema && schema.additionalProperties;
55
+ }
56
+ hasRef() {
57
+ const schema = this._schema;
58
+ return !!('$ref' in schema && typeof schema.$ref === 'string');
59
+ }
60
+ getRef() {
61
+ const schema = this._schema;
62
+ return '$ref' in schema && typeof schema.$ref === 'string' ? schema.$ref : undefined;
63
+ }
64
+ hasDiscriminator() {
65
+ return !!('discriminator' in this._schema &&
66
+ this._schema.discriminator &&
67
+ typeof this._schema.discriminator === 'object' &&
68
+ 'propertyName' in this._schema.discriminator &&
69
+ this._schema.discriminator.propertyName &&
70
+ typeof this._schema.discriminator.propertyName === 'string');
71
+ }
72
+ getDiscriminator() {
73
+ return 'discriminator' in this._schema &&
74
+ this._schema.discriminator &&
75
+ typeof this._schema.discriminator === 'object' &&
76
+ 'propertyName' in this._schema.discriminator &&
77
+ this._schema.discriminator.propertyName &&
78
+ typeof this._schema.discriminator.propertyName === 'string' ?
79
+ this._schema.discriminator :
80
+ undefined;
81
+ }
82
+ hasXml() {
83
+ const xmlMeta = this.getMeta('xml');
84
+ return !!(xmlMeta && typeof xmlMeta === 'object');
85
+ }
86
+ getXml() {
87
+ return this.getMeta('xml');
88
+ }
89
+ hasExamples() {
90
+ const schema = this._schema;
91
+ return !!('examples' in schema && Array.isArray(schema.examples));
92
+ }
93
+ getExamples() {
94
+ const schema = this._schema;
95
+ if ('examples' in schema && Array.isArray(schema.examples)) {
96
+ const r = {};
97
+ let i = 1;
98
+ for (const value of schema.examples) {
99
+ r[`${i}`] = {
100
+ value
101
+ };
102
+ i++;
103
+ }
104
+ return r;
105
+ }
106
+ return;
107
+ }
108
+ hasEncoding() {
109
+ const encodingMeta = this.getMeta('encoding');
110
+ return !!(encodingMeta && typeof encodingMeta === 'object');
111
+ }
112
+ getEncoding() {
113
+ return this.getMeta('encoding');
114
+ }
115
+ }
116
+ exports.OpenAPIJsonHelper = OpenAPIJsonHelper;
117
+ //# sourceMappingURL=OpenAPIJsonHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAPIJsonHelper.js","sourceRoot":"","sources":["../src/OpenAPIJsonHelper.ts"],"names":[],"mappings":";;;AASA,qDAAkD;AAElD;;GAEG;AACH,MAAa,iBAAkB,SAAQ,+BAAc;IAGjD,YAAY;QAER,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAE3B,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxD,OAAO,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACzD,CAAC;QAED,OAAM;IACV,CAAC;IACD,WAAW;QACP,MAAM,CAAC,GAAsC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,YAAY,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACvF,MAAM,UAAU,GAA4B,MAAM,CAAC,UAAqC,CAAA;YACxF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAY,UAAU,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACjH,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;YACtE,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IACD,eAAe;QACX,MAAM,CAAC,GAAwB,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,OAAO,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC/C,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAA;IACZ,CAAC;IACD,QAAQ;QACJ,OAAO,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAA;IACpD,CAAC;IACD,QAAQ;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAA;QAChB,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;IACD,uBAAuB;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,OAAO,CAAC,CAAC,CAAC,sBAAsB,IAAI,MAAM,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC9E,CAAC;IACD,uBAAuB;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,OAAO,sBAAsB,IAAI,MAAM,IAAK,MAAM,CAAC,oBAA6C,CAAA;IACpG,CAAC;IACD,MAAM;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;IAClE,CAAC;IACD,MAAM;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,OAAO,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACxF,CAAC;IACD,gBAAgB;QACZ,OAAO,CAAC,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO;YACrC,IAAI,CAAC,OAAO,CAAC,aAAa;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,QAAQ;YAC9C,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa;YAC5C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY;YACvC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAA;IACpE,CAAC;IACD,gBAAgB;QACZ,OAAO,eAAe,IAAI,IAAI,CAAC,OAAO;YAClC,IAAI,CAAC,OAAO,CAAC,aAAa;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,QAAQ;YAC9C,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa;YAC5C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY;YACvC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO,CAAC,aAAqC,CAAC,CAAC;YACpD,SAAS,CAAA;IACtB,CAAC;IACD,MAAM;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACnC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAA;IACrD,CAAC;IACD,MAAM;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAA0B,CAAA;IACvD,CAAC;IACD,WAAW;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrE,CAAC;IACD,WAAW;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,UAAU,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,MAAM,CAAC,GAAoD,EAAE,CAAC;YAC9D,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;oBACR,KAAK;iBACR,CAAA;gBACD,CAAC,EAAE,CAAA;YACP,CAAC;YACD,OAAO,CAAC,CAAA;QACZ,CAAC;QACD,OAAM;IACV,CAAC;IACD,WAAW;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAA;IAC/D,CAAC;IACD,WAAW;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAA+C,CAAA;IACjF,CAAC;CAEJ;AAjHD,8CAiHC"}
@@ -0,0 +1,14 @@
1
+ import { PostmanHelperInterface } from '@novice1/api-doc-generator';
2
+ import { XMLObject } from '@novice1/api-doc-generator/lib/generators/openapi/definitions';
3
+ import { BaseJsonHelper } from './BaseJsonHelper';
4
+ export declare class PostmanJsonHelper extends BaseJsonHelper implements PostmanHelperInterface {
5
+ getFirstItem(): PostmanJsonHelper | undefined;
6
+ getChildren(): Record<string, PostmanJsonHelper>;
7
+ getAlternatives(): PostmanJsonHelper[];
8
+ hasContentType(): boolean;
9
+ getContentType(): string | undefined;
10
+ hasDescriptionType(): boolean;
11
+ getDescriptionType(): string | undefined;
12
+ hasXml(): boolean;
13
+ getXml(): XMLObject | undefined;
14
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostmanJsonHelper = void 0;
4
+ const BaseJsonHelper_1 = require("./BaseJsonHelper");
5
+ class PostmanJsonHelper extends BaseJsonHelper_1.BaseJsonHelper {
6
+ getFirstItem() {
7
+ const schema = this._schema;
8
+ if ('items' in schema && typeof schema.items === 'object') {
9
+ return new PostmanJsonHelper({ value: schema.items });
10
+ }
11
+ return;
12
+ }
13
+ getChildren() {
14
+ const r = {};
15
+ const schema = this._schema;
16
+ if ('properties' in schema && typeof schema.properties === 'object' && schema.properties) {
17
+ const properties = schema.properties;
18
+ for (const p in properties) {
19
+ const isRequired = 'required' in schema && Array.isArray(schema.required) && schema.required.includes(p);
20
+ r[p] = new PostmanJsonHelper({ value: properties[p] }, isRequired);
21
+ }
22
+ }
23
+ return r;
24
+ }
25
+ getAlternatives() {
26
+ const r = [];
27
+ const schema = this._schema;
28
+ if ('oneOf' in schema && Array.isArray(schema.oneOf)) {
29
+ for (const p of schema.oneOf) {
30
+ r.push(new PostmanJsonHelper({ value: p }));
31
+ }
32
+ }
33
+ return r;
34
+ }
35
+ hasContentType() {
36
+ return typeof this.getMeta('contentType') === 'string';
37
+ }
38
+ getContentType() {
39
+ const contentType = this.getMeta('contentType');
40
+ if (typeof contentType === 'string') {
41
+ return contentType;
42
+ }
43
+ return;
44
+ }
45
+ hasDescriptionType() {
46
+ return typeof this.getMeta('descriptionType') === 'string';
47
+ }
48
+ getDescriptionType() {
49
+ const descriptionType = this.getMeta('descriptionType');
50
+ if (typeof descriptionType === 'string') {
51
+ return descriptionType;
52
+ }
53
+ return;
54
+ }
55
+ hasXml() {
56
+ const xmlMeta = this.getMeta('xml');
57
+ return !!(xmlMeta && typeof xmlMeta === 'object');
58
+ }
59
+ getXml() {
60
+ return this.getMeta('xml');
61
+ }
62
+ }
63
+ exports.PostmanJsonHelper = PostmanJsonHelper;
64
+ //# sourceMappingURL=PostmanJsonHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostmanJsonHelper.js","sourceRoot":"","sources":["../src/PostmanJsonHelper.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAGlD,MAAa,iBAAkB,SAAQ,+BAAc;IAEjD,YAAY;QAER,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAE3B,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxD,OAAO,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACzD,CAAC;QAED,OAAM;IACV,CAAC;IACD,WAAW;QACP,MAAM,CAAC,GAAsC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,YAAY,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACvF,MAAM,UAAU,GAA4B,MAAM,CAAC,UAAqC,CAAA;YACxF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAY,UAAU,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACjH,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;YACtE,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IACD,eAAe;QACX,MAAM,CAAC,GAAwB,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,OAAO,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC/C,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,cAAc;QACV,OAAO,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAA;IAC1D,CAAC;IAED,cAAc;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC/C,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,WAAW,CAAA;QACtB,CAAC;QACD,OAAM;IACV,CAAC;IAED,kBAAkB;QACd,OAAO,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,QAAQ,CAAA;IAC9D,CAAC;IAED,kBAAkB;QACd,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QACvD,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,eAAe,CAAA;QAC1B,CAAC;QACD,OAAM;IACV,CAAC;IAED,MAAM;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACnC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAA;IACrD,CAAC;IACD,MAAM;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAA0B,CAAA;IACvD,CAAC;CACJ;AAlED,8CAkEC"}
package/lib/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './openapi';
2
- export * from './postman';
1
+ export * from './OpenAPIJsonHelper';
2
+ export * from './PostmanJsonHelper';
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./openapi"), exports);
5
- tslib_1.__exportStar(require("./postman"), exports);
4
+ tslib_1.__exportStar(require("./OpenAPIJsonHelper"), exports);
5
+ tslib_1.__exportStar(require("./PostmanJsonHelper"), exports);
6
6
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB;AACzB,oDAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,8DAAmC;AACnC,8DAAmC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@novice1/api-doc-json-helper",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {