Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,19 @@ jobs:
run: npm install
- name: Check Types
run: npm run test:types
are_the_types_wrong:
name: Are the types wrong?
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "lts/*"
- name: Install Packages
run: npm install
- name: Check validity of type definitions
run: npm run lint:types
jsr_test:
name: Verify JSR Publish
runs-on: ubuntu-latest
Expand Down
6 changes: 2 additions & 4 deletions jsr.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
{
"name": "@eslint/json",
"version": "0.14.0",
"exports": "./dist/esm/index.js",
"exports": "./dist/index.js",
"publish": {
"include": [
"dist/esm/index.js",
"dist/esm/index.d.ts",
"dist/esm/types.ts",
"dist",
"README.md",
"jsr.json",
"LICENSE"
Expand Down
38 changes: 11 additions & 27 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,15 @@
"description": "JSON linting plugin for ESLint",
"author": "Nicholas C. Zakas",
"type": "module",
"main": "dist/esm/index.js",
"types": "dist/esm/index.d.ts",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"exports": {
".": {
"require": {
"types": "./dist/cjs/index.d.cts",
"default": "./dist/cjs/index.cjs"
},
"import": {
"types": "./dist/esm/index.d.ts",
"default": "./dist/esm/index.js"
}
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
},
"./types": {
"require": {
"types": "./dist/cjs/types.cts"
},
"import": {
"types": "./dist/esm/types.d.ts"
}
"types": "./dist/types.d.ts"
}
},
"files": [
Expand All @@ -41,10 +30,7 @@
"prettier --write"
],
"!(*.js)": "prettier --write --ignore-unknown",
"README.md": [
"npm run build:update-rules-docs"
],
"{src/rules/*.js,tools/update-rules-docs.js}": [
"{src/rules/*.js,tools/update-rules-docs.js,README.md}": [
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

README.md pre-commit hook update can be consolidated into a single line, I went ahead. Just for a reference, the Markdown plugin also uses this approach:

Ref: https://github.com/eslint/markdown/blob/main/package.json#L56-L59

"npm run build:update-rules-docs",
"git add README.md"
]
Expand All @@ -58,20 +44,20 @@
},
"homepage": "https://github.com/eslint/json#readme",
"scripts": {
"build:dedupe-types": "node tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js",
"build:cts": "node tools/build-cts.js",
"build": "npm run build:rules && npm run build:types && npm run build:update-rules-docs",
"build:rules": "node tools/build-rules.js",
"build": "npm run build:rules && rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts",
"build:types": "tsc",
"build:update-rules-docs": "node tools/update-rules-docs.js",
"prepare": "npm run build",
"pretest": "npm run build",
"lint": "eslint",
"lint:fix": "eslint --fix",
"lint:types": "attw --pack --profile esm-only",
"fmt": "prettier --write .",
"fmt:check": "prettier --check .",
"test": "mocha \"tests/**/*.test.js\"",
"test:coverage": "c8 npm test",
"test:jsr": "npx jsr@latest publish --dry-run",
"test:jsr": "npx -y jsr@latest publish --dry-run",
"test:types": "tsc -p tests/types/tsconfig.json"
},
"keywords": [
Expand All @@ -89,6 +75,7 @@
"natural-compare": "^1.4.0"
},
"devDependencies": {
"@arethetypeswrong/cli": "^0.18.2",
"c8": "^10.1.3",
"dedent": "^1.5.3",
"eslint": "^9.39.2",
Expand All @@ -99,9 +86,6 @@
"mdast-util-from-markdown": "^2.0.2",
"mocha": "^11.3.0",
"prettier": "^3.4.1",
"rollup": "^4.52.3",
"rollup-plugin-copy": "^3.5.0",
"rollup-plugin-delete": "^3.0.1",
"typescript": "^5.9.2",
"yorkie": "^2.0.0"
},
Expand Down
26 changes: 0 additions & 26 deletions rollup.config.js

This file was deleted.

2 changes: 1 addition & 1 deletion src/languages/json-source-code.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import {
/**
* @import { DocumentNode, AnyNode, Token, LocationRange } from "@humanwhocodes/momoa";
* @import { FileProblem, DirectiveType, RulesConfig } from "@eslint/core";
* @import { JSONSyntaxElement } from "../types.ts";
* @import { JSONSyntaxElement } from "../types.js";
* @import { JSONLanguageOptions } from "./json-language.js";
*/

Expand Down
2 changes: 1 addition & 1 deletion src/rules/no-duplicate-keys.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { getKey, getRawKey } from "../util.js";

/**
* @import { MemberNode } from "@humanwhocodes/momoa";
* @import { JSONRuleDefinition } from "../types.ts";
* @import { JSONRuleDefinition } from "../types.js";
* @typedef {"duplicateKey"} NoDuplicateKeysMessageIds
* @typedef {JSONRuleDefinition<{ MessageIds: NoDuplicateKeysMessageIds }>} NoDuplicateKeysRuleDefinition
*/
Expand Down
2 changes: 1 addition & 1 deletion src/rules/no-empty-keys.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { getKey } from "../util.js";
//-----------------------------------------------------------------------------

/**
* @import { JSONRuleDefinition } from "../types.ts";
* @import { JSONRuleDefinition } from "../types.js";
* @typedef {"emptyKey"} NoEmptyKeysMessageIds
* @typedef {JSONRuleDefinition<{ MessageIds: NoEmptyKeysMessageIds }>} NoEmptyKeysRuleDefinition
*/
Expand Down
2 changes: 1 addition & 1 deletion src/rules/no-unnormalized-keys.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { getKey } from "../util.js";
//-----------------------------------------------------------------------------

/**
* @import { JSONRuleDefinition } from "../types.ts";
* @import { JSONRuleDefinition } from "../types.js";
* @typedef {"unnormalizedKey"} NoUnnormalizedKeysMessageIds
* @typedef {{ form: string }} NoUnnormalizedKeysOptions
* @typedef {JSONRuleDefinition<{ RuleOptions: [NoUnnormalizedKeysOptions], MessageIds: NoUnnormalizedKeysMessageIds }>} NoUnnormalizedKeysRuleDefinition
Expand Down
2 changes: 1 addition & 1 deletion src/rules/no-unsafe-values.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//-----------------------------------------------------------------------------

/**
* @import { JSONRuleDefinition } from "../types.ts";
* @import { JSONRuleDefinition } from "../types.js";
* @typedef {"unsafeNumber"|"unsafeInteger"|"unsafeZero"|"subnormal"|"loneSurrogate"} NoUnsafeValuesMessageIds
* @typedef {JSONRuleDefinition<{ MessageIds: NoUnsafeValuesMessageIds }>} NoUnsafeValuesRuleDefinition
*/
Expand Down
2 changes: 1 addition & 1 deletion src/rules/sort-keys.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { getKey, getRawKey } from "../util.js";
//-----------------------------------------------------------------------------

/**
* @import { JSONRuleDefinition } from "../types.ts";
* @import { JSONRuleDefinition } from "../types.js";
* @import { MemberNode } from "@humanwhocodes/momoa";
* @typedef {Object} SortOptions
* @property {boolean} caseSensitive Whether key comparisons are case-sensitive.
Expand Down
2 changes: 1 addition & 1 deletion src/rules/top-level-interop.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//-----------------------------------------------------------------------------

/**
* @import { JSONRuleDefinition } from "../types.ts";
* @import { JSONRuleDefinition } from "../types.js";
* @typedef {"topLevel"} TopLevelInteropMessageIds
* @typedef {JSONRuleDefinition<{ MessageIds: TopLevelInteropMessageIds }>} TopLevelInteropRuleDefinition
*/
Expand Down
21 changes: 0 additions & 21 deletions tools/build-cts.js

This file was deleted.

83 changes: 0 additions & 83 deletions tools/dedupe-types.js

This file was deleted.

4 changes: 0 additions & 4 deletions tsconfig.esm.json

This file was deleted.

6 changes: 2 additions & 4 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
{
"files": ["src/index.js"],
"include": ["src/**/*.js", "src/**/*.ts"],
"compilerOptions": {
"declaration": true,
"emitDeclarationOnly": true,
"allowJs": true,
"checkJs": true,
"outDir": "dist/esm",
"outDir": "dist",
"target": "ESNext",
"moduleResolution": "NodeNext",
"module": "NodeNext",
"allowImportingTsExtensions": true,
"types": []
}
}