diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index f73be5c..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,31 +0,0 @@ -module.exports = { - root: true, - env: { - node: true, - es2020: true, - }, - extends: [ - 'eslint:recommended', - '@typescript-eslint/recommended', - 'prettier', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 2020, - sourceType: 'module', - project: './tsconfig.json', - }, - plugins: ['@typescript-eslint', 'prettier'], - rules: { - 'prettier/prettier': 'error', - '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }], - '@typescript-eslint/no-explicit-any': 'warn', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-non-null-assertion': 'warn', - 'no-console': 'warn', - 'prefer-const': 'error', - 'no-var': 'error', - }, - ignorePatterns: ['dist/', 'node_modules/', 'coverage/'], -}; diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..45c9867 --- /dev/null +++ b/biome.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.2.4/schema.json", + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "files": { + "ignoreUnknown": false, + "includes": ["src/**/*.ts", "test/**/*.ts"] + }, + "formatter": { + "enabled": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 100, + "lineEnding": "lf" + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "off", + "noUnusedFunctionParameters": "off" + }, + "style": { + "useConst": "error" + }, + "suspicious": { + "noConsole": "warn", + "noVar": "error" + } + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double", + "semicolons": "always", + "trailingCommas": "es5" + } + } +} diff --git a/package.json b/package.json index cbe8ed4..900822a 100644 --- a/package.json +++ b/package.json @@ -35,8 +35,8 @@ "test:coverage": "bun test --coverage", "test:watch": "bun test --watch", "test:ci": "bun test --reporter=verbose", - "lint": "eslint src/**/*.ts test/**/*.ts --ext .ts", - "lint:fix": "eslint src/**/*.ts test/**/*.ts --ext .ts --fix", + "lint": "biome lint src/ test/", + "lint:fix": "biome lint --write src/ test/", "type-check": "tsc --noEmit", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"*.{json,md,yml,yaml}\"", "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\" \"*.{json,md,yml,yaml}\"", @@ -62,18 +62,14 @@ "prettier": "^3.0.0" }, "devDependencies": { + "@biomejs/biome": "^2.2.4", "@types/bun": "latest", "@types/node": "^20.0.0", - "@typescript-eslint/eslint-plugin": "^6.0.0", - "@typescript-eslint/parser": "^6.0.0", - "eslint": "^8.0.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-prettier": "^5.0.0", "prettier": "^3.0.0", "typescript": "^5.0.0" }, "dependencies": { - "js-yaml": "^4.1.0", - "@types/js-yaml": "^4.0.0" + "@types/js-yaml": "^4.0.0", + "js-yaml": "^4.1.0" } } diff --git a/src/extensions/index.ts b/src/extensions/index.ts index 4960f18..f4a2541 100644 --- a/src/extensions/index.ts +++ b/src/extensions/index.ts @@ -18,13 +18,13 @@ import { TagKeys, ExternalDocsKeys, WebhookKeys, - OAuthFlowKeys, - ContactKeys, - LicenseKeys, - ComponentsKeys, - ServerVariableKeys, + type OAuthFlowKeys, + type ContactKeys, + type LicenseKeys, + type ComponentsKeys, + type ServerVariableKeys, } from '../keys.js'; -import { getVendorExtensions as loadVendorExtensions, VendorModule } from './vendor-loader.js'; +import { getVendorExtensions as loadVendorExtensions, type VendorModule } from './vendor-loader.js'; export interface VendorExtensions { [context: string]: ( @@ -55,38 +55,38 @@ export function defineConfig(config: VendorModule): VendorModule { } // Type definitions with hover documentation -export type TopLevelKeys = typeof RootKeys[number]; -export type InfoKeys = typeof InfoKeys[number]; -export type OperationKeys = typeof OperationKeys[number]; -export type ParameterKeys = typeof ParameterKeys[number]; -export type SchemaKeys = typeof SchemaKeys[number]; -export type ResponseKeys = typeof ResponseKeys[number]; -export type SecuritySchemeKeys = typeof SecuritySchemeKeys[number]; -export type ServerKeys = typeof ServerKeys[number]; -export type TagKeys = typeof TagKeys[number]; -export type ExternalDocsKeys = typeof ExternalDocsKeys[number]; -export type WebhookKeys = typeof WebhookKeys[number]; -export type OAuthFlowKeys = typeof OAuthFlowKeys[number]; -export type ContactKeys = typeof ContactKeys[number]; -export type LicenseKeys = typeof LicenseKeys[number]; -export type ComponentsKeys = typeof ComponentsKeys[number]; -export type ServerVariableKeys = typeof ServerVariableKeys[number]; +export type TopLevelKeysType = typeof RootKeys[number]; +export type InfoKeysType = typeof InfoKeys[number]; +export type OperationKeysType = typeof OperationKeys[number]; +export type ParameterKeysType = typeof ParameterKeys[number]; +export type SchemaKeysType = typeof SchemaKeys[number]; +export type ResponseKeysType = typeof ResponseKeys[number]; +export type SecuritySchemeKeysType = typeof SecuritySchemeKeys[number]; +export type ServerKeysType = typeof ServerKeys[number]; +export type TagKeysType = typeof TagKeys[number]; +export type ExternalDocsKeysType = typeof ExternalDocsKeys[number]; +export type WebhookKeysType = typeof WebhookKeys[number]; +export type OAuthFlowKeysType = typeof OAuthFlowKeys[number]; +export type ContactKeysType = typeof ContactKeys[number]; +export type LicenseKeysType = typeof LicenseKeys[number]; +export type ComponentsKeysType = typeof ComponentsKeys[number]; +export type ServerVariableKeysType = typeof ServerVariableKeys[number]; // Context-specific key types for better IntelliSense export interface ContextKeys { - 'top-level': TopLevelKeys; - 'info': InfoKeys; - 'operation': OperationKeys; - 'parameter': ParameterKeys; - 'schema': SchemaKeys; - 'response': ResponseKeys; - 'securityScheme': SecuritySchemeKeys; - 'server': ServerKeys; - 'tag': TagKeys; - 'externalDocs': ExternalDocsKeys; - 'webhook': WebhookKeys; - 'definitions': SchemaKeys; // Definitions use schema keys - 'securityDefinitions': SecuritySchemeKeys; // Security definitions use security scheme keys + 'top-level': TopLevelKeysType; + 'info': InfoKeysType; + 'operation': OperationKeysType; + 'parameter': ParameterKeysType; + 'schema': SchemaKeysType; + 'response': ResponseKeysType; + 'securityScheme': SecuritySchemeKeysType; + 'server': ServerKeysType; + 'tag': TagKeysType; + 'externalDocs': ExternalDocsKeysType; + 'webhook': WebhookKeysType; + 'definitions': SchemaKeysType; // Definitions use schema keys + 'securityDefinitions': SecuritySchemeKeysType; // Security definitions use security scheme keys } // Helper function to get available keys for a context diff --git a/src/extensions/vendor-loader.ts b/src/extensions/vendor-loader.ts index d264e00..22cc0b2 100644 --- a/src/extensions/vendor-loader.ts +++ b/src/extensions/vendor-loader.ts @@ -4,7 +4,7 @@ * Loads vendor extensions using static imports for ES module compatibility. */ -import { before, after, ContextKeys } from './index.js'; +import { before, after, type ContextKeys } from './index.js'; // Import vendor extensions statically import { speakeasy } from './vendor/speakeasy.js'; @@ -68,7 +68,7 @@ export function getVendorExtensions(customVendorModules?: VendorModule[]): Recor // Check for collisions before adding extensions for (const [extensionKey, position] of Object.entries(contextExtensions)) { - if (extensions[context].hasOwnProperty(extensionKey)) { + if (Object.hasOwn(extensions[context], extensionKey)) { const existingVendor = extensionSources[context][extensionKey]; const currentVendor = vendorModule.info.name; diff --git a/src/index.ts b/src/index.ts index 8bdd4ac..1700d16 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import { Plugin } from 'prettier'; +import type { Plugin } from 'prettier'; import * as yaml from 'js-yaml'; import { getVendorExtensions } from './extensions/vendor-loader.js'; diff --git a/test/coverage.test.ts b/test/coverage.test.ts index e335200..74011d4 100644 --- a/test/coverage.test.ts +++ b/test/coverage.test.ts @@ -9,13 +9,13 @@ describe('Coverage Tests', () => { // Test with null content expect(() => { - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases jsonParser?.parse('null', {}); }).toThrow(); // Test with undefined content expect(() => { - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases jsonParser?.parse('undefined', {}); }).toThrow(); }); @@ -26,13 +26,13 @@ describe('Coverage Tests', () => { // Test with string content expect(() => { - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases jsonParser?.parse('"string"', {}); }).toThrow(); // Test with number content expect(() => { - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases jsonParser?.parse('123', {}); }).toThrow(); }); @@ -43,7 +43,7 @@ describe('Coverage Tests', () => { // Test with array content expect(() => { - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases jsonParser?.parse('[]', {}); }).toThrow(); }); @@ -54,7 +54,7 @@ describe('Coverage Tests', () => { // Test with malformed JSON expect(() => { - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases jsonParser?.parse('{invalid json}', {}); }).toThrow('Failed to parse OpenAPI JSON'); }); @@ -65,7 +65,7 @@ describe('Coverage Tests', () => { // Test with malformed YAML expect(() => { - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases yamlParser?.parse('invalid: yaml: content:', {}); }).toThrow('Failed to parse OpenAPI YAML'); }); @@ -97,7 +97,7 @@ properties: ]; paths.forEach(path => { - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(testYaml, { filepath: path }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -113,7 +113,7 @@ info: title: Test API version: 1.0.0`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(testYaml, {}); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -131,7 +131,7 @@ info: '200': description: Success`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(operationYaml, { filepath: 'paths/users.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -147,7 +147,7 @@ required: true schema: type: integer`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(parameterYaml, { filepath: 'components/parameters/UserId.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -166,7 +166,7 @@ properties: required: - id`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(schemaYaml, { filepath: 'components/schemas/User.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -182,7 +182,7 @@ content: schema: type: object`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(responseYaml, { filepath: 'components/responses/UserResponse.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -196,7 +196,7 @@ content: scheme: bearer bearerFormat: JWT`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(securityYaml, { filepath: 'components/securitySchemes/BearerAuth.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -209,7 +209,7 @@ bearerFormat: JWT`; const serverYaml = `url: https://api.example.com description: Production server`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(serverYaml, { filepath: 'servers/production.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -222,7 +222,7 @@ description: Production server`; const tagYaml = `name: users description: User management operations`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(tagYaml, { filepath: 'tags/users.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -235,7 +235,7 @@ description: User management operations`; const externalDocsYaml = `url: https://example.com/docs description: External documentation`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(externalDocsYaml, { filepath: 'externalDocs/api.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -251,7 +251,7 @@ description: External documentation`; '200': description: Success`; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = yamlParser?.parse(webhookYaml, { filepath: 'webhooks/messageCreated.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -275,7 +275,7 @@ description: External documentation`; } }; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -311,7 +311,7 @@ description: External documentation`; } }; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -349,7 +349,7 @@ description: External documentation`; } }; - // @ts-ignore We are testing edge cases + // @ts-expect-error We are testing edge cases const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); diff --git a/test/custom-extensions.test.ts b/test/custom-extensions.test.ts index d1bd7ad..b5e7fb7 100644 --- a/test/custom-extensions.test.ts +++ b/test/custom-extensions.test.ts @@ -14,7 +14,7 @@ describe('Custom Extensions Support', () => { 'x-metadata': { 'custom': 'data' } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonParser?.parse(JSON.stringify(testJson), {}); expect(result).toBeDefined(); expect(result?.content).toBeDefined(); @@ -35,7 +35,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonParser?.parse(JSON.stringify(testJson), {}); expect(result).toBeDefined(); expect(result?.content.info).toBeDefined(); @@ -61,7 +61,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonParser?.parse(JSON.stringify(testJson), {}); expect(result).toBeDefined(); expect(result?.content.paths['/test'].get['x-rate-limit']).toBe(100); @@ -88,7 +88,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonParser?.parse(JSON.stringify(testJson), {}); expect(result).toBeDefined(); expect(result?.content.components.schemas.User['x-custom-type']).toBe('entity'); @@ -108,7 +108,7 @@ describe('Custom Extensions Support', () => { } }; -// @ts-ignore We are mocking things here so we don't need to pass a print function +// @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); expect(result).toContain('"x-custom-field"'); @@ -129,7 +129,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here so we don't need to pass a print function + // @ts-expect-error We are mocking things here so we don't need to pass a print function const result = yamlPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); expect(result).toContain('x-custom-field:'); @@ -148,7 +148,7 @@ describe('Custom Extensions Support', () => { 'another-unknown': 'value' }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonParser?.parse(JSON.stringify(testJson), {}); expect(result).toBeDefined(); expect(result?.content).toBeDefined(); @@ -169,7 +169,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -207,7 +207,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -249,7 +249,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -295,7 +295,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -330,7 +330,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -370,7 +370,7 @@ describe('Custom Extensions Support', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); diff --git a/test/file-detection.test.ts b/test/file-detection.test.ts index d6368fb..09613ab 100644 --- a/test/file-detection.test.ts +++ b/test/file-detection.test.ts @@ -17,7 +17,7 @@ paths: '200': description: Success`; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlParser?.parse(testYaml, { filepath: 'openapi.yaml' }); expect(result).toBeDefined(); @@ -39,7 +39,7 @@ required: - id - name`; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlParser?.parse(schemaYaml, { filepath: 'components/schemas/User.yaml' }); expect(result).toBeDefined(); @@ -58,7 +58,7 @@ description: User ID schema: type: integer`; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlParser?.parse(parameterYaml, { filepath: 'components/parameters/UserId.yaml' }); expect(result).toBeDefined(); @@ -81,7 +81,7 @@ content: name: type: string`; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlParser?.parse(responseYaml, { filepath: 'components/responses/UserResponse.yaml' }); expect(result).toBeDefined(); @@ -106,7 +106,7 @@ post: schema: type: object`; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlParser?.parse(pathYaml, { filepath: 'paths/users.yaml' }); expect(result).toBeDefined(); @@ -124,7 +124,7 @@ scheme: bearer bearerFormat: JWT description: JWT authentication`; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlParser?.parse(securityYaml, { filepath: 'components/securitySchemes/BearerAuth.yaml' }); expect(result).toBeDefined(); @@ -140,7 +140,7 @@ description: JWT authentication`; age: 30 city: New York`; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here expect(() => yamlParser?.parse(nonOpenAPIYaml, { filepath: 'config/data.yaml' })).toThrow('Not an OpenAPI file'); }); @@ -152,7 +152,7 @@ city: New York`; age: 30 city: New York`; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlParser?.parse(simpleYaml, { filepath: 'components/schemas/User.yaml' }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); @@ -183,7 +183,7 @@ properties: ]; paths.forEach(path => { - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlParser?.parse(componentYaml, { filepath: path }); expect(result).toBeDefined(); expect(result?.type).toBe('openapi-yaml'); diff --git a/test/integration.test.ts b/test/integration.test.ts index b3e49cf..c5f0195 100644 --- a/test/integration.test.ts +++ b/test/integration.test.ts @@ -220,7 +220,7 @@ describe('Integration Tests', () => { content: openApiContent }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -369,7 +369,7 @@ describe('Integration Tests', () => { content: swaggerContent }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -420,7 +420,7 @@ describe('Integration Tests', () => { content: yamlContent }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -447,7 +447,7 @@ describe('Integration Tests', () => { const malformedJson = '{"openapi": "3.0.0", "info": {'; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here expect(() => jsonParser?.parse(malformedJson, {})).toThrow(); }); @@ -457,7 +457,7 @@ describe('Integration Tests', () => { const malformedYaml = 'openapi: 3.0.0\ninfo:\n title: Test\n version: 1.0.0\n invalid: ['; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here expect(() => yamlParser?.parse(malformedYaml, {})).toThrow(); }); @@ -467,7 +467,7 @@ describe('Integration Tests', () => { const nonOpenAPI = '{"name": "John", "age": 30}'; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here expect(() => jsonParser?.parse(nonOpenAPI, {})).toThrow('Not an OpenAPI file'); }); }); @@ -506,7 +506,7 @@ describe('Integration Tests', () => { const startTime = Date.now(); - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); const endTime = Date.now(); diff --git a/test/key-ordering.test.ts b/test/key-ordering.test.ts index 6863134..a888f0b 100644 --- a/test/key-ordering.test.ts +++ b/test/key-ordering.test.ts @@ -20,7 +20,7 @@ describe('Key Ordering Tests', () => { } } }; -// @ts-ignore We are mocking things here so we don't need to pass a print function +// @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -73,7 +73,7 @@ describe('Key Ordering Tests', () => { } }; - // @ts-ignore We are mocking things here so we don't need to pass a print function + // @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -158,7 +158,7 @@ describe('Key Ordering Tests', () => { } }; - // @ts-ignore We are mocking things here so we don't need to pass a print function + // @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -265,7 +265,7 @@ describe('Key Ordering Tests', () => { } } }; - // @ts-ignore We are mocking things here so we don't need to pass a print function + // @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -319,7 +319,7 @@ describe('Key Ordering Tests', () => { } } }; - // @ts-ignore We are mocking things here so we don't need to pass a print function + // @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -392,7 +392,7 @@ describe('Key Ordering Tests', () => { } } }; - // @ts-ignore We are mocking things here so we don't need to pass a print function + // @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -438,7 +438,7 @@ describe('Key Ordering Tests', () => { ] } }; -// @ts-ignore We are mocking things here so we don't need to pass a print function +// @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -482,7 +482,7 @@ describe('Key Ordering Tests', () => { ] } }; -// @ts-ignore We are mocking things here so we don't need to pass a print function +// @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -521,7 +521,7 @@ describe('Key Ordering Tests', () => { } } }; -// @ts-ignore We are mocking things here so we don't need to pass a print function +// @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -554,7 +554,7 @@ describe('Key Ordering Tests', () => { } } }; -// @ts-ignore We are mocking things here so we don't need to pass a print function +// @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); @@ -598,7 +598,7 @@ describe('Key Ordering Tests', () => { } } }; -// @ts-ignore We are mocking things here so we don't need to pass a print function +// @ts-expect-error We are mocking things here so we don't need to pass a print function const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }); expect(result).toBeDefined(); diff --git a/test/plugin.test.ts b/test/plugin.test.ts index 60bcb0c..d82fcb7 100644 --- a/test/plugin.test.ts +++ b/test/plugin.test.ts @@ -29,14 +29,14 @@ describe('Prettier OpenAPI Plugin', () => { }`; // Parse the JSON - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const parsed = jsonParser?.parse(inputJson, {}); expect(parsed).toBeDefined(); expect(parsed?.type).toBe('openapi-json'); expect(parsed?.content).toBeDefined(); // Format the parsed content - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => parsed }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -76,14 +76,14 @@ info: openapi: 3.0.0`; // Parse the YAML - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const parsed = yamlParser?.parse(inputYaml, {}); expect(parsed).toBeDefined(); expect(parsed?.type).toBe('openapi-yaml'); expect(parsed?.content).toBeDefined(); // Format the parsed content - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = yamlPrinter?.print({ getValue: () => parsed }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -143,14 +143,14 @@ openapi: 3.0.0`; }`; // Parse the JSON - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const parsed = jsonParser?.parse(inputJson, {}); expect(parsed).toBeDefined(); expect(parsed?.type).toBe('openapi-json'); expect(parsed?.content).toBeDefined(); // Format the parsed content - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => parsed }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -195,14 +195,14 @@ describe('Key Ordering Tests', () => { }`; // Parse the JSON - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const parsed = jsonParser?.parse(inputJson, {}); expect(parsed).toBeDefined(); expect(parsed?.type).toBe('openapi-json'); expect(parsed?.content).toBeDefined(); // Format the parsed content - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => parsed }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -254,14 +254,14 @@ describe('Key Ordering Tests', () => { }`; // Parse the JSON - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const parsed = jsonParser?.parse(inputJson, {}); expect(parsed).toBeDefined(); expect(parsed?.type).toBe('openapi-json'); expect(parsed?.content).toBeDefined(); // Format the parsed content - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => parsed }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); diff --git a/test/simple-ordering.test.ts b/test/simple-ordering.test.ts index 6482d9d..9ab1332 100644 --- a/test/simple-ordering.test.ts +++ b/test/simple-ordering.test.ts @@ -18,7 +18,7 @@ describe('Simple Key Ordering Tests', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -71,7 +71,7 @@ describe('Simple Key Ordering Tests', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -122,7 +122,7 @@ describe('Simple Key Ordering Tests', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); @@ -159,7 +159,7 @@ describe('Simple Key Ordering Tests', () => { } }; - // @ts-ignore We are mocking things here + // @ts-expect-error We are mocking things here const result = jsonPrinter?.print({ getValue: () => testData }, { tabWidth: 2 }, () => ''); expect(result).toBeDefined(); diff --git a/tsconfig.json b/tsconfig.json index 7ad6200..34fa509 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,9 @@ { "compilerOptions": { - "target": "ES2020", + "target": "ESNext", "module": "ESNext", "moduleResolution": "node", - "lib": ["ES2020"], + "lib": ["ESNext"], "outDir": "./dist", "rootDir": "./src", "strict": true,