Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
98c6517801 | ||
|
|
9e832e69c6 | ||
|
|
93b8ef0173 | ||
|
|
604fce0372 | ||
|
|
56a7a57654 | ||
|
|
b009ff628d | ||
|
|
f770415db3 | ||
|
|
88a5fc6ad6 | ||
|
|
049943c7bd | ||
|
|
990f52d702 | ||
|
|
76e0acdb31 | ||
|
|
7947ef1d36 | ||
|
|
de9d3f0804 | ||
|
|
0ab55f4385 | ||
|
|
0b54ba54c6 | ||
|
|
9d2f745914 | ||
|
|
651d111624 | ||
|
|
cbe99e2b0f | ||
|
|
fdcc07aa80 | ||
|
|
2376f89dcc | ||
|
|
5706e87500 | ||
|
|
12ed73a490 | ||
|
|
5635eb9106 | ||
|
|
5a8cf6bbe6 | ||
|
|
8e588cf4b5 | ||
|
|
5ce07d7e6c | ||
|
|
33cc106144 | ||
|
|
add36b1f30 | ||
|
|
2c6b757051 | ||
|
|
65ac7f1bbf | ||
|
|
c9184ffc06 | ||
|
|
1bed694429 | ||
|
|
e2b4039a30 | ||
|
|
f8369603f4 | ||
|
|
2433c22b3d | ||
|
|
a332cb68f4 | ||
|
|
ffc9af3595 | ||
|
|
ea456ca75d | ||
|
|
100447b7d5 | ||
|
|
4fc8174c3f | ||
|
|
ffcf32376d | ||
|
|
9e7a6483bb | ||
|
|
44e7ad381c | ||
|
|
9da8429132 | ||
|
|
371438e4e2 | ||
|
|
3c0fb203c8 | ||
|
|
be099fa8ce | ||
|
|
ad5174f050 | ||
|
|
e55051bb09 | ||
|
|
da099611c2 | ||
|
|
6052e12972 | ||
|
|
5c7ed69e2b | ||
|
|
afb35e18bc | ||
|
|
0cb1761f5b | ||
|
|
e48a1e4354 | ||
|
|
d1cc0b9707 | ||
|
|
df0149ac5f | ||
|
|
10fac6c22f | ||
|
|
172b32155d | ||
|
|
2d7334d61e | ||
|
|
caae886d8f | ||
|
|
270f516448 | ||
|
|
8ed8b19828 | ||
|
|
c66f735c19 | ||
|
|
b2f6208cb4 | ||
|
|
3b10c51f74 | ||
|
|
8d885ab3f5 | ||
|
|
b937346ac2 | ||
|
|
cd047d58f0 | ||
|
|
6a8da82688 | ||
|
|
ac23b8ac83 | ||
|
|
987fe89238 | ||
|
|
5361316879 | ||
|
|
c11df248ab | ||
|
|
ec3a826edc | ||
|
|
a585faa237 | ||
|
|
919ebb922e | ||
|
|
57233a492b | ||
|
|
b8f4b89aca | ||
|
|
80e970bda8 | ||
|
|
dc432eea2d | ||
|
|
8c5248b2b3 | ||
|
|
11fa0420ed | ||
|
|
d885abb7ce | ||
|
|
fbe903ad81 | ||
|
|
eff79f6d54 | ||
|
|
d3f6c2e173 | ||
|
|
418f04b312 | ||
|
|
126df709d6 | ||
|
|
590b9f8326 | ||
|
|
7b686518ed | ||
|
|
491b0caf18 | ||
|
|
393523caa6 | ||
|
|
50f58b7023 | ||
|
|
19afb6b08a | ||
|
|
587a21df1e | ||
|
|
9f15bca7e9 | ||
|
|
0af9bb62de | ||
|
|
a9fcdbe72a | ||
|
|
7ce6851ea7 | ||
|
|
51a72a0641 | ||
|
|
e9b8569636 | ||
|
|
cb4fc02d4c | ||
|
|
30d3b114fb | ||
|
|
9bb1823d8e | ||
|
|
302409b2aa | ||
|
|
81d1c898df | ||
|
|
ecd2665a7c | ||
|
|
ea53a939b8 | ||
|
|
ef94173200 | ||
|
|
fe8abb8848 | ||
|
|
8e8013e835 | ||
|
|
b80fb5d42b | ||
|
|
59bf3c6fc3 | ||
|
|
3f295f24b9 | ||
|
|
166dd361d2 | ||
|
|
2139753b44 | ||
|
|
ea1c65e260 | ||
|
|
e4eca8679a | ||
|
|
79b0923763 | ||
|
|
4c306c4fbf | ||
|
|
ee9d44e70d | ||
|
|
0f5dc1d0f5 | ||
|
|
289a767088 | ||
|
|
af15e006c1 | ||
|
|
010c267dfe | ||
|
|
184b3e3963 | ||
|
|
e0c02f0427 | ||
|
|
901e2315e6 | ||
|
|
87e29d3d66 | ||
|
|
8b51beabd3 | ||
|
|
6fc248fe60 | ||
|
|
5629684140 | ||
|
|
fcf1ff1a6e | ||
|
|
1eba8db895 | ||
|
|
bc93c59868 | ||
|
|
bd19e744ce | ||
|
|
2452e06aea | ||
|
|
6e306bd1fd | ||
|
|
17487871d3 | ||
|
|
11abfd1c57 |
No files matched your search
+1
-60
@@ -1,61 +1,2 @@
|
||||
# OSX
|
||||
#
|
||||
.DS_Store
|
||||
|
||||
# Xcode
|
||||
#
|
||||
build/
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
*.mode1v3
|
||||
!default.mode1v3
|
||||
*.mode2v3
|
||||
!default.mode2v3
|
||||
*.perspectivev3
|
||||
!default.perspectivev3
|
||||
xcuserdata
|
||||
*.xccheckout
|
||||
*.moved-aside
|
||||
DerivedData
|
||||
*.hmap
|
||||
*.ipa
|
||||
*.xcuserstate
|
||||
project.xcworkspace
|
||||
|
||||
# Android/IntelliJ
|
||||
#
|
||||
build/
|
||||
.idea
|
||||
.gradle
|
||||
local.properties
|
||||
*.iml
|
||||
|
||||
# Visual Studio Code
|
||||
#
|
||||
.vscode/
|
||||
|
||||
# TypeScript
|
||||
#
|
||||
lib/
|
||||
|
||||
# node.js
|
||||
#
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
|
||||
# BUCK
|
||||
buck-out/
|
||||
\.buckd/
|
||||
*.keystore
|
||||
|
||||
# fastlane
|
||||
#
|
||||
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
|
||||
# screenshots whenever they are needed.
|
||||
# For more information about the recommended setup visit:
|
||||
# https://docs.fastlane.tools/best-practices/source-control/
|
||||
|
||||
*/fastlane/report.xml
|
||||
*/fastlane/Preview.html
|
||||
*/fastlane/screenshots
|
||||
.vscode/
|
||||
@@ -1 +1,4 @@
|
||||
.travis.yml
|
||||
CODE_OF_CONDUCT.md
|
||||
CONTRIBUTING.md
|
||||
ISSUE_TEMPLATE.md
|
||||
+13
-7
@@ -1,11 +1,17 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "node"
|
||||
install: true
|
||||
deploy:
|
||||
on:
|
||||
tags: true
|
||||
provider: npm
|
||||
email: "emin@emin.ch"
|
||||
api_key: "${NPM_TOKEN}"
|
||||
skip_cleanup: true
|
||||
- provider: npm
|
||||
on:
|
||||
condition: $TRAVIS_BRANCH == "master" && -n $TRAVIS_TAG
|
||||
email: "emin@emin.ch"
|
||||
api_key: "${NPM_TOKEN}"
|
||||
skip_cleanup: true
|
||||
- provider: npm
|
||||
on:
|
||||
condition: $TRAVIS_BRANCH == "master-cli-v2" && -n $TRAVIS_TAG
|
||||
email: "emin@emin.ch"
|
||||
api_key: "${NPM_TOKEN}"
|
||||
skip_cleanup: true
|
||||
tag: next
|
||||
@@ -0,0 +1,116 @@
|
||||
/**
|
||||
* Sample React Native App
|
||||
* https://github.com/facebook/react-native
|
||||
*
|
||||
* Generated with the TypeScript template
|
||||
* https://github.com/emin93/react-native-template-typescript
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
import React, {Fragment} from 'react';
|
||||
import {
|
||||
SafeAreaView,
|
||||
StyleSheet,
|
||||
ScrollView,
|
||||
View,
|
||||
Text,
|
||||
StatusBar,
|
||||
} from 'react-native';
|
||||
|
||||
import {
|
||||
Header,
|
||||
LearnMoreLinks,
|
||||
Colors,
|
||||
DebugInstructions,
|
||||
ReloadInstructions,
|
||||
} from 'react-native/Libraries/NewAppScreen';
|
||||
|
||||
const App = () => {
|
||||
return (
|
||||
<Fragment>
|
||||
<StatusBar barStyle="dark-content" />
|
||||
<SafeAreaView>
|
||||
<ScrollView
|
||||
contentInsetAdjustmentBehavior="automatic"
|
||||
style={styles.scrollView}>
|
||||
<Header />
|
||||
{global.HermesInternal == null ? null : (
|
||||
<View style={styles.engine}>
|
||||
<Text style={styles.footer}>Engine: Hermes</Text>
|
||||
</View>
|
||||
)}
|
||||
<View style={styles.body}>
|
||||
<View style={styles.sectionContainer}>
|
||||
<Text style={styles.sectionTitle}>Step One</Text>
|
||||
<Text style={styles.sectionDescription}>
|
||||
Edit <Text style={styles.highlight}>App.tsx</Text> to change this
|
||||
screen and then come back to see your edits.
|
||||
</Text>
|
||||
</View>
|
||||
<View style={styles.sectionContainer}>
|
||||
<Text style={styles.sectionTitle}>See Your Changes</Text>
|
||||
<Text style={styles.sectionDescription}>
|
||||
<ReloadInstructions />
|
||||
</Text>
|
||||
</View>
|
||||
<View style={styles.sectionContainer}>
|
||||
<Text style={styles.sectionTitle}>Debug</Text>
|
||||
<Text style={styles.sectionDescription}>
|
||||
<DebugInstructions />
|
||||
</Text>
|
||||
</View>
|
||||
<View style={styles.sectionContainer}>
|
||||
<Text style={styles.sectionTitle}>Learn More</Text>
|
||||
<Text style={styles.sectionDescription}>
|
||||
Read the docs to discover what to do next:
|
||||
</Text>
|
||||
</View>
|
||||
<LearnMoreLinks />
|
||||
</View>
|
||||
</ScrollView>
|
||||
</SafeAreaView>
|
||||
</Fragment>
|
||||
);
|
||||
};
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
scrollView: {
|
||||
backgroundColor: Colors.lighter,
|
||||
},
|
||||
engine: {
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
},
|
||||
body: {
|
||||
backgroundColor: Colors.white,
|
||||
},
|
||||
sectionContainer: {
|
||||
marginTop: 32,
|
||||
paddingHorizontal: 24,
|
||||
},
|
||||
sectionTitle: {
|
||||
fontSize: 24,
|
||||
fontWeight: '600',
|
||||
color: Colors.black,
|
||||
},
|
||||
sectionDescription: {
|
||||
marginTop: 8,
|
||||
fontSize: 18,
|
||||
fontWeight: '400',
|
||||
color: Colors.dark,
|
||||
},
|
||||
highlight: {
|
||||
fontWeight: '700',
|
||||
},
|
||||
footer: {
|
||||
color: Colors.dark,
|
||||
fontSize: 12,
|
||||
fontWeight: '600',
|
||||
padding: 4,
|
||||
paddingRight: 12,
|
||||
textAlign: 'right',
|
||||
},
|
||||
});
|
||||
|
||||
export default App;
|
||||
@@ -0,0 +1,46 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project owner at emin@emin.ch. The project owner will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project owner is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
||||
@@ -0,0 +1,17 @@
|
||||
# Contributing
|
||||
|
||||
Contributing to this project should be as easy and transparent as possible.
|
||||
|
||||
## Workflow
|
||||
|
||||
Right now there are two master branches in order to keep support for the old React Native CLI (for more info, check out the [related issue](https://github.com/react-native-community/react-native-template-typescript/issues/39)).
|
||||
|
||||
We use [GitHub Flow](https://guides.github.com/introduction/flow/), so all code changes happen through pull requests.
|
||||
|
||||
1. Fork the repository and create your branch from `master`.
|
||||
2. If you've changed the functionality, update the documentation.
|
||||
3. Issue that pull request! :tada:
|
||||
|
||||
## License
|
||||
|
||||
By contributing, you agree that your contributions will be licensed under the [MIT License](https://choosealicense.com/licenses/mit/).
|
||||
@@ -0,0 +1,15 @@
|
||||
## Expected results
|
||||
|
||||
What did you expect to happen?
|
||||
|
||||
## Observed results
|
||||
|
||||
What happened?
|
||||
|
||||
### Logs
|
||||
|
||||
Please add the log output here.
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
1.
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
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
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,34 +1,38 @@
|
||||
# :space_invader: React Native Template TypeScript · [](https://www.npmjs.com/package/react-native-template-typescript) [](https://travis-ci.org/emin93/react-native-template-typescript)
|
||||
# :space_invader: React Native Template TypeScript
|
||||
|
||||
Clean and minimalist React Native template for a quick start with TypeScript.
|
||||
<p>
|
||||
<a href="https://travis-ci.org/react-native-community/react-native-template-typescript">
|
||||
<img alt="Build Status" src="https://img.shields.io/travis/react-native-community/react-native-template-typescript.svg" target="_blank" />
|
||||
</a>
|
||||
<a href="https://github.com/react-native-community/react-native-template-typescript#readme">
|
||||
<img alt="Documentation" src="https://img.shields.io/badge/documentation-yes-brightgreen.svg" target="_blank" />
|
||||
</a>
|
||||
<a href="https://github.com/react-native-community/react-native-template-typescript/graphs/commit-activity">
|
||||
<img alt="Maintenance" src="https://img.shields.io/badge/Maintained%3F-yes-green.svg" target="_blank" />
|
||||
</a>
|
||||
<a href="https://github.com/react-native-community/react-native-template-typescript/blob/master/LICENSE">
|
||||
<img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg" target="_blank" />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
This template can be used with the React Native CLI, which means it doesn't mess with the platform specific files.
|
||||
Instead of including a lot of dependencies, my aim when creating this template was to provide a very easy and minimalist
|
||||
way to start your React Native project with TypeScript. Of course you can always include other dependencies as you need them.
|
||||
> Clean and minimalist React Native template for a quick start with TypeScript.
|
||||
|
||||
## :arrow_forward: Quick Start
|
||||
## :star: Features
|
||||
|
||||
```
|
||||
- Elegant usage directly within the [React Native CLI](https://github.com/react-native-community/cli)
|
||||
- Consistent with the default React Native template
|
||||
- Minimal additional dependencies
|
||||
|
||||
## :arrow_forward: Usage
|
||||
|
||||
```sh
|
||||
react-native init MyApp --template typescript
|
||||
cd MyApp
|
||||
node scripts/install.sh
|
||||
```
|
||||
|
||||
## :question: FAQ
|
||||
## :computer: Contributing
|
||||
|
||||
### Why the post install script?
|
||||
Contributions are very welcome. Please check out the [contributing document](CONTRIBUTING.md).
|
||||
|
||||
The React Native CLI currently supports automatic installation only of production dependencies. Since TypeScript type definitions are dev dependencies, the post install script is being used to install those.
|
||||
## :bookmark: License
|
||||
|
||||
### What about Jest?
|
||||
|
||||
Currently this template does not cover Jest. For more info on the current status check the [open issue](https://github.com/emin93/react-native-template-typescript/issues/1).
|
||||
|
||||
### How will this template affect the React Native CLI workflow?
|
||||
|
||||
The React Native CLI will do everything just as without a template and afterwards overwrite the files with the ones from
|
||||
this template. This means you don't have to worry about incompatibility issues with later React Native upgrades.
|
||||
|
||||
## :hearts: Contributing
|
||||
|
||||
Contributions are of course very welcome. Please try to stay consistent with the other files I've created.
|
||||
This project is [MIT](LICENSE) licensed.
|
||||
@@ -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 />);
|
||||
});
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
# OSX
|
||||
#
|
||||
.DS_Store
|
||||
|
||||
# Xcode
|
||||
#
|
||||
build/
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
*.mode1v3
|
||||
!default.mode1v3
|
||||
*.mode2v3
|
||||
!default.mode2v3
|
||||
*.perspectivev3
|
||||
!default.perspectivev3
|
||||
xcuserdata
|
||||
*.xccheckout
|
||||
*.moved-aside
|
||||
DerivedData
|
||||
*.hmap
|
||||
*.ipa
|
||||
*.xcuserstate
|
||||
project.xcworkspace
|
||||
|
||||
# Android/IntelliJ
|
||||
#
|
||||
build/
|
||||
.idea
|
||||
.gradle
|
||||
local.properties
|
||||
*.iml
|
||||
|
||||
# Visual Studio Code
|
||||
#
|
||||
.vscode/
|
||||
|
||||
# node.js
|
||||
#
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
|
||||
# BUCK
|
||||
buck-out/
|
||||
\.buckd/
|
||||
*.keystore
|
||||
|
||||
# fastlane
|
||||
#
|
||||
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
|
||||
# screenshots whenever they are needed.
|
||||
# For more information about the recommended setup visit:
|
||||
# https://docs.fastlane.tools/best-practices/source-control/
|
||||
|
||||
*/fastlane/report.xml
|
||||
*/fastlane/Preview.html
|
||||
*/fastlane/screenshots
|
||||
|
||||
# Bundle artifact
|
||||
*.jsbundle
|
||||
|
||||
# CocoaPods
|
||||
/ios/Pods/
|
||||
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"@types/react": "16.0.40",
|
||||
"@types/react-native": "0.52.16"
|
||||
"@types/jest": "latest",
|
||||
"@types/react-native": "latest",
|
||||
"@types/react-test-renderer": "latest",
|
||||
"@types/react": "latest",
|
||||
"typescript": "latest"
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
import { AppRegistry } from 'react-native';
|
||||
import App from './lib/App';
|
||||
|
||||
AppRegistry.registerComponent('react-native-template-typescript', () => App);
|
||||
@@ -0,0 +1,4 @@
|
||||
module.exports = {
|
||||
preset: 'react-native',
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
|
||||
}
|
||||
Generated
+1810
File diff suppressed because it is too large.
Load diff
+28
-23
@@ -1,25 +1,30 @@
|
||||
{
|
||||
"name": "react-native-template-typescript",
|
||||
"version": "0.0.1",
|
||||
"description": "Clean and minimalist React Native template for a quick start with TypeScript.",
|
||||
"scripts": {
|
||||
"prepublishOnly": "npm --no-git-tag-version version from-git"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/emin93/react-native-template-typescript.git"
|
||||
},
|
||||
"keywords": [
|
||||
"react",
|
||||
"native",
|
||||
"template",
|
||||
"typescript",
|
||||
"boilerplate"
|
||||
],
|
||||
"author": "Emin Khateeb <emin@emin.ch>",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/emin93/react-native-template-typescript/issues"
|
||||
},
|
||||
"homepage": "https://github.com/emin93/react-native-template-typescript#readme"
|
||||
"name": "react-native-template-typescript",
|
||||
"version": "0.0.1",
|
||||
"description": "Clean and minimalist React Native template for a quick start with TypeScript.",
|
||||
"scripts": {
|
||||
"test": "standard setup.js",
|
||||
"prepublishOnly": "npm --no-git-tag-version version $TRAVIS_TAG",
|
||||
"install": "node setup.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/emin93/react-native-template-typescript.git"
|
||||
},
|
||||
"keywords": [
|
||||
"react-native",
|
||||
"typescript",
|
||||
"jest",
|
||||
"template",
|
||||
"boilerplate"
|
||||
],
|
||||
"author": "Emin Khateeb <emin@emin.ch>",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/emin93/react-native-template-typescript/issues"
|
||||
},
|
||||
"homepage": "https://github.com/emin93/react-native-template-typescript#readme",
|
||||
"devDependencies": {
|
||||
"standard": "13.0.2"
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const packageJson = require('../package.json');
|
||||
const devDependencies = require('../devDependencies.json');
|
||||
|
||||
const isInScriptsDirectory = fs.existsSync(path.join(process.cwd(), 'install.js'));
|
||||
const pathPrefix = isInScriptsDirectory ? '../' : '';
|
||||
|
||||
const deleteFile = (fileName) => fs.unlinkSync(path.join(process.cwd(), `${pathPrefix}${fileName}`));
|
||||
const writeFile = (fileName, data) => fs.writeFileSync(path.join(process.cwd(), `${pathPrefix}${fileName}`), data);
|
||||
|
||||
(() => {
|
||||
deleteFile('App.js');
|
||||
})();
|
||||
|
||||
(() => {
|
||||
if (!packageJson.devDependencies) {
|
||||
packageJson.devDependencies = {};
|
||||
}
|
||||
|
||||
packageJson.devDependencies = Object.assign(packageJson.devDependencies, devDependencies);
|
||||
const data = JSON.stringify(packageJson, null, 2);
|
||||
writeFile('package.json', data);
|
||||
})();
|
||||
@@ -0,0 +1,25 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
if (fs.existsSync(path.join(__dirname, '.travis.yml'))) {
|
||||
process.exit()
|
||||
}
|
||||
|
||||
const projectFilesToDelete = ['.flowconfig', 'App.js', '__tests__/App-test.js']
|
||||
|
||||
const templateFilesToDelete = ['setup.js', 'README.md', 'LICENSE']
|
||||
|
||||
const deleteFile = filePath => {
|
||||
if (!fs.existsSync(filePath)) {
|
||||
return
|
||||
}
|
||||
|
||||
fs.unlinkSync(filePath)
|
||||
}
|
||||
|
||||
const projectPath = path.join(__dirname, '..', '..')
|
||||
const deleteProjectFile = fileName => deleteFile(path.join(projectPath, fileName))
|
||||
const deleteTemplateFile = fileName => deleteFile(path.join(__dirname, fileName))
|
||||
|
||||
projectFilesToDelete.forEach(deleteProjectFile)
|
||||
templateFilesToDelete.forEach(deleteTemplateFile)
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
import * as React from 'react';
|
||||
import { Platform, StyleSheet, Text, View } from 'react-native';
|
||||
|
||||
const instructions = Platform.select({
|
||||
ios: 'Press Cmd+R to reload,\n' +
|
||||
'Cmd+D or shake for dev menu',
|
||||
android: 'Double tap R on your keyboard to reload,\n' +
|
||||
'Shake or press menu button for dev menu',
|
||||
});
|
||||
|
||||
export interface Props { }
|
||||
|
||||
export default class App extends React.Component<Props> {
|
||||
render() {
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<Text style={styles.welcome}>
|
||||
Welcome to React Native!
|
||||
</Text>
|
||||
<Text style={styles.instructions}>
|
||||
To get started, edit App.js
|
||||
</Text>
|
||||
<Text style={styles.instructions}>
|
||||
{instructions}
|
||||
</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
backgroundColor: '#F5FCFF',
|
||||
},
|
||||
welcome: {
|
||||
fontSize: 20,
|
||||
textAlign: 'center',
|
||||
margin: 10,
|
||||
},
|
||||
instructions: {
|
||||
textAlign: 'center',
|
||||
color: '#333333',
|
||||
marginBottom: 5,
|
||||
},
|
||||
});
|
||||
+11
-54
@@ -1,58 +1,15 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
/* Basic Options */
|
||||
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
|
||||
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
||||
// "lib": [], /* Specify library files to be included in the compilation. */
|
||||
// "allowJs": true, /* Allow javascript files to be compiled. */
|
||||
// "checkJs": true, /* Report errors in .js files. */
|
||||
"jsx": "react", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
|
||||
// "declaration": true, /* Generates corresponding '.d.ts' file. */
|
||||
"sourceMap": true, /* Generates corresponding '.map' file. */
|
||||
// "outFile": "./", /* Concatenate and emit output to single file. */
|
||||
"outDir": "./lib", /* Redirect output structure to the directory. */
|
||||
// "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
|
||||
// "removeComments": true, /* Do not emit comments to output. */
|
||||
// "noEmit": true, /* Do not emit outputs. */
|
||||
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
|
||||
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
|
||||
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
|
||||
|
||||
/* Strict Type-Checking Options */
|
||||
"strict": true, /* Enable all strict type-checking options. */
|
||||
// "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
|
||||
// "strictNullChecks": true, /* Enable strict null checks. */
|
||||
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
|
||||
// "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
|
||||
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
|
||||
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
|
||||
|
||||
/* Additional Checks */
|
||||
// "noUnusedLocals": true, /* Report errors on unused locals. */
|
||||
// "noUnusedParameters": true, /* Report errors on unused parameters. */
|
||||
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
|
||||
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
|
||||
|
||||
/* Module Resolution Options */
|
||||
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
|
||||
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
|
||||
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
|
||||
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
|
||||
// "typeRoots": [], /* List of folders to include type definitions from. */
|
||||
// "types": [], /* Type declaration files to be included in compilation. */
|
||||
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
|
||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
||||
|
||||
/* Source Map Options */
|
||||
// "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
|
||||
// "mapRoot": "./", /* Specify the location where debugger should locate map files instead of generated locations. */
|
||||
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
|
||||
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
|
||||
|
||||
/* Experimental Options */
|
||||
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
|
||||
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
|
||||
"allowJs": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"esModuleInterop": true,
|
||||
"isolatedModules": true,
|
||||
"jsx": "react",
|
||||
"lib": ["es6"],
|
||||
"moduleResolution": "node",
|
||||
"noEmit": true,
|
||||
"strict": true,
|
||||
"target": "esnext"
|
||||
},
|
||||
"include": ["./src"]
|
||||
"exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"]
|
||||
}
|
||||
Reference in new issue
Block a user