-
-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a JSON schema #146
Comments
Thanks @UnderKoen, sounds good. |
@UnderKoen I have the following schema generated: {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Record<string,CustomTypeConfig.Any>": {
"type": "object"
},
"SemverGroupConfig.Any": {
"anyOf": [
{
"$ref": "#/definitions/{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];range?:never;}"
},
{
"$ref": "#/definitions/{range:SemverRange;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;}"
}
]
},
"SemverRange": {
"default": "",
"description": "Aliases for semver range formats supported by syncpack\n\nDefaults to `\"\"` to ensure that exact dependency versions are used\ninstead of loose ranges, but this can be overridden in your config file\nor via the `--semver-range` command line option.\n\n| Supported Range | Example |\n| --------------- | --------: |\n| `\"<\"` | `<1.4.2` |\n| `\"<=\"` | `<=1.4.2` |\n| `\"\"` | `1.4.2` |\n| `\"~\"` | `~1.4.2` |\n| `\"^\"` | `^1.4.2` |\n| `\">=\"` | `>=1.4.2` |\n| `\">\"` | `>1.4.2` |\n| `\"*\"` | `*` |",
"enum": [
"",
"*",
".x",
"<",
"<=",
">",
">=",
"^",
"~"
],
"type": "string"
},
"VersionGroupConfig.Any": {
"anyOf": [
{
"$ref": "#/definitions/{isBanned:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
},
{
"$ref": "#/definitions/{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
},
{
"$ref": "#/definitions/{pinVersion:string;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
},
{
"$ref": "#/definitions/{snapTo:string[];dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}"
},
{
"$ref": "#/definitions/{policy:\"sameRange\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}"
},
{
"$ref": "#/definitions/{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}"
}
]
},
"{isBanned:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
"properties": {
"dependencies": {
"items": {
"type": "string"
},
"type": "array"
},
"dependencyTypes": {
"items": {
"type": "string"
},
"type": "array"
},
"isBanned": {
"const": true,
"type": "boolean"
},
"label": {
"type": "string"
},
"packages": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
"properties": {
"dependencies": {
"items": {
"type": "string"
},
"type": "array"
},
"dependencyTypes": {
"items": {
"type": "string"
},
"type": "array"
},
"isIgnored": {
"const": true,
"type": "boolean"
},
"label": {
"type": "string"
},
"packages": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];range?:never;}": {
"properties": {
"dependencies": {
"items": {
"type": "string"
},
"type": "array"
},
"dependencyTypes": {
"items": {
"type": "string"
},
"type": "array"
},
"isIgnored": {
"const": true,
"type": "boolean"
},
"label": {
"type": "string"
},
"packages": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"{pinVersion:string;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
"properties": {
"dependencies": {
"items": {
"type": "string"
},
"type": "array"
},
"dependencyTypes": {
"items": {
"type": "string"
},
"type": "array"
},
"label": {
"type": "string"
},
"packages": {
"items": {
"type": "string"
},
"type": "array"
},
"pinVersion": {
"type": "string"
}
},
"type": "object"
},
"{policy:\"sameRange\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}": {
"properties": {
"dependencies": {
"items": {
"type": "string"
},
"type": "array"
},
"dependencyTypes": {
"items": {
"type": "string"
},
"type": "array"
},
"label": {
"type": "string"
},
"packages": {
"items": {
"type": "string"
},
"type": "array"
},
"policy": {
"const": "sameRange",
"type": "string"
}
},
"type": "object"
},
"{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}": {
"properties": {
"dependencies": {
"items": {
"type": "string"
},
"type": "array"
},
"dependencyTypes": {
"items": {
"type": "string"
},
"type": "array"
},
"label": {
"type": "string"
},
"packages": {
"items": {
"type": "string"
},
"type": "array"
},
"preferVersion": {
"enum": [
"highestSemver",
"lowestSemver"
],
"type": "string"
}
},
"type": "object"
},
"{range:SemverRange;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;}": {
"properties": {
"dependencies": {
"items": {
"type": "string"
},
"type": "array"
},
"dependencyTypes": {
"items": {
"type": "string"
},
"type": "array"
},
"label": {
"type": "string"
},
"packages": {
"items": {
"type": "string"
},
"type": "array"
},
"range": {
"$ref": "#/definitions/SemverRange"
}
},
"type": "object"
},
"{snapTo:string[];dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}": {
"properties": {
"dependencies": {
"items": {
"type": "string"
},
"type": "array"
},
"dependencyTypes": {
"items": {
"type": "string"
},
"type": "array"
},
"label": {
"type": "string"
},
"packages": {
"items": {
"type": "string"
},
"type": "array"
},
"snapTo": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
},
"properties": {
"customTypes": {
"$ref": "#/definitions/Record<string,CustomTypeConfig.Any>"
},
"dependencyTypes": {
"items": {
"type": "string"
},
"type": "array"
},
"filter": {
"type": "string"
},
"indent": {
"type": "string"
},
"semverGroups": {
"items": {
"$ref": "#/definitions/SemverGroupConfig.Any"
},
"type": "array"
},
"semverRange": {
"$ref": "#/definitions/SemverRange"
},
"sortAz": {
"items": {
"type": "string"
},
"type": "array"
},
"sortFirst": {
"items": {
"type": "string"
},
"type": "array"
},
"source": {
"items": {
"type": "string"
},
"type": "array"
},
"versionGroups": {
"items": {
"$ref": "#/definitions/VersionGroupConfig.Any"
},
"type": "array"
}
},
"type": "object"
} I can't find any guides on how JSON Schema files should generally be published and/or consumed, the file is currently in ./dist so would be located in published packages at EDIT: Ok I think I need to host it somewhere based on this guide. I could suggest in the docs that users use eg |
Yes, that would work |
Released in 11.2.1 |
Description
I would like to have the benefits of #130 without using js.
Suggested Solution
Define a JSON schema in the repository,
This can be automaticly done by: https://github.com/vega/ts-json-schema-generator
Help needed
When running on this project it fails, due to an type error with @types/fs-extra. Idk what it is
The text was updated successfully, but these errors were encountered: