Skip to content

Commit

Permalink
feat(config): add a json schema
Browse files Browse the repository at this point in the history
Closes #146
Closes #147
  • Loading branch information
JamieMason committed Aug 14, 2023
1 parent c8a5cab commit d35ace5
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 5 deletions.
8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@
"rimraf": "5.0.1",
"ts-jest": "29.1.1",
"ts-node": "10.9.1",
"typescript": "5.1.6"
"typescript": "5.1.6",
"typescript-json-schema": "0.59.0"
},
"engines": {
"node": ">=16"
Expand Down Expand Up @@ -107,7 +108,10 @@
"wrap-ansi": "<8.0.0"
},
"scripts": {
"build": "rm -rf ./dist && tsc --project tsconfig.build.json",
"build": "yarn clean && yarn build:source && yarn build:json-schema",
"build:json-schema": "typescript-json-schema --noExtraProps src/index.ts RcFile --out dist/schema.json",
"build:source": "tsc --project tsconfig.build.json",
"clean": "rm -rf ./dist",
"format": "yarn format:lint && yarn format:source",
"format:lint": "yarn lint --fix",
"format:source": "prettier --write .",
Expand Down
23 changes: 23 additions & 0 deletions site/docs/config-file.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,26 @@ const config = {

module.exports = config;
```

## JSON Schema

From syncpack 11.2.1 and up, a JSON Schema file is available. Just ensure that the version number
you reference matches the version of syncpack you have installed.

```json title=".syncpackrc"
{
"$schema": "https://unpkg.com/syncpack@11.2.1/dist/schema.json",
"versionGroups": [
{
"dependencies": ["@types/node"],
"packages": ["**"],
"pinVersion": "14.18.36"
},
{
"dependencies": ["chalk"],
"packages": ["**"],
"pinVersion": "4.1.2"
}
]
}
```
40 changes: 37 additions & 3 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -849,6 +849,11 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.36.tgz#c414052cb9d43fab67d679d5f3c641be911f5835"
integrity sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==

"@types/node@^16.9.2":
version "16.18.40"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.40.tgz#968d64746d20cac747a18ca982c0f1fe518c031c"
integrity sha512-+yno3ItTEwGxXiS/75Q/aHaa5srkpnJaH+kdkTVJ3DtJEwv92itpKbxU+FjPoh2m/5G9zmUQfrL4A4C13c+iGA==

"@types/npm-package-arg@6.1.1":
version "6.1.1"
resolved "https://registry.yarnpkg.com/@types/npm-package-arg/-/npm-package-arg-6.1.1.tgz#9e2d8adc04d39824a3d9f36f738010a3f7da3c1a"
Expand Down Expand Up @@ -2120,7 +2125,7 @@ glob@^10.2.5:
minipass "^5.0.0 || ^6.0.2"
path-scurry "^1.7.0"

glob@^7.1.3, glob@^7.1.4:
glob@^7.1.3, glob@^7.1.4, glob@^7.1.7:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
Expand Down Expand Up @@ -3316,6 +3321,11 @@ parse-json@^5.0.0, parse-json@^5.2.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"

path-equal@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/path-equal/-/path-equal-1.2.5.tgz#9fcbdd5e5daee448e96f43f3bac06c666b5e982a"
integrity sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==

path-exists@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
Expand Down Expand Up @@ -3561,6 +3571,11 @@ safe-regex-test@^1.0.0:
get-intrinsic "^1.1.3"
is-regex "^1.1.4"

safe-stable-stringify@^2.2.0:
version "2.4.3"
resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886"
integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==

semver@7.5.4, semver@^7.0.0, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
Expand Down Expand Up @@ -3810,7 +3825,7 @@ ts-jest@29.1.1:
semver "^7.5.3"
yargs-parser "^21.0.1"

ts-node@10.9.1:
ts-node@10.9.1, ts-node@^10.9.1:
version "10.9.1"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
Expand Down Expand Up @@ -3917,11 +3932,30 @@ typed-array-length@^1.0.4:
for-each "^0.3.3"
is-typed-array "^1.1.9"

typescript-json-schema@0.59.0:
version "0.59.0"
resolved "https://registry.yarnpkg.com/typescript-json-schema/-/typescript-json-schema-0.59.0.tgz#736d1b4e4b101b9e989741958f0b2571e998d6ed"
integrity sha512-eYB9RO8p4PntznWUukdDQHckNfxzjEFCJUgsWeCE43mcFioE0wXGTSECGk1uhty9XQMxkpuI4pKAqqnb62ln3Q==
dependencies:
"@types/json-schema" "^7.0.9"
"@types/node" "^16.9.2"
glob "^7.1.7"
path-equal "^1.2.5"
safe-stable-stringify "^2.2.0"
ts-node "^10.9.1"
typescript "~4.9.5"
yargs "^17.1.1"

typescript@5.1.6:
version "5.1.6"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274"
integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==

typescript@~4.9.5:
version "4.9.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==

unbox-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
Expand Down Expand Up @@ -4070,7 +4104,7 @@ yargs-parser@^21.0.1, yargs-parser@^21.1.1:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==

yargs@^17.3.1:
yargs@^17.1.1, yargs@^17.3.1:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
Expand Down

0 comments on commit d35ace5

Please sign in to comment.