diff --git a/.gitattributes b/.gitattributes index ea92ae4a..159b7455 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,7 @@ *.js text eol=lf *.jsx text eol=lf +*.ts text eol=lf +*.tsx text eol=lf *.json text eol=lf *.css text eol=lf *.html text eol=lf diff --git a/eslintrc.ts.base.json b/eslintrc.ts.base.json index ba7fe944..88ce4c96 100644 --- a/eslintrc.ts.base.json +++ b/eslintrc.ts.base.json @@ -8,5 +8,11 @@ "plugin:@typescript-eslint/recommended-requiring-type-checking", "plugin:prettier/recommended", "prettier/@typescript-eslint" - ] + ], + "rules": { + "@typescript-eslint/no-unsafe-return": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-member-access": "off" + } } diff --git a/eslintrc.ts.jest.base.json b/eslintrc.ts.jest.base.json index 09258ad7..39d1899e 100644 --- a/eslintrc.ts.jest.base.json +++ b/eslintrc.ts.jest.base.json @@ -9,5 +9,11 @@ "plugin:jest/style", "plugin:prettier/recommended", "prettier/@typescript-eslint" - ] + ], + "rules": { + "@typescript-eslint/no-unsafe-return": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-member-access": "off" + } } diff --git a/eslintrc.ts.react.base.json b/eslintrc.ts.react.base.json index 4a14249d..3444c0ad 100644 --- a/eslintrc.ts.react.base.json +++ b/eslintrc.ts.react.base.json @@ -20,5 +20,11 @@ "react": { "version": "detect" } + }, + "rules": { + "@typescript-eslint/no-unsafe-return": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-member-access": "off" } } diff --git a/eslintrc.ts.react.jest.base.json b/eslintrc.ts.react.jest.base.json index 9627f74f..f7d46f95 100644 --- a/eslintrc.ts.react.jest.base.json +++ b/eslintrc.ts.react.jest.base.json @@ -11,5 +11,11 @@ "plugin:prettier/recommended", "prettier/@typescript-eslint", "prettier/react" - ] + ], + "rules": { + "@typescript-eslint/no-unsafe-return": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-member-access": "off" + } } diff --git a/packages/react-base16-styling/src/index.ts b/packages/react-base16-styling/src/index.ts index 8542d58d..6f3c36db 100644 --- a/packages/react-base16-styling/src/index.ts +++ b/packages/react-base16-styling/src/index.ts @@ -266,7 +266,7 @@ export const getBase16Theme = ( : undefined; }; -export const invertTheme = (theme: Theme): Theme => { +export const invertTheme = (theme: Theme | undefined): Theme | undefined => { if (typeof theme === 'string') { return `${theme}:inverted`; } diff --git a/packages/react-json-tree/package.json b/packages/react-json-tree/package.json index ce606f4e..000b1979 100644 --- a/packages/react-json-tree/package.json +++ b/packages/react-json-tree/package.json @@ -31,7 +31,7 @@ }, "scripts": { "start": "cd examples && npm start", - "build": "npm run build:types && npm run build:js && npm build:umd && npm build:umd:min", + "build": "npm run build:types && npm run build:js && npm run build:umd && npm run build:umd:min", "build:types": "tsc --emitDeclarationOnly", "build:js": "babel src --out-dir lib --extensions \".ts,.tsx\" --source-maps inline", "build:umd": "rimraf ./umd && webpack --progress --config webpack.config.umd.js", @@ -50,7 +50,6 @@ "react-base16-styling": "^0.7.0" }, "peerDependencies": { - "react": "^16.3.0", - "react-dom": "^16.3.0" + "react": "^16.3.0" } } diff --git a/packages/react-json-tree/src/JSONArrayNode.tsx b/packages/react-json-tree/src/JSONArrayNode.tsx index 71fb7f2a..97440160 100644 --- a/packages/react-json-tree/src/JSONArrayNode.tsx +++ b/packages/react-json-tree/src/JSONArrayNode.tsx @@ -6,7 +6,9 @@ import { CircularPropsPassedThroughJSONNode } from './types'; // Returns the "n Items" string for this node, // generating and caching it if it hasn't been created yet. function createItemString(data: any) { - return `${data.length} ${data.length !== 1 ? 'items' : 'item'}`; + return `${(data as unknown[]).length} ${ + (data as unknown[]).length !== 1 ? 'items' : 'item' + }`; } interface Props extends CircularPropsPassedThroughJSONNode { diff --git a/packages/react-json-tree/src/JSONNode.tsx b/packages/react-json-tree/src/JSONNode.tsx index bedeeee3..a95314c0 100644 --- a/packages/react-json-tree/src/JSONNode.tsx +++ b/packages/react-json-tree/src/JSONNode.tsx @@ -57,7 +57,10 @@ const JSONNode: React.FunctionComponent = ({ return ; case 'String': return ( - `"${raw}"`} /> + `"${raw}"`} + /> ); case 'Number': return ; diff --git a/packages/react-json-tree/src/getCollectionEntries.ts b/packages/react-json-tree/src/getCollectionEntries.ts index 4db49ab0..efca5f7f 100644 --- a/packages/react-json-tree/src/getCollectionEntries.ts +++ b/packages/react-json-tree/src/getCollectionEntries.ts @@ -18,7 +18,7 @@ function getEntries( sortObjectKeys?: ((a: any, b: any) => number) | boolean | undefined, from = 0, to = Infinity -) { +): { entries: { key: string | number; value: any }[]; hasMore?: boolean } { let res; if (type === 'Object') { @@ -37,7 +37,7 @@ function getEntries( res = { entries: collection .slice(from, to + 1) - .map((val, idx) => ({ key: idx + from, value: val })), + .map((val: unknown, idx: number) => ({ key: idx + from, value: val })), }; } else { let idx = 0; diff --git a/packages/react-json-tree/test/index.spec.js b/packages/react-json-tree/test/index.spec.tsx similarity index 100% rename from packages/react-json-tree/test/index.spec.js rename to packages/react-json-tree/test/index.spec.tsx diff --git a/packages/react-json-tree/test/objType.spec.js b/packages/react-json-tree/test/objType.spec.ts similarity index 100% rename from packages/react-json-tree/test/objType.spec.js rename to packages/react-json-tree/test/objType.spec.ts diff --git a/packages/react-json-tree/webpack.config.umd.js b/packages/react-json-tree/webpack.config.umd.js index bac240a9..2bb954d6 100644 --- a/packages/react-json-tree/webpack.config.umd.js +++ b/packages/react-json-tree/webpack.config.umd.js @@ -3,7 +3,7 @@ const path = require('path'); module.exports = (env = {}) => ({ mode: env.production ? 'production' : 'development', entry: { - app: ['./src/index.js'], + app: ['./src/index'], }, output: { library: 'ReactJsonTree', @@ -15,12 +15,15 @@ module.exports = (env = {}) => ({ module: { rules: [ { - test: /\.js$/, + test: /\.(js|ts)x?$/, loader: 'babel-loader', exclude: /node_modules/, }, ], }, + resolve: { + extensions: ['.js', '.jsx', '.ts', '.tsx'], + }, externals: { react: { root: 'React', @@ -28,11 +31,5 @@ module.exports = (env = {}) => ({ commonjs: 'react', amd: 'react', }, - 'react-dom': { - root: 'ReactDOM', - commonjs2: 'react-dom', - commonjs: 'react-dom', - amd: 'react-dom', - }, }, });