From fd46195b9ebfd6c04a9a7e3db239d0ed287bf886 Mon Sep 17 00:00:00 2001 From: Annabelle Thomas Taylor Date: Fri, 12 Mar 2021 15:31:29 -0500 Subject: [PATCH] Compile package into JavaScript and remove extraneous files --- .babelrc | 3 -- package.json | 53 +++++++++++++------------ src/assets/{ => data}/WasteWaterData.ts | 0 src/images.d.ts | 15 +++++++ src/react-app-env.d.ts | 1 - src/reportWebVitals.ts | 15 ------- src/setupTests.ts | 5 --- src/stories/Map.stories.tsx | 2 +- tsconfig.json | 30 +++++--------- 9 files changed, 55 insertions(+), 69 deletions(-) delete mode 100644 .babelrc rename src/assets/{ => data}/WasteWaterData.ts (100%) create mode 100644 src/images.d.ts delete mode 100644 src/react-app-env.d.ts delete mode 100644 src/reportWebVitals.ts delete mode 100644 src/setupTests.ts diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 9951bea..0000000 --- a/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["react-app"] -} \ No newline at end of file diff --git a/package.json b/package.json index 048824e..55a4ecd 100644 --- a/package.json +++ b/package.json @@ -3,15 +3,15 @@ "author": "MAPC Digital Services", "version": "0.2.2", "private": false, - "main": "src/index.tsx", + "main": "dist/index.js", + "types": "dist/index.d.ts", "files": [ - "/src/index.tsx", - "/src/components", - "/src/assets" + "/dist" ], "license": "CDDL-1.0", "babel": { "presets": [ + "react-app", "@babel/preset-react" ], "plugins": [ @@ -21,28 +21,11 @@ "loose": true } ] + ], + "ignore": [ + "./src/stories", "./src/assets" ] }, - "dependencies": { - "@emotion/react": "^11.1.4", - "@fortawesome/fontawesome-svg-core": "^1.2.34", - "@fortawesome/free-brands-svg-icons": "^5.15.2", - "@fortawesome/free-solid-svg-icons": "^5.15.2", - "@fortawesome/react-fontawesome": "^0.1.14", - "@testing-library/jest-dom": "^5.11.4", - "@testing-library/react": "^11.1.0", - "@testing-library/user-event": "^12.1.10", - "@types/jest": "^26.0.15", - "@types/node": "^12.0.0", - "@types/react": "^16.9.53", - "@types/react-dom": "^16.9.8", - "mapbox-gl": "^2.1.1", - "react": "^17.0.1", - "react-dom": "^17.0.1", - "react-scripts": "4.0.1", - "typescript": "^4.0.3", - "web-vitals": "^0.2.4" - }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", @@ -50,7 +33,7 @@ "eject": "react-scripts eject", "storybook": "start-storybook -p 6006 -s public", "build-storybook": "build-storybook -o docs -s ./src/assets", - "compile": "rm -rf dist && mkdir dist && yarn autoclean && babel src/components src/assets --out-dir dist --copy-files --ignore __tests__,spec.js,test.js,stories.js,__snapshots__" + "compile": "tsc && rm -rf dist && mkdir dist && NODE_ENV=production babel src --out-dir dist --extensions .ts,.tsx && mkdir -p ./dist/assets/images && cp -a ./src/assets/images ./dist/assets/" }, "eslintConfig": { "extends": [ @@ -70,6 +53,26 @@ "last 1 safari version" ] }, + "dependencies": { + "@emotion/react": "^11.1.4", + "@fortawesome/fontawesome-svg-core": "^1.2.34", + "@fortawesome/free-brands-svg-icons": "^5.15.2", + "@fortawesome/free-solid-svg-icons": "^5.15.2", + "@fortawesome/react-fontawesome": "^0.1.14", + "@testing-library/jest-dom": "^5.11.4", + "@testing-library/react": "^11.1.0", + "@testing-library/user-event": "^12.1.10", + "@types/jest": "^26.0.15", + "@types/node": "^12.0.0", + "@types/react": "^16.9.53", + "@types/react-dom": "^16.9.8", + "mapbox-gl": "^2.1.1", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "typescript": "^4.0.3", + "web-vitals": "^0.2.4" + }, "devDependencies": { "@babel/cli": "^7.12.10", "@babel/preset-react": "^7.12.10", diff --git a/src/assets/WasteWaterData.ts b/src/assets/data/WasteWaterData.ts similarity index 100% rename from src/assets/WasteWaterData.ts rename to src/assets/data/WasteWaterData.ts diff --git a/src/images.d.ts b/src/images.d.ts new file mode 100644 index 0000000..5028614 --- /dev/null +++ b/src/images.d.ts @@ -0,0 +1,15 @@ +declare module "*.png" { + const value: string; + export default value; +} + +declare module "*.svg" { + const value: string; + export default value; +} + +declare module "*.jpg" { + const value: string; + export default value; +} + diff --git a/src/react-app-env.d.ts b/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5..0000000 --- a/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/src/reportWebVitals.ts b/src/reportWebVitals.ts deleted file mode 100644 index 49a2a16..0000000 --- a/src/reportWebVitals.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ReportHandler } from 'web-vitals'; - -const reportWebVitals = (onPerfEntry?: ReportHandler) => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/src/setupTests.ts b/src/setupTests.ts deleted file mode 100644 index 8f2609b..0000000 --- a/src/setupTests.ts +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; diff --git a/src/stories/Map.stories.tsx b/src/stories/Map.stories.tsx index 479ff6c..fe9abb4 100644 --- a/src/stories/Map.stories.tsx +++ b/src/stories/Map.stories.tsx @@ -8,7 +8,7 @@ import { Layer } from '../components/maps/Layer'; import { Source } from '../components/maps/Source'; import { Tooltip } from '../components/maps/Tooltip'; import { MapLegend } from '../components/maps/MapLegend'; -import { data } from '../assets/WasteWaterData'; +import { data } from '../assets/data/WasteWaterData'; export default { title: 'Maps/Basemap', diff --git a/tsconfig.json b/tsconfig.json index a273b0c..b6e701f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,26 +1,18 @@ { "compilerOptions": { - "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": true, "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "module": "esnext", + "declaration": true, + "esModuleInterop": true, + "jsx": "react", + "lib": ["dom", "es2015"], "moduleResolution": "node", + "outDir": "./dist", "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx" + "sourceMap": true, + "strict": true, + "target": "es2019", + "types": ["@emotion/core"] }, - "include": [ - "src" - ] + "include": ["src"], + "exclude": ["src/stories", "src/assets"] }