From 0d33008f932f219ad55892932de6ba0e586dffed Mon Sep 17 00:00:00 2001 From: Can Sahin Date: Wed, 15 Apr 2020 16:33:44 +0300 Subject: [PATCH 1/7] added github workflow --- .github/workflows/ci.yaml | 23 +++++++++++++++++++++++ internals/scripts/generate-cra.ts | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 00000000..0cd51b9f --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,23 @@ +name: build + +on: + - push + - pull_request + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: 10.x + - run: npm ci + - run: npm run generate-cra:test + env: + CI: true + - run: npm run test --if-present + env: + CI: true diff --git a/internals/scripts/generate-cra.ts b/internals/scripts/generate-cra.ts index 24969792..03142ef7 100644 --- a/internals/scripts/generate-cra.ts +++ b/internals/scripts/generate-cra.ts @@ -23,7 +23,7 @@ export function generateCRA(opts: Options = {}) { shell.rm('-rf', `${craAppName}`); - generateTemplateFolder(); + generateTemplateFolder(opts); shell.echo('Generating CRA...'); From 9b2d768da1178adb10b029c417985ba49c3a05bf Mon Sep 17 00:00:00 2001 From: Can Sahin Date: Wed, 15 Apr 2020 16:50:15 +0300 Subject: [PATCH 2/7] fixed cra generation script --- .github/workflows/{ci.yaml => build.yaml} | 6 +++--- internals/scripts/generate-cra.ts | 8 ++------ package.json | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) rename .github/workflows/{ci.yaml => build.yaml} (80%) diff --git a/.github/workflows/ci.yaml b/.github/workflows/build.yaml similarity index 80% rename from .github/workflows/ci.yaml rename to .github/workflows/build.yaml index 0cd51b9f..a0e8bf6c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/build.yaml @@ -18,6 +18,6 @@ jobs: - run: npm run generate-cra:test env: CI: true - - run: npm run test --if-present - env: - CI: true + # - run: npm run test --if-present + # env: + # CI: true diff --git a/internals/scripts/generate-cra.ts b/internals/scripts/generate-cra.ts index 03142ef7..0cb25717 100644 --- a/internals/scripts/generate-cra.ts +++ b/internals/scripts/generate-cra.ts @@ -4,11 +4,7 @@ import { generateTemplateFolder, removeTemplateFolder, } from './generate-template-folder'; -import { - shellEnableAbortOnFail, - shellDisableAbortOnFail, - parseArgv, -} from './utils'; +import { shellEnableAbortOnFail, shellDisableAbortOnFail } from './utils'; interface Options { forTesting?: boolean; @@ -50,5 +46,5 @@ export function generateCRA(opts: Options = {}) { process.chdir(path.join(__dirname, '../..')); generateCRA({ - forTesting: parseArgv(process.argv, 'forTesting', true) as boolean, + forTesting: process.env.NODE_ENV === 'test' || process.env.CI === '', }); diff --git a/package.json b/package.json index ee096f23..7a668187 100755 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "lint:fix": "eslint --ext js,ts,tsx src --fix", "prettify": "prettier --write", "generate-cra": "ts-node --project=./internals/ts-node.tsconfig.json ./internals/scripts/generate-cra.ts", - "generate-cra:test": "npm run generate-cra -- --forTesting" + "generate-cra:test": "cross-env NODE_ENV=test && npm run generate-cra" }, "lint-staged": { "*.{ts,tsx,js,jsx}": [ From 708a3078518c899c0fdd1354a562ff87b05f4ffd Mon Sep 17 00:00:00 2001 From: Can Sahin Date: Wed, 15 Apr 2020 16:55:21 +0300 Subject: [PATCH 3/7] fixed npm ci bug --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a0e8bf6c..541e226d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -14,7 +14,7 @@ jobs: uses: actions/setup-node@v1 with: node-version: 10.x - - run: npm ci + - run: npm ci --no-optional # https://github.com/npm/cli/issues/558 - run: npm run generate-cra:test env: CI: true From 98a0679f7210712b62d6e715bb18c6b4639ed926 Mon Sep 17 00:00:00 2001 From: Can Sahin Date: Wed, 15 Apr 2020 17:07:57 +0300 Subject: [PATCH 4/7] minor changes --- .github/workflows/build.yaml | 3 ++- package.json | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 541e226d..6eee603a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -14,7 +14,8 @@ jobs: uses: actions/setup-node@v1 with: node-version: 10.x - - run: npm ci --no-optional # https://github.com/npm/cli/issues/558 + - run: npm i # There is a bug with npm ci -> https://github.com/npm/cli/issues/558 + - run: npm run lint - run: npm run generate-cra:test env: CI: true diff --git a/package.json b/package.json index 7a668187..bf759a41 100755 --- a/package.json +++ b/package.json @@ -35,16 +35,16 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", - "typecheck": "tsc --noEmit && npm run lint", + "checkTs": "tsc --noEmit", "lint": "eslint --ext js,ts,tsx src", - "lint:fix": "eslint --ext js,ts,tsx src --fix", + "lint:fix": "eslint --ext js,ts,tsx --fix src", "prettify": "prettier --write", "generate-cra": "ts-node --project=./internals/ts-node.tsconfig.json ./internals/scripts/generate-cra.ts", "generate-cra:test": "cross-env NODE_ENV=test && npm run generate-cra" }, "lint-staged": { "*.{ts,tsx,js,jsx}": [ - "npm run lint:fix" + "eslint --ext js,ts,tsx --fix" ], "*.{md,json}": [ "prettier --write" @@ -52,7 +52,7 @@ }, "husky": { "hooks": { - "pre-commit": "lint-staged && npm run typecheck" + "pre-commit": "lint-staged && npm run checkTs" } }, "dependencies": { From eb21ab6b9d817deb1336a042eeadbf7d76a327c4 Mon Sep 17 00:00:00 2001 From: Can Sahin Date: Wed, 15 Apr 2020 18:27:03 +0300 Subject: [PATCH 5/7] minor fixes --- .github/workflows/build.yaml | 3 +- .../LoadingIndicator/tests/Circle.test.tsx | 22 - .../LoadingIndicator/tests/Wrapper.test.tsx | 34 -- .../tests/__snapshots__/index.test.tsx.snap | 379 ------------------ .../LoadingIndicator/tests/index.test.tsx | 12 - src/store/reducers.ts | 6 +- template.json | 9 +- 7 files changed, 8 insertions(+), 457 deletions(-) delete mode 100755 src/components/LoadingIndicator/tests/Circle.test.tsx delete mode 100755 src/components/LoadingIndicator/tests/Wrapper.test.tsx delete mode 100644 src/components/LoadingIndicator/tests/__snapshots__/index.test.tsx.snap delete mode 100755 src/components/LoadingIndicator/tests/index.test.tsx diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6eee603a..132a18ce 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -9,8 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - - name: Use Node.js + - name: Use Node.js 10.x uses: actions/setup-node@v1 with: node-version: 10.x diff --git a/src/components/LoadingIndicator/tests/Circle.test.tsx b/src/components/LoadingIndicator/tests/Circle.test.tsx deleted file mode 100755 index d767b24f..00000000 --- a/src/components/LoadingIndicator/tests/Circle.test.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; -import { render } from '@testing-library/react'; - -import Circle from '../Circle'; - -describe('', () => { - it('should render a
tag', () => { - const { container } = render(); - expect((container.firstChild! as HTMLElement).tagName).toEqual('DIV'); - }); - - it('should have a class attribute', () => { - const { container } = render(); - expect(container.firstChild).toHaveAttribute('class'); - }); - - it('should not adopt attributes', () => { - const id = 'test'; - const { container } = render(); - expect(container.firstChild).not.toHaveAttribute('id'); - }); -}); diff --git a/src/components/LoadingIndicator/tests/Wrapper.test.tsx b/src/components/LoadingIndicator/tests/Wrapper.test.tsx deleted file mode 100755 index 4282e971..00000000 --- a/src/components/LoadingIndicator/tests/Wrapper.test.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react'; -import { render } from '@testing-library/react'; - -import Wrapper from '../Wrapper'; - -const renderComponent = (props = {}) => { - const utils = render(Wrapper); - const wrapper = utils.queryByText('Wrapper')!; - return { ...utils, wrapper }; -}; - -describe('', () => { - it('should render a
tag', () => { - const { wrapper } = renderComponent(); - expect(wrapper).toBeInTheDocument(); - expect(wrapper.tagName).toBe('DIV'); - }); - - it('should have a class attribute', () => { - const { wrapper } = renderComponent(); - expect(wrapper).toHaveAttribute('class'); - }); - - it('should adopt a valid attribute', () => { - const id = 'test'; - const { wrapper } = renderComponent({ id }); - expect(wrapper).toHaveAttribute('id', id); - }); - - it('should not adopt an invalid attribute', () => { - const { wrapper } = renderComponent({ attribute: 'test' }); - expect(wrapper).not.toHaveAttribute('attribute'); - }); -}); diff --git a/src/components/LoadingIndicator/tests/__snapshots__/index.test.tsx.snap b/src/components/LoadingIndicator/tests/__snapshots__/index.test.tsx.snap deleted file mode 100644 index 76dedba4..00000000 --- a/src/components/LoadingIndicator/tests/__snapshots__/index.test.tsx.snap +++ /dev/null @@ -1,379 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[` should match the snapshot 1`] = ` -.c0 { - margin: 2em auto; - width: 40px; - height: 40px; - position: relative; -} - -.c1 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; -} - -.c1:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; -} - -.c2 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(30deg); - -ms-transform: rotate(30deg); - -webkit-transform: rotate(30deg); - -ms-transform: rotate(30deg); - transform: rotate(30deg); -} - -.c2:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -1.1s; - -webkit-animation-delay: -1.1s; - animation-delay: -1.1s; -} - -.c3 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(60deg); - -ms-transform: rotate(60deg); - -webkit-transform: rotate(60deg); - -ms-transform: rotate(60deg); - transform: rotate(60deg); -} - -.c3:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -1s; - -webkit-animation-delay: -1s; - animation-delay: -1s; -} - -.c4 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} - -.c4:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -0.9s; - -webkit-animation-delay: -0.9s; - animation-delay: -0.9s; -} - -.c5 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(120deg); - -ms-transform: rotate(120deg); - -webkit-transform: rotate(120deg); - -ms-transform: rotate(120deg); - transform: rotate(120deg); -} - -.c5:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -0.8s; - -webkit-animation-delay: -0.8s; - animation-delay: -0.8s; -} - -.c6 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(150deg); - -ms-transform: rotate(150deg); - -webkit-transform: rotate(150deg); - -ms-transform: rotate(150deg); - transform: rotate(150deg); -} - -.c6:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -0.7s; - -webkit-animation-delay: -0.7s; - animation-delay: -0.7s; -} - -.c7 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} - -.c7:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -0.6s; - -webkit-animation-delay: -0.6s; - animation-delay: -0.6s; -} - -.c8 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(210deg); - -ms-transform: rotate(210deg); - -webkit-transform: rotate(210deg); - -ms-transform: rotate(210deg); - transform: rotate(210deg); -} - -.c8:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -0.5s; - -webkit-animation-delay: -0.5s; - animation-delay: -0.5s; -} - -.c9 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(240deg); - -ms-transform: rotate(240deg); - -webkit-transform: rotate(240deg); - -ms-transform: rotate(240deg); - transform: rotate(240deg); -} - -.c9:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -0.4s; - -webkit-animation-delay: -0.4s; - animation-delay: -0.4s; -} - -.c10 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} - -.c10:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -0.3s; - -webkit-animation-delay: -0.3s; - animation-delay: -0.3s; -} - -.c11 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(300deg); - -ms-transform: rotate(300deg); - -webkit-transform: rotate(300deg); - -ms-transform: rotate(300deg); - transform: rotate(300deg); -} - -.c11:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -0.2s; - -webkit-animation-delay: -0.2s; - animation-delay: -0.2s; -} - -.c12 { - width: 100%; - height: 100%; - position: absolute; - left: 0; - top: 0; - -webkit-transform: rotate(330deg); - -ms-transform: rotate(330deg); - -webkit-transform: rotate(330deg); - -ms-transform: rotate(330deg); - transform: rotate(330deg); -} - -.c12:before { - content: ''; - display: block; - margin: 0 auto; - width: 15%; - height: 15%; - background-color: #999; - border-radius: 100%; - -webkit-animation: evVlQQ 1.2s infinite ease-in-out both; - animation: evVlQQ 1.2s infinite ease-in-out both; - -webkit-animation-delay: -0.1s; - -webkit-animation-delay: -0.1s; - animation-delay: -0.1s; -} - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/components/LoadingIndicator/tests/index.test.tsx b/src/components/LoadingIndicator/tests/index.test.tsx deleted file mode 100755 index 3d441009..00000000 --- a/src/components/LoadingIndicator/tests/index.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import { render } from '@testing-library/react'; -import 'jest-styled-components'; - -import LoadingIndicator from '../index'; - -describe('', () => { - it('should match the snapshot', () => { - const { container } = render(); - expect(container.firstChild).toMatchSnapshot(); - }); -}); diff --git a/src/store/reducers.ts b/src/store/reducers.ts index 65f9c810..a7814320 100644 --- a/src/store/reducers.ts +++ b/src/store/reducers.ts @@ -2,8 +2,8 @@ * Combine all reducers in this file and export the combined reducers. */ -import { combineReducers } from '@reduxjs/toolkit'; -import { connectRouter } from 'connected-react-router'; +import { combineReducers, Reducer, AnyAction } from '@reduxjs/toolkit'; +import { connectRouter, RouterState } from 'connected-react-router'; import history from 'utils/history'; import { InjectedReducersType } from 'utils/types/injector-typings'; @@ -16,7 +16,7 @@ export default function createReducer( ) { const rootReducer = combineReducers({ ...injectedReducers, - router: connectRouter(history), + router: connectRouter(history) as Reducer, }); return rootReducer; diff --git a/template.json b/template.json index 5a765b39..037bc20a 100755 --- a/template.json +++ b/template.json @@ -5,18 +5,17 @@ "node": ">=10.13.0" }, "scripts": { - "typecheck": "tsc --noEmit && npm run lint", + "checkTs": "tsc --noEmit", "lint": "eslint --ext js,ts,tsx src", - "lint:fix": "eslint --ext js,ts,tsx src --fix", - "prettify": "prettier --write" + "lint:fix": "eslint --ext js,ts,tsx --fix src" }, "lint-staged": { - "*.{ts,tsx,js,jsx}": ["npm run lint:fix"], + "*.{ts,tsx,js,jsx}": ["eslint --ext js,ts,tsx --fix"], "*.{md,json}": ["prettier --write"] }, "husky": { "hooks": { - "pre-commit": "lint-staged && npm run typecheck" + "pre-commit": "lint-staged && npm run checkTs" } }, "dependencies": { From 1975b33ae19ce1f1b9b6709c56b11f45f138ab82 Mon Sep 17 00:00:00 2001 From: Can Sahin Date: Wed, 15 Apr 2020 18:47:15 +0300 Subject: [PATCH 6/7] seperated lint workflow --- .github/workflows/build.yaml | 3 +-- .github/workflows/lint.yaml | 13 +++++++++++++ internals/scripts/generate-cra.ts | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/lint.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 132a18ce..4827e43a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,4 +1,4 @@ -name: build +name: Build on: - push @@ -14,7 +14,6 @@ jobs: with: node-version: 10.x - run: npm i # There is a bug with npm ci -> https://github.com/npm/cli/issues/558 - - run: npm run lint - run: npm run generate-cra:test env: CI: true diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml new file mode 100644 index 00000000..2ae5bfc8 --- /dev/null +++ b/.github/workflows/lint.yaml @@ -0,0 +1,13 @@ +name: Lint + +on: + - push + - pull_request + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: npm i # There is a bug with npm ci -> https://github.com/npm/cli/issues/558 + - run: npm run lint diff --git a/internals/scripts/generate-cra.ts b/internals/scripts/generate-cra.ts index 0cb25717..2c61dda7 100644 --- a/internals/scripts/generate-cra.ts +++ b/internals/scripts/generate-cra.ts @@ -46,5 +46,5 @@ export function generateCRA(opts: Options = {}) { process.chdir(path.join(__dirname, '../..')); generateCRA({ - forTesting: process.env.NODE_ENV === 'test' || process.env.CI === '', + forTesting: process.env.NODE_ENV === 'test' || process.env.CI === 'true', }); From 34ffa1e5950473a524c70500ee8361423f4c4c24 Mon Sep 17 00:00:00 2001 From: Can Sahin Date: Wed, 15 Apr 2020 19:40:21 +0300 Subject: [PATCH 7/7] updated readme and allcontributors --- .all-contributorsrc | 38 +++++++++++++++ README.md | 114 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 149 insertions(+), 3 deletions(-) create mode 100644 .all-contributorsrc diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 00000000..786c81d3 --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,38 @@ +{ + "projectName": "cra-template-react-boilerplate", + "projectOwner": "cra-template-react-boilerplate", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "README.md" + ], + "imageSize": 80, + "commit": true, + "contributors": [ + { + "login": "Can-Sahin", + "name": "Can Sahin", + "avatar_url": "https://avatars2.githubusercontent.com/u/33245689", + "profile": "https://github.com/Can-Sahin", + "contributions": [ + "code", + "doc", + "ideas", + "review", + "test" + ] + }, + { + "login": "receptiryaki", + "name": "Recep Tiryaki", + "avatar_url": "https://avatars0.githubusercontent.com/u/3495307", + "profile": "https://github.com/receptiryaki", + "contributions": [ + "code", + "ideas" + ] + } + ], + "contributorsPerLine": 8, + "commitConvention": "none" +} diff --git a/README.md b/README.md index 3ed683f8..bff1f030 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,114 @@ -# cra-template-react-boilerplate +# UNDER DEVELOPMENT! DO NOT USE +**Details will follow...** +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-**This is the early test version of the [react-boilerplate](https://github.com/react-boilerplate/react-boilerplate)'s `official` custom template for the [create-react-app](https://github.com/facebook/create-react-app)** +react boilerplate banner +
+
Create React App template of React Boilerplate
+
+
Crafted for highly scalable, easily maintainable and highly performant React.js applications with a focus on best DX and best practices.
-More details & documentation will follow... \ No newline at end of file +
+ + + + +
+ +--- + +The official [Create React App](https://github.com/facebook/create-react-app) template of [React Boilerplate](https://github.com/react-boilerplate/react-boilerplate) +![](https://img.shields.io/github/stars/react-boilerplate/react-boilerplate?style=flat) +![](https://img.shields.io/github/contributors/react-boilerplate/react-boilerplate) + +Start your `create-react-app` projects in seconds with the best, industry-standard tools and practices made ready for you + +```sh +npx create-react-app --template cra-template-react-boilerplate my-app +cd my-app +npm start +``` + +--- + +## Features + +## Contributors + + + + + + + + + +

Can Sahin

💻 📖 🤔 👀 ⚠️

Recep Tiryaki

💻 🤔
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! + +## License + +This project is licensed under the MIT license, Copyright (c) 2019 Maximilian +Stoiber. For more information see `LICENSE.md`.