Compare commits

..
27 Commits
Author SHA1 Message Date
Emin Khateeb 12ed73a490 Merge pull request #33 from emin93/fix-yarn-post-install
Fixed Yarn Post Install issue
2019-03-12 21:53:39 +01:00
Emin Khateeb 5635eb9106 fixed issue that caused the post setup script to crash if a file is not present 2019-03-12 21:47:54 +01:00
Emin Khateeb 5a8cf6bbe6 Merge pull request #31 from emin93/react-native-0.59
React Native 0.59 support
2019-03-12 18:24:30 +01:00
Emin Khateeb 8e588cf4b5 Merge branch 'react-native-0.59' of github.com:emin93/react-native-template-typescript into react-native-0.59 2019-03-12 18:21:23 +01:00
Emin Khateeb 5ce07d7e6c minor space addition to prevent comparison issues 2019-03-12 18:21:11 +01:00
Emin Khateeb 33cc106144 Added jest config to ts excludes 2019-03-07 13:19:46 +01:00
Emin Khateeb add36b1f30 Merge pull request #30 from emin93/master
Merge pull request #29 from tallpants/patch-1
2019-03-07 13:18:34 +01:00
Emin Khateeb 2c6b757051 Merge pull request #29 from tallpants/patch-1
Add metro.config.js to tsconfig excluded files
2019-03-07 13:15:34 +01:00
Adithya Reddy 65ac7f1bbf Add metro.config.js to tsconfig excluded files
In the latest RC of React Native (0.59.0-rc.3) a `metro.config.js` file is created with the following content:

```js
/**
 * Metro configuration for React Native
 * https://github.com/facebook/react-native
 *
 * @format
 */

module.exports = {
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: false,
      },
    }),
  },
};
```

When you run `tsc`, it fails with this error:

```
metro.config.js:8:1 - error TS1208: Cannot compile namespaces when the '--isolatedModules' flag is provided.

8 module.exports = {
  ~~~~~~


Found 1 error.
```

This PR fixes that error by excluding the `metro.config.js` file just like we did for `babel.config.js`.
2019-03-07 11:55:54 +05:30
Emin Khateeb c9184ffc06 added check if package is being installed as a dependency 2019-03-05 12:53:12 +01:00
Emin Khateeb 1bed694429 updated contributing document 2019-03-05 12:36:55 +01:00
Emin Khateeb e2b4039a30 updated license year 2019-03-05 12:34:22 +01:00
Emin Khateeb f8369603f4 reverted package version 2019-03-05 12:23:03 +01:00
Emin Khateeb 2433c22b3d prepared for RN 0.59 release 2019-03-05 12:20:25 +01:00
Emin Khateeb a332cb68f4 Merge pull request #28 from emin93/new-cli-post-install
Prepared automatic execution of the post install script
2019-03-05 10:59:28 +01:00
Emin Khateeb ffc9af3595 Prepared automatic execution of the post install script 2019-02-21 13:31:38 +01:00
Emin Khateeb ea456ca75d Now removing the jest.json as well after setup 2019-02-07 21:52:44 +01:00
Emin Khateeb 100447b7d5 Added no-git-tag-version param 2019-02-07 21:44:52 +01:00
Emin Khateeb 4fc8174c3f Now using tag from CI 2019-02-07 21:42:45 +01:00
Emin Khateeb ffcf32376d Removed git reset step 2019-02-07 21:35:24 +01:00
Emin Khateeb 9e7a6483bb Upgraded standard 2019-02-07 21:24:49 +01:00
Emin Khateeb 44e7ad381c Merge pull request #27 from emin93/ts-jest
Added ts-jest
2019-02-07 21:21:48 +01:00
Emin Khateeb 9da8429132 Added ts-jest 2019-02-07 21:17:30 +01:00
Emin Khateeb 371438e4e2 Merge pull request #25 from malord/master
Add babel.config.js to TypeScript excludes
2019-02-04 12:03:52 +01:00
Mark Lord 3c0fb203c8 Fix for babel.config.js:1:1 - error TS1208: Cannot compile namespaces when the '--isolatedModules' flag is provided. 2019-02-04 10:16:51 +00:00
Emin Khateeb be099fa8ce Slight Readme wording change 2019-01-30 12:46:28 +01:00
Emin Khateeb ad5174f050 Update README.md 2018-09-17 13:45:18 +02:00
10 changed files with 410 additions and 653 deletions

No files matched your search

