Объедините многофайловый yaml в Javascript

Мои файлы yaml разделены в соответствии со структурой, подобной этой:

.
├── index.yaml
├── info
│   └── index.yaml
├── definitions
│   └── index.yaml
│   └── User.yaml
└── paths
    ├── index.yaml
    ├── bar.yaml
    └── foo.yaml

index.yaml:

swagger: '2.0'
info:
  $ref: ./info/index.yaml
paths:
  $ref: ./paths/index.yaml
definitions:
  $ref: ./definitions/index.yaml

Информация /index.yaml:

version: 1.0.0
title: Service API

Определения / index.yaml

User:
  $ref: ./User.yaml

Определения / User.yaml

type: object
properties:
  name:
    type: string

... и так далее (но вы поняли). Я следовал указаниям блога, который сделал именно это. Так что перед звонком initializeMiddleware от swagger-tools библиотека, я понимаю, что мне нужно объединить все эти файлы yaml в один файл. Я попытался сделать это так, Mohsen описывает Mohsen в своем блоге, используя json-refs библиотека и вызов resolveRefs (или же resolveRefsAt) функция для получения объекта ответа с обещанием, содержащего версию документа с разрешенными ссылками JSON. Это, кажется, не работает, хотя. Когда я пытаюсь выполнить следующее, в консоль ничего не попадает:

let options = {
    filter: ['relative', 'remote']
};

jsonRefs.resolveRefsAt('./swagger/index.yaml', options)
.then(function (res): any {
  console.dir(res);
  console.log(JSON.stringify(res.resolved, null, 2));
}, (err) => {
  console.error(err);
});

0 ответов

Другие вопросы по тегам