From 7010fde8a77fd0a4fad4fc8b9af45b59256a03b4 Mon Sep 17 00:00:00 2001 From: Mcat12 Date: Sun, 20 Jan 2019 16:36:18 -0800 Subject: [PATCH] Add TypeScript index.js has been converted to index.tsx. The build works without errors. Signed-off-by: Mcat12 --- package-lock.json | 64 +++++++++++++++++++++++++++++++++++-- package.json | 8 ++++- src/{index.js => index.tsx} | 4 +-- src/react-app-env.d.ts | 1 + tsconfig.json | 26 +++++++++++++++ 5 files changed, 98 insertions(+), 5 deletions(-) rename src/{index.js => index.tsx} (94%) create mode 100644 src/react-app-env.d.ts create mode 100644 tsconfig.json diff --git a/package-lock.json b/package-lock.json index f4e813f..49fdf89 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1378,11 +1378,25 @@ "loader-utils": "^1.1.0" } }, + "@types/history": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.2.tgz", + "integrity": "sha512-ui3WwXmjTaY73fOQ3/m3nnajU/Orhi6cEu5rzX+BrAAJxa3eITXZ5ch9suPqtM03OWhAHhPSyBGCN4UKoxO20Q==" + }, + "@types/jest": { + "version": "23.3.13", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-23.3.13.tgz", + "integrity": "sha512-ePl4l+7dLLmCucIwgQHAgjiepY++qcI6nb8eAwGNkB6OxmTe3Z9rQU3rSpomqu42PCCnlThZbOoxsf+qylJsLA==" + }, "@types/node": { "version": "10.12.18", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==", - "dev": true + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" + }, + "@types/prop-types": { + "version": "15.5.8", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.8.tgz", + "integrity": "sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw==" }, "@types/q": { "version": "1.5.1", @@ -1390,6 +1404,42 @@ "integrity": "sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==", "dev": true }, + "@types/react": { + "version": "16.7.20", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.7.20.tgz", + "integrity": "sha512-Qd5RWkwl6SL7R2XzLk/cicjVQm1Mhc6HqXY5Ei4pWd1Vi8Fkbd5O0sA398x8fRSTPAuHdDYD9nrWmJMYTJI0vQ==", + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/react-dom": { + "version": "16.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.0.11.tgz", + "integrity": "sha512-x6zUx9/42B5Kl2Vl9HlopV8JF64wLpX3c+Pst9kc1HgzrsH+mkehe/zmHMQTplIrR48H2gpU7ZqurQolYu8XBA==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-router": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-4.4.3.tgz", + "integrity": "sha512-8GmjakEBFNCLJbpg9jtDp1EDvFP0VkIPPKBpVwmB3Q+9whFoHu8rluMUXUE5SoGkEQvVOtgJzWmUsJojNpFMQQ==", + "requires": { + "@types/history": "*", + "@types/react": "*" + } + }, + "@types/react-router-dom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-4.3.1.tgz", + "integrity": "sha512-GbztJAScOmQ/7RsQfO4cd55RuH1W4g6V1gDW3j4riLlt+8yxYLqqsiMzmyuXBLzdFmDtX/uU2Bpcm0cmudv44A==", + "requires": { + "@types/history": "*", + "@types/react": "*", + "@types/react-router": "*" + } + }, "@types/tapable": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.2.tgz", @@ -4776,6 +4826,11 @@ "cssom": "0.3.x" } }, + "csstype": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.1.tgz", + "integrity": "sha512-wv7IRqCGsL7WGKB8gPvrl+++HlFM9kxAM6jL1EXNPNTshEJYilMkbfS2SnuHha77uosp/YVK0wAp2jmlBzn1tg==" + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -21985,6 +22040,11 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typescript": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", + "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==" + }, "uglify-js": { "version": "3.4.9", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", diff --git a/package.json b/package.json index 3f7b857..3f90272 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,11 @@ "@coreui/icons": "0.3.0", "@coreui/react": "^2.1.3", "@fortawesome/fontawesome-free": "^5.6.3", + "@types/jest": "^23.3.13", + "@types/node": "^10.12.18", + "@types/react": "^16.7.20", + "@types/react-dom": "^16.0.11", + "@types/react-router-dom": "^4.3.1", "bootstrap": "^4.2.1", "bootstrap-daterangepicker": "^3.0.3", "chart.js": "^2.7.3", @@ -45,7 +50,8 @@ "react-transition-group": "^2.5.3", "reactstrap": "^7.1.0", "sha.js": "^2.4.11", - "simple-line-icons": "^2.4.1" + "simple-line-icons": "^2.4.1", + "typescript": "^3.2.4" }, "scripts": { "start": "npm run build-css && npm-run-all -p watch-css start-js", diff --git a/src/index.js b/src/index.tsx similarity index 94% rename from src/index.js rename to src/index.tsx index b5f6592..1c0f292 100644 --- a/src/index.js +++ b/src/index.tsx @@ -8,8 +8,8 @@ * This file is copyright under the latest version of the EUPL. * Please see LICENSE file for your rights under this license. */ -import React from "react"; -import ReactDOM from "react-dom"; +import * as React from "react"; +import * as ReactDOM from "react-dom"; import { BrowserRouter, Route, Switch } from "react-router-dom"; import "ionicons/dist/css/ionicons.min.css"; import "@fortawesome/fontawesome-free/css/all.min.css"; diff --git a/src/react-app-env.d.ts b/src/react-app-env.d.ts new file mode 100644 index 0000000..6431bc5 --- /dev/null +++ b/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..0179151 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext", + "es6" + ], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve" + }, + "include": [ + "src" + ] +}