+1 -1
View File
@@ -48,4 +48,4 @@ const styles = StyleSheet.create({
color: '#333333',
marginBottom: 5,
},
});
});
+1 -7
View File
@@ -1,8 +1,6 @@
# Contributing
Cool, I'm glad you decided to contribute to React Native Template TypeScript.
Don't worry, I won't bother you with thousands of rules. I want to make contributing to this project as easy and transparent as possible.
Contributing to this project should be as easy and transparent as possible.
## Workflow
@@ -15,7 +13,3 @@ We use [GitHub Flow](https://guides.github.com/introduction/flow/), so all code
## License
By contributing, you agree that your contributions will be licensed under the [MIT License](https://choosealicense.com/licenses/mit/).
## Code style
Currently there is no lint configuration, but you should try to stay consistent with the existing code.
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2018 Emin Khateeb
Copyright (c) 2019 Emin Khateeb
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+7 -14
View File
@@ -13,15 +13,11 @@ Clean and minimalist React Native template for a quick start with TypeScript.
## :arrow_forward: Quick Start
```bash
react-native init MyApp --template typescript && node MyApp/setup.js
react-native init MyApp --template typescript
```
## :question: FAQ
### Why this template when React Native 0.57+ supports TypeScript out of the box?
First of all, I started this template before React Native 0.57 came out. After React Native 0.57 was announced, I planned to stop maintenance on this template. But after further evaluation, there's still some manual work to do (add type definitions for React & React Native, create a `.tsconfig` for type checking, etc.) to properly set up a React Native 0.57+ TypeScript project. And that's where this template comes in and does that work for you. :raised_hands:
### What additional dependencies are included in this template?
- [TypeScript](https://github.com/Microsoft/TypeScript)
@@ -31,24 +27,21 @@ This template always uses the latest versions of the dependencies at the time wh
Lots of :heart: and credits to the owners and maintainers of those packages.
### Why the setup script?
### Does debugging work?
It deletes obsolete files like the `.flowconfig` and the `setup.js` itself after the setup.
Yes it does. :tada:
[![Demonstration of working breakpoints in Visual Studio Code](https://cdn-images-1.medium.com/max/1600/1*ZXfzgq1xKz1B3chYy9xE7w.png)](https://medium.com/@emin93/react-native-typescript-b965059109d3)
### How to do type checking?
`npm run tsc`
### Does debugging work?
Yes it does.
[![Demonstration of working breakpoints in Visual Studio Code](https://cdn-images-1.medium.com/max/1600/1*ZXfzgq1xKz1B3chYy9xE7w.png)](https://medium.com/@emin93/react-native-typescript-b965059109d3)
`npx tsc`
## :globe_with_meridians: Links
- ["Using React Native with TypeScript just became simple" on Medium](https://medium.com/@emin93/react-native-typescript-b965059109d3)
- ["24 tips for React Native you probably want to know" on Albert Gao's blog](http://albertgao.xyz/2018/05/30/24-tips-for-react-native-you-probably-want-to-know/#9-For-Typescript)
- ["3 Easy Steps to Set Up React Native with TypeScript, Jest and Enzyme" on Medium by Jan Hesters](https://medium.com/@jan.hesters/3-easy-steps-to-set-up-react-native-with-typescript-jest-and-enzyme-592ca042262f)
## :computer: Contributing
+14
View File
@@ -0,0 +1,14 @@
/**
* @format
*/
import 'react-native';
import React from 'react';
import App from '../App';
// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';
it('renders correctly', () => {
renderer.create(<App />);
});
+4
View File
@@ -0,0 +1,4 @@
module.exports = {
preset: 'react-native',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
}
+361 -614
View File
File diff suppressed because it is too large. Load diff
+3 -2
View File
@@ -4,7 +4,8 @@
"description": "Clean and minimalist React Native template for a quick start with TypeScript.",
"scripts": {
"test": "standard setup.js",
"prepublishOnly": "git reset --hard && npm --no-git-tag-version version from-git"
"prepublishOnly": "npm --no-git-tag-version version $TRAVIS_TAG",
"install": "node setup.js"
},
"repository": {
"type": "git",
@@ -24,6 +25,6 @@
},
"homepage": "https://github.com/emin93/react-native-template-typescript#readme",
"devDependencies": {
"standard": "11.0.1"
"standard": "12.0.1"
}
}
+16 -12
View File
@@ -1,21 +1,25 @@
const fs = require('fs')
const path = require('path')
const packageJson = require('./package.json')
if (fs.existsSync(path.join(__dirname, '.travis.yml'))) {
process.exit()
}
const deleteFile = fileName => fs.unlinkSync(path.join(__dirname, fileName))
const writeFile = (fileName, data) => fs.writeFileSync(path.join(__dirname, fileName), data)
const projectFilesToDelete = ['.flowconfig', 'App.js', '__tests__/App-test.js']
console.log('🔄 Setting up...')
const templateFilesToDelete = ['setup.js', 'README.md', 'LICENSE']
packageJson.scripts.tsc = 'tsc'
const deleteFile = filePath => {
if (!fs.existsSync(filePath)) {
return
}
writeFile('package.json', JSON.stringify(packageJson, null, 2))
fs.unlinkSync(filePath)
}
deleteFile('.flowconfig')
deleteFile('App.js')
deleteFile('LICENSE')
deleteFile('README.md')
deleteFile('setup.js')
const projectPath = path.join(__dirname, '..', '..')
const deleteProjectFile = fileName => deleteFile(path.join(projectPath, fileName))
const deleteTemplateFile = fileName => deleteFile(path.join(__dirname, fileName))
console.log(`✅ Setup completed!`)
projectFilesToDelete.forEach(deleteProjectFile)
templateFilesToDelete.forEach(deleteTemplateFile)
+2 -2
View File
@@ -4,12 +4,12 @@
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "react-native",
"jsx": "react",
"lib": ["es6"],
"moduleResolution": "node",
"noEmit": true,
"strict": true,
"target": "esnext"
},
"exclude": ["node_modules"]
"exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"]
}