docusaurus-plugin-openapi-docs 0.0.0-753 → 0.0.0-757

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/lib/index.js CHANGED
@@ -375,6 +375,15 @@ custom_edit_url: null
375
375
  downloadUrl: metadata.downloadUrl,
376
376
  });
377
377
  }
378
+ if (!fs_1.default.existsSync(outputDir)) {
379
+ try {
380
+ fs_1.default.mkdirSync(outputDir, { recursive: true });
381
+ console.log(chalk_1.default.green(`Successfully created "${outputDir}"`));
382
+ }
383
+ catch (err) {
384
+ console.error(chalk_1.default.red(`Failed to create "${outputDir}"`), chalk_1.default.yellow(err));
385
+ }
386
+ }
378
387
  const versionsJson = JSON.stringify(versionsArray, null, 2);
379
388
  try {
380
389
  fs_1.default.writeFileSync(`${outputDir}/versions.json`, versionsJson + "\n", "utf8");
@@ -61,6 +61,7 @@ function createAnyOneOf(schema) {
61
61
  (0, utils_1.create)("span", {
62
62
  className: "badge badge--info",
63
63
  children: type,
64
+ style: { marginBottom: "1rem" },
64
65
  }),
65
66
  (0, utils_1.create)("SchemaTabs", {
66
67
  children: schema[type].map((anyOneSchema, index) => {
@@ -68,6 +69,12 @@ function createAnyOneOf(schema) {
68
69
  ? anyOneSchema.title
69
70
  : `MOD${index + 1}`;
70
71
  const anyOneChildren = [];
72
+ if (anyOneSchema.type === "object" &&
73
+ !anyOneSchema.properties &&
74
+ !anyOneSchema.allOf &&
75
+ !anyOneSchema.items) {
76
+ anyOneChildren.push(createNodes(anyOneSchema, SCHEMA_TYPE));
77
+ }
71
78
  if (anyOneSchema.properties !== undefined) {
72
79
  anyOneChildren.push(createProperties(anyOneSchema));
73
80
  delete anyOneSchema.properties;
@@ -352,63 +359,79 @@ function createDetailsNode(name, schemaName, schema, required, nullable) {
352
359
  /**
353
360
  * For handling anyOf/oneOf properties.
354
361
  */
355
- function createAnyOneOfProperty(name, schemaName, schema, required, nullable) {
356
- return (0, utils_1.create)("SchemaItem", {
357
- collapsible: true,
358
- className: "schemaItem",
359
- children: [
360
- (0, createDetails_1.createDetails)({
361
- className: "openapi-markdown__details",
362
- children: [
363
- (0, createDetailsSummary_1.createDetailsSummary)({
364
- children: [
365
- (0, utils_1.create)("strong", { children: name }),
366
- (0, utils_1.create)("span", {
367
- style: { opacity: "0.6" },
368
- children: ` ${schemaName}`,
369
- }),
370
- (0, utils_1.guard)((schema.nullable && schema.nullable === true) ||
371
- (nullable && nullable === true), () => [
372
- (0, utils_1.create)("strong", {
373
- style: {
374
- fontSize: "var(--ifm-code-font-size)",
375
- color: "var(--openapi-nullable)",
376
- },
377
- children: " nullable",
378
- }),
379
- ]),
380
- (0, utils_1.guard)(Array.isArray(required)
381
- ? required.includes(name)
382
- : required === true, () => [
383
- (0, utils_1.create)("strong", {
384
- style: {
385
- fontSize: "var(--ifm-code-font-size)",
386
- color: "var(--openapi-required)",
387
- },
388
- children: " required",
389
- }),
390
- ]),
391
- ],
392
- }),
393
- (0, utils_1.create)("div", {
394
- style: { marginLeft: "1rem" },
395
- children: [
396
- (0, utils_1.guard)((0, schema_1.getQualifierMessage)(schema), (message) => (0, utils_1.create)("div", {
397
- style: { marginTop: ".5rem", marginBottom: ".5rem" },
398
- children: (0, createDescription_1.createDescription)(message),
399
- })),
400
- (0, utils_1.guard)(schema.description, (description) => (0, utils_1.create)("div", {
401
- style: { marginTop: ".5rem", marginBottom: ".5rem" },
402
- children: (0, createDescription_1.createDescription)(description),
403
- })),
404
- ],
405
- }),
406
- createAnyOneOf(schema),
407
- ],
408
- }),
409
- ],
410
- });
411
- }
362
+ // function createAnyOneOfProperty(
363
+ // name: string,
364
+ // schemaName: string,
365
+ // schema: SchemaObject,
366
+ // required: string[] | boolean,
367
+ // nullable: boolean | unknown
368
+ // ): any {
369
+ // return create("SchemaItem", {
370
+ // collapsible: true,
371
+ // className: "schemaItem",
372
+ // children: [
373
+ // createDetails({
374
+ // className: "openapi-markdown__details",
375
+ // children: [
376
+ // createDetailsSummary({
377
+ // children: [
378
+ // create("strong", { children: name }),
379
+ // create("span", {
380
+ // style: { opacity: "0.6" },
381
+ // children: ` ${schemaName}`,
382
+ // }),
383
+ // guard(
384
+ // (schema.nullable && schema.nullable === true) ||
385
+ // (nullable && nullable === true),
386
+ // () => [
387
+ // create("strong", {
388
+ // style: {
389
+ // fontSize: "var(--ifm-code-font-size)",
390
+ // color: "var(--openapi-nullable)",
391
+ // },
392
+ // children: " nullable",
393
+ // }),
394
+ // ]
395
+ // ),
396
+ // guard(
397
+ // Array.isArray(required)
398
+ // ? required.includes(name)
399
+ // : required === true,
400
+ // () => [
401
+ // create("strong", {
402
+ // style: {
403
+ // fontSize: "var(--ifm-code-font-size)",
404
+ // color: "var(--openapi-required)",
405
+ // },
406
+ // children: " required",
407
+ // }),
408
+ // ]
409
+ // ),
410
+ // ],
411
+ // }),
412
+ // create("div", {
413
+ // style: { marginLeft: "1rem" },
414
+ // children: [
415
+ // guard(getQualifierMessage(schema), (message) =>
416
+ // create("div", {
417
+ // style: { marginTop: ".5rem", marginBottom: ".5rem" },
418
+ // children: createDescription(message),
419
+ // })
420
+ // ),
421
+ // guard(schema.description, (description) =>
422
+ // create("div", {
423
+ // style: { marginTop: ".5rem", marginBottom: ".5rem" },
424
+ // children: createDescription(description),
425
+ // })
426
+ // ),
427
+ // ],
428
+ // }),
429
+ // createAnyOneOf(schema),
430
+ // ],
431
+ // }),
432
+ // ],
433
+ // });
434
+ // }
412
435
  /**
413
436
  * For handling discriminators that map to a same-level property (like 'petType').
414
437
  * Note: These should only be encountered while iterating through properties.
@@ -491,7 +514,7 @@ function createEdges({ name, schema, required, discriminator, }) {
491
514
  return createPropertyDiscriminator(name, "string", schema, discriminator, required);
492
515
  }
493
516
  if (schema.oneOf !== undefined || schema.anyOf !== undefined) {
494
- return createAnyOneOfProperty(name, schemaName, schema, required, schema.nullable);
517
+ return createDetailsNode(name, schemaName, schema, required, schema.nullable);
495
518
  }
496
519
  if (schema.allOf !== undefined) {
497
520
  const { mergedSchemas } = mergeAllOf(schema.allOf);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "docusaurus-plugin-openapi-docs",
3
3
  "description": "OpenAPI plugin for Docusaurus.",
4
- "version": "0.0.0-753",
4
+ "version": "0.0.0-757",
5
5
  "license": "MIT",
6
6
  "keywords": [
7
7
  "openapi",
@@ -62,5 +62,5 @@
62
62
  "engines": {
63
63
  "node": ">=14"
64
64
  },
65
- "gitHead": "b62528fa993b487c1754d6a9c8604a4adcfd69da"
65
+ "gitHead": "a727189a252bd5da29de36ebc5c6b18efa4572b5"
66
66
  }
package/src/index.ts CHANGED
@@ -535,6 +535,18 @@ custom_edit_url: null
535
535
  });
536
536
  }
537
537
 
538
+ if (!fs.existsSync(outputDir)) {
539
+ try {
540
+ fs.mkdirSync(outputDir, { recursive: true });
541
+ console.log(chalk.green(`Successfully created "${outputDir}"`));
542
+ } catch (err) {
543
+ console.error(
544
+ chalk.red(`Failed to create "${outputDir}"`),
545
+ chalk.yellow(err)
546
+ );
547
+ }
548
+ }
549
+
538
550
  const versionsJson = JSON.stringify(versionsArray, null, 2);
539
551
  try {
540
552
  fs.writeFileSync(
@@ -12,7 +12,9 @@ Array [
12
12
  </summary>
13
13
  <div style={{ marginLeft: \\"1rem\\" }}>
14
14
  <div>
15
- <span className={\\"badge badge--info\\"}>oneOf</span>
15
+ <span className={\\"badge badge--info\\"} style={{ marginBottom: \\"1rem\\" }}>
16
+ oneOf
17
+ </span>
16
18
  <SchemaTabs>
17
19
  <TabItem label={\\"MOD1\\"} value={\\"0-item-properties\\"}>
18
20
  <SchemaItem
@@ -226,67 +228,72 @@ Array [
226
228
  "<SchemaItem collapsible={true} className={\\"schemaItem\\"}>
227
229
  <details style={{}} className={\\"openapi-markdown__details\\"}>
228
230
  <summary style={{}}>
229
- <strong>oneOfProperty</strong>
230
- <span style={{ opacity: \\"0.6\\" }}>object</span>
231
+ <span className={\\"openapi-schema__container\\"}>
232
+ <strong className={\\"openapi-schema__property\\"}>oneOfProperty</strong>
233
+ <span className={\\"openapi-schema__name\\"}>object</span>
234
+ </span>
231
235
  </summary>
232
- <div style={{ marginLeft: \\"1rem\\" }}></div>
233
- <div>
234
- <span className={\\"badge badge--info\\"}>oneOf</span>
235
- <SchemaTabs>
236
- <TabItem label={\\"MOD1\\"} value={\\"0-item-properties\\"}>
237
- <SchemaItem
238
- collapsible={false}
239
- name={\\"noseLength\\"}
240
- required={true}
241
- schemaName={\\"number\\"}
242
- qualifierMessage={undefined}
243
- schema={{ type: \\"number\\" }}
244
- ></SchemaItem>
245
- </TabItem>
246
- <TabItem label={\\"MOD2\\"} value={\\"1-item-properties\\"}>
247
- <li>
248
- <div
249
- style={{
250
- fontSize: \\"var(--ifm-code-font-size)\\",
251
- opacity: \\"0.6\\",
252
- marginLeft: \\"-.5rem\\",
253
- paddingBottom: \\".5rem\\",
254
- }}
255
- >
256
- Array [
236
+ <div style={{ marginLeft: \\"1rem\\" }}>
237
+ <div>
238
+ <span className={\\"badge badge--info\\"} style={{ marginBottom: \\"1rem\\" }}>
239
+ oneOf
240
+ </span>
241
+ <SchemaTabs>
242
+ <TabItem label={\\"MOD1\\"} value={\\"0-item-properties\\"}>
243
+ <SchemaItem
244
+ collapsible={false}
245
+ name={\\"noseLength\\"}
246
+ required={true}
247
+ schemaName={\\"number\\"}
248
+ qualifierMessage={undefined}
249
+ schema={{ type: \\"number\\" }}
250
+ ></SchemaItem>
251
+ </TabItem>
252
+ <TabItem label={\\"MOD2\\"} value={\\"1-item-properties\\"}>
253
+ <li>
254
+ <div
255
+ style={{
256
+ fontSize: \\"var(--ifm-code-font-size)\\",
257
+ opacity: \\"0.6\\",
258
+ marginLeft: \\"-.5rem\\",
259
+ paddingBottom: \\".5rem\\",
260
+ }}
261
+ >
262
+ Array [
263
+ </div>
264
+ </li>
265
+ <div style={{ marginTop: \\".5rem\\", marginBottom: \\".5rem\\" }}>
266
+ string
267
+ </div>
268
+ <li>
269
+ <div
270
+ style={{
271
+ fontSize: \\"var(--ifm-code-font-size)\\",
272
+ opacity: \\"0.6\\",
273
+ marginLeft: \\"-.5rem\\",
274
+ }}
275
+ >
276
+ ]
277
+ </div>
278
+ </li>
279
+ </TabItem>
280
+ <TabItem label={\\"MOD3\\"} value={\\"2-item-properties\\"}>
281
+ <div style={{ marginTop: \\".5rem\\", marginBottom: \\".5rem\\" }}>
282
+ boolean
257
283
  </div>
258
- </li>
259
- <div style={{ marginTop: \\".5rem\\", marginBottom: \\".5rem\\" }}>
260
- string
261
- </div>
262
- <li>
263
- <div
264
- style={{
265
- fontSize: \\"var(--ifm-code-font-size)\\",
266
- opacity: \\"0.6\\",
267
- marginLeft: \\"-.5rem\\",
268
- }}
269
- >
270
- ]
284
+ </TabItem>
285
+ <TabItem label={\\"MOD4\\"} value={\\"3-item-properties\\"}>
286
+ <div style={{ marginTop: \\".5rem\\", marginBottom: \\".5rem\\" }}>
287
+ number
271
288
  </div>
272
- </li>
273
- </TabItem>
274
- <TabItem label={\\"MOD3\\"} value={\\"2-item-properties\\"}>
275
- <div style={{ marginTop: \\".5rem\\", marginBottom: \\".5rem\\" }}>
276
- boolean
277
- </div>
278
- </TabItem>
279
- <TabItem label={\\"MOD4\\"} value={\\"3-item-properties\\"}>
280
- <div style={{ marginTop: \\".5rem\\", marginBottom: \\".5rem\\" }}>
281
- number
282
- </div>
283
- </TabItem>
284
- <TabItem label={\\"MOD5\\"} value={\\"4-item-properties\\"}>
285
- <div style={{ marginTop: \\".5rem\\", marginBottom: \\".5rem\\" }}>
286
- string
287
- </div>
288
- </TabItem>
289
- </SchemaTabs>
289
+ </TabItem>
290
+ <TabItem label={\\"MOD5\\"} value={\\"4-item-properties\\"}>
291
+ <div style={{ marginTop: \\".5rem\\", marginBottom: \\".5rem\\" }}>
292
+ string
293
+ </div>
294
+ </TabItem>
295
+ </SchemaTabs>
296
+ </div>
290
297
  </div>
291
298
  </details>
292
299
  </SchemaItem>;
@@ -66,6 +66,7 @@ function createAnyOneOf(schema: SchemaObject): any {
66
66
  create("span", {
67
67
  className: "badge badge--info",
68
68
  children: type,
69
+ style: { marginBottom: "1rem" },
69
70
  }),
70
71
  create("SchemaTabs", {
71
72
  children: schema[type]!.map((anyOneSchema, index) => {
@@ -74,6 +75,15 @@ function createAnyOneOf(schema: SchemaObject): any {
74
75
  : `MOD${index + 1}`;
75
76
  const anyOneChildren = [];
76
77
 
78
+ if (
79
+ anyOneSchema.type === "object" &&
80
+ !anyOneSchema.properties &&
81
+ !anyOneSchema.allOf &&
82
+ !anyOneSchema.items
83
+ ) {
84
+ anyOneChildren.push(createNodes(anyOneSchema, SCHEMA_TYPE));
85
+ }
86
+
77
87
  if (anyOneSchema.properties !== undefined) {
78
88
  anyOneChildren.push(createProperties(anyOneSchema));
79
89
  delete anyOneSchema.properties;
@@ -415,79 +425,79 @@ function createDetailsNode(
415
425
  /**
416
426
  * For handling anyOf/oneOf properties.
417
427
  */
418
- function createAnyOneOfProperty(
419
- name: string,
420
- schemaName: string,
421
- schema: SchemaObject,
422
- required: string[] | boolean,
423
- nullable: boolean | unknown
424
- ): any {
425
- return create("SchemaItem", {
426
- collapsible: true,
427
- className: "schemaItem",
428
- children: [
429
- createDetails({
430
- className: "openapi-markdown__details",
431
- children: [
432
- createDetailsSummary({
433
- children: [
434
- create("strong", { children: name }),
435
- create("span", {
436
- style: { opacity: "0.6" },
437
- children: ` ${schemaName}`,
438
- }),
439
- guard(
440
- (schema.nullable && schema.nullable === true) ||
441
- (nullable && nullable === true),
442
- () => [
443
- create("strong", {
444
- style: {
445
- fontSize: "var(--ifm-code-font-size)",
446
- color: "var(--openapi-nullable)",
447
- },
448
- children: " nullable",
449
- }),
450
- ]
451
- ),
452
- guard(
453
- Array.isArray(required)
454
- ? required.includes(name)
455
- : required === true,
456
- () => [
457
- create("strong", {
458
- style: {
459
- fontSize: "var(--ifm-code-font-size)",
460
- color: "var(--openapi-required)",
461
- },
462
- children: " required",
463
- }),
464
- ]
465
- ),
466
- ],
467
- }),
468
- create("div", {
469
- style: { marginLeft: "1rem" },
470
- children: [
471
- guard(getQualifierMessage(schema), (message) =>
472
- create("div", {
473
- style: { marginTop: ".5rem", marginBottom: ".5rem" },
474
- children: createDescription(message),
475
- })
476
- ),
477
- guard(schema.description, (description) =>
478
- create("div", {
479
- style: { marginTop: ".5rem", marginBottom: ".5rem" },
480
- children: createDescription(description),
481
- })
482
- ),
483
- ],
484
- }),
485
- createAnyOneOf(schema),
486
- ],
487
- }),
488
- ],
489
- });
490
- }
428
+ // function createAnyOneOfProperty(
429
+ // name: string,
430
+ // schemaName: string,
431
+ // schema: SchemaObject,
432
+ // required: string[] | boolean,
433
+ // nullable: boolean | unknown
434
+ // ): any {
435
+ // return create("SchemaItem", {
436
+ // collapsible: true,
437
+ // className: "schemaItem",
438
+ // children: [
439
+ // createDetails({
440
+ // className: "openapi-markdown__details",
441
+ // children: [
442
+ // createDetailsSummary({
443
+ // children: [
444
+ // create("strong", { children: name }),
445
+ // create("span", {
446
+ // style: { opacity: "0.6" },
447
+ // children: ` ${schemaName}`,
448
+ // }),
449
+ // guard(
450
+ // (schema.nullable && schema.nullable === true) ||
451
+ // (nullable && nullable === true),
452
+ // () => [
453
+ // create("strong", {
454
+ // style: {
455
+ // fontSize: "var(--ifm-code-font-size)",
456
+ // color: "var(--openapi-nullable)",
457
+ // },
458
+ // children: " nullable",
459
+ // }),
460
+ // ]
461
+ // ),
462
+ // guard(
463
+ // Array.isArray(required)
464
+ // ? required.includes(name)
465
+ // : required === true,
466
+ // () => [
467
+ // create("strong", {
468
+ // style: {
469
+ // fontSize: "var(--ifm-code-font-size)",
470
+ // color: "var(--openapi-required)",
471
+ // },
472
+ // children: " required",
473
+ // }),
474
+ // ]
475
+ // ),
476
+ // ],
477
+ // }),
478
+ // create("div", {
479
+ // style: { marginLeft: "1rem" },
480
+ // children: [
481
+ // guard(getQualifierMessage(schema), (message) =>
482
+ // create("div", {
483
+ // style: { marginTop: ".5rem", marginBottom: ".5rem" },
484
+ // children: createDescription(message),
485
+ // })
486
+ // ),
487
+ // guard(schema.description, (description) =>
488
+ // create("div", {
489
+ // style: { marginTop: ".5rem", marginBottom: ".5rem" },
490
+ // children: createDescription(description),
491
+ // })
492
+ // ),
493
+ // ],
494
+ // }),
495
+ // createAnyOneOf(schema),
496
+ // ],
497
+ // }),
498
+ // ],
499
+ // });
500
+ // }
491
501
 
492
502
  /**
493
503
  * For handling discriminators that map to a same-level property (like 'petType').
@@ -606,7 +616,7 @@ function createEdges({
606
616
  }
607
617
 
608
618
  if (schema.oneOf !== undefined || schema.anyOf !== undefined) {
609
- return createAnyOneOfProperty(
619
+ return createDetailsNode(
610
620
  name,
611
621
  schemaName,
612
622
  schema,