mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-06 00:07:44 +01:00
6afc0a6954
* Wip: fix openapi spec
* Feat: add openapi enforcer for enforcing the generated schema
* Chore: Allow the example keyword in params
* Feat: add validator tests and fix some errors
* Use @apidevtools/swagger-parser for schema validation
* Wip: refactor tests for updated schema name
* Feat: update request params creation method
* Feat: add query params to state
* Refactor: move mapping test into separate function
* Refactor: rename request-parameters -> query-parameters
* Refactor: expose only finished query parameters
* Wip: fixup param types
* Refactor: remove unused types
* Chore: rename and cleanup
* Chore: cleanup
* Fix: Update snapshot
* Fix: use ?? Instead of paramToBool to get defaults
* Wip: generate query param object type from openapi params list
* Wip: use generated types for export query params
* Revert "Fix: use ?? Instead of paramToBool to get defaults"
This reverts commit 842567500b
.
Because we accept bools, strings, and numbers, this is the only way to
do it.
* Chore: update and pin json-schema-to-ts
* Fix: use `&` to merge types
* Update snapshot
* Chore: rename export-parameters-schema -> export-query-parameters
When it ends in `schema`, the tests expect it to be included in the
openapi index file.
144 lines
3.4 KiB
TypeScript
144 lines
3.4 KiB
TypeScript
import { FromQueryParams } from '../util/from-query-params';
|
|
|
|
export const exportQueryParameters = [
|
|
{
|
|
name: 'format',
|
|
schema: {
|
|
type: 'string',
|
|
enum: ['json', 'yaml'],
|
|
default: 'json',
|
|
},
|
|
description: 'Desired export format. Must be either `json` or `yaml`.',
|
|
in: 'query',
|
|
},
|
|
{
|
|
name: 'download',
|
|
schema: {
|
|
default: false,
|
|
anyOf: [
|
|
{
|
|
type: 'boolean',
|
|
},
|
|
{
|
|
type: 'string',
|
|
minLength: 1,
|
|
},
|
|
{
|
|
type: 'number',
|
|
},
|
|
],
|
|
},
|
|
description: 'Whether exported data should be downloaded as a file.',
|
|
in: 'query',
|
|
},
|
|
{
|
|
name: 'strategies',
|
|
schema: {
|
|
default: true,
|
|
anyOf: [
|
|
{
|
|
type: 'boolean',
|
|
},
|
|
{
|
|
type: 'string',
|
|
minLength: 1,
|
|
},
|
|
{
|
|
type: 'number',
|
|
},
|
|
],
|
|
},
|
|
description:
|
|
'Whether strategies should be included in the exported data.',
|
|
in: 'query',
|
|
},
|
|
{
|
|
name: 'featureToggles',
|
|
schema: {
|
|
anyOf: [
|
|
{
|
|
type: 'boolean',
|
|
},
|
|
{
|
|
type: 'string',
|
|
minLength: 1,
|
|
},
|
|
{
|
|
type: 'number',
|
|
},
|
|
],
|
|
default: true,
|
|
},
|
|
description:
|
|
'Whether feature toggles should be included in the exported data.',
|
|
in: 'query',
|
|
},
|
|
{
|
|
name: 'projects',
|
|
schema: {
|
|
anyOf: [
|
|
{
|
|
type: 'boolean',
|
|
},
|
|
{
|
|
type: 'string',
|
|
minLength: 1,
|
|
},
|
|
{
|
|
type: 'number',
|
|
},
|
|
],
|
|
default: true,
|
|
},
|
|
description:
|
|
'Whether projects should be included in the exported data.',
|
|
in: 'query',
|
|
},
|
|
{
|
|
name: 'tags',
|
|
schema: {
|
|
anyOf: [
|
|
{
|
|
type: 'boolean',
|
|
},
|
|
{
|
|
type: 'string',
|
|
minLength: 1,
|
|
},
|
|
{
|
|
type: 'number',
|
|
},
|
|
],
|
|
default: true,
|
|
},
|
|
description:
|
|
'Whether tag types, tags, and feature_tags should be included in the exported data.',
|
|
in: 'query',
|
|
},
|
|
{
|
|
name: 'environments',
|
|
schema: {
|
|
anyOf: [
|
|
{
|
|
type: 'boolean',
|
|
},
|
|
{
|
|
type: 'string',
|
|
minLength: 1,
|
|
},
|
|
{
|
|
type: 'number',
|
|
},
|
|
],
|
|
default: true,
|
|
},
|
|
description:
|
|
'Whether environments should be included in the exported data.',
|
|
in: 'query',
|
|
},
|
|
] as const;
|
|
|
|
export type ExportQueryParameters = FromQueryParams<
|
|
typeof exportQueryParameters
|
|
>;
|