From 3c377f1c4f7ea0115d07e695d35f80dee163c415 Mon Sep 17 00:00:00 2001 From: Titus Wormer Date: Tue, 7 Feb 2023 14:36:05 +0100 Subject: [PATCH] Update `tsconfig.json` --- index.js | 26 ++++++++++++++------------ package.json | 7 +++---- tsconfig.json | 18 ++++++++++-------- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/index.js b/index.js index 950532d..318c44f 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,10 @@ /** - * @typedef {import('unist').Point} Point * @typedef {import('vfile').VFile} VFile * - * @typedef {Pick} PositionalPoint - * @typedef {Required} FullPoint - * @typedef {NonNullable} Offset + * @typedef Point + * @property {number | undefined} line + * @property {number | undefined} column + * @property {number | undefined} [offset] */ /** @@ -31,8 +31,8 @@ export function location(file) { * Returns a point with `undefined` values when given invalid or out of bounds * input. * - * @param {Offset} offset - * @returns {FullPoint} + * @param {number} offset + * @returns {Point} */ function toPoint(offset) { let index = -1 @@ -56,14 +56,12 @@ export function location(file) { * Get the `offset` for a line and column-based `point` in the bound indices. * Returns `-1` when given invalid or out of bounds input. * - * @param {PositionalPoint} point - * @returns {Offset} + * @param {Point} point + * @returns {number} */ function toOffset(point) { const line = point && point.line const column = point && point.column - /** @type {number} */ - let offset if ( typeof line === 'number' && @@ -72,9 +70,13 @@ export function location(file) { !Number.isNaN(column) && line - 1 in indices ) { - offset = (indices[line - 2] || 0) + column - 1 || 0 + const offset = (indices[line - 2] || 0) + column - 1 || 0 + + if (offset > -1 && offset < indices[indices.length - 1]) { + return offset + } } - return offset > -1 && offset < indices[indices.length - 1] ? offset : -1 + return -1 } } diff --git a/package.json b/package.json index e39f90f..eb2256a 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,6 @@ "prettier": "^2.0.0", "remark-cli": "^11.0.0", "remark-preset-wooorm": "^9.0.0", - "rimraf": "^3.0.0", "tape": "^5.0.0", "type-coverage": "^2.0.0", "typescript": "^4.0.0", @@ -52,10 +51,10 @@ }, "scripts": { "prepack": "npm run build && npm run format", - "build": "rimraf \"*.d.ts\" && tsc && type-coverage", + "build": "tsc --build --clean && tsc --build && type-coverage", "format": "remark . -qfo && prettier . -w --loglevel warn && xo --fix", - "test-api": "node test.js", - "test-coverage": "c8 --check-coverage --branches 100 --functions 100 --lines 100 --statements 100 --reporter lcov node test.js", + "test-api": "node --conditions development test.js", + "test-coverage": "c8 --check-coverage --100 --reporter lcov npm run test-api", "test": "npm run build && npm run format && npm run test-coverage" }, "prettier": { diff --git a/tsconfig.json b/tsconfig.json index be08abe..ebe8889 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,17 @@ { - "include": ["*.js"], + "include": ["**/*.js"], + "exclude": ["coverage/", "node_modules/"], "compilerOptions": { - "target": "ES2020", - "lib": ["ES2020"], - "module": "ES2020", - "moduleResolution": "node", - "allowJs": true, "checkJs": true, "declaration": true, "emitDeclarationOnly": true, - "allowSyntheticDefaultImports": true, - "skipLibCheck": true + "exactOptionalPropertyTypes": true, + "forceConsistentCasingInFileNames": true, + "lib": ["es2020"], + "module": "node16", + "newLine": "lf", + "skipLibCheck": true, + "strict": true, + "target": "es2020" } }