JSPM

  • Created
  • Published
  • Downloads 84
  • Score
    100M100P100Q71199F
  • License ISC

Package Exports

  • openapi-modifier
  • openapi-modifier/dist/src/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (openapi-modifier) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

openapi-modifier

[!IMPORTANT]
Поддерживает OpenAPI 3.1, 3.0

TODO что это и мотивация создания

  • Бекендер просит проверить используется ли поле в какой-то сущности
  • Бекендер просит проверить используется ли параметр в какой-то ручке
  • Бекендер создает задачу перестать пользоваться endpoint'ом
  • Бекендер написал новое API в разработке но его нет в документации
  • Бекендер просит больше не использовать какой-то параметр в endpoint'е
  • Не валидное OpenAPI (Например, бекендеры использовали не существующий тип int)
  • Нужно оставить знания по модификации (коллеге важно знать почему какое-то поле заблокировано)
  • Нужно наблюдать за изменениями API и вовремя корректировать конфиг (убрали использование ручки)

Использование как CLI

openapi-modifier --input=example-1/input.yml --output=example-1/output.yml --config=example-1/openapi-modifier.config.js

Параметры:

  • input - [обязательный] входной файл для редакирования
  • ouput - [обязательный] вызодной файл
  • config - путь до конфига, по-умолчанию ссылается на openapi-modifier.config.js. Детальное описание конфигурации см. ниже

Пример конфигурации

Можно использовать конфиги в след. расширениях: .js, .yaml, .yml, .json, .ts

Пример конфигурации в .js

module.exports = {
  logger: {
    minLevel: 1,
  },
  input: './openapi.yaml',
  output: './openapi.yaml',
  rules: [
    {
      name: 'remove-operation-id',
      disabled: true,
    },
    // ...
  ],
};

Пример конфигурации в .ts

import type { ConfigT } from 'openapi-modifier';

const config: ConfigT = {
  logger: {
    minLevel: 1,
  },
  input: './openapi.yaml',
  output: './openapi.yaml',
  rules: [
    {
      name: 'remove-operation-id',
      disabled: true,
    },
    // ...
  ],
};

export default config;

Параметры: TODO

Использование как npm пакет/модуль

await openapiModifier({
  input: '',
  output: '',
});

Существующие правила

Добавление нового правила

Необходимо в папку rules добавить папку с именем вновь созданного правила с 2 файлами:

  • index.ts сама логика правила
  • README.md файл с описанием работы правила

Про отладку конкретного правила, см. пункт "Отладка" ниже.

Все названия функций должны начинаться с обозначения действия.

Отладка

Внутри используется для детального логирования npm-пакет - debug

Для вывода всех debug логов:

DEBUG=openapi-modifier:* openapi-modifier

Для вывода debug логов по правилу, например по правилу remove-operation-id:

DEBUG=openapi-modifier:rule:remove-operation-id openapi-modifier

simple-text-file-modifier

TODO

  • причесать документацию TODO