Pepperoni - React Native App Starter Kit for Android and iOS

Overview

Pepperoni - Empowered by Futurice Futurice React Native Starter Kit

Join the chat at https://gitter.im/futurice/pepperoni-app-kit Build Status React Native Sponsored License

⚠️ Deprecation Warning

Dear community, as time moved on so did React Native and we've not been able to provide continous support for pepperoni in the past. We are happy that so many of you found it useful and are looking forward to build new tools in the future.

If you are new to React Native and are looking for ways how to start, Expo is a great choice or head straight to the React Native docs as it's never been easier to get started with the official setup.

Intro

We 💚 building apps with React Native, because it helps us create high quality products for both major mobile platforms quickly and cost-effectively.

Getting started on a new app just takes too damn long, though. Most apps need the same basic building blocks and developer infrastructure, and we are bored of reinventing the wheel time and time again.

This Starter Kit reflects the best practices of React Native development we have discovered while building real-world applications for our customers. It is opinionated about tooling, patterns and development practices. It might not be a one-size-fits-all solution for everyone, but feel free to customize it for your needs, or just take inspiration from it.

React Native Starter Kit is a part of Pepperoni, a framework for kickstarting digital product development.

tltr;

Sounds good and you just want to see how it works? Here is a quick start guide:

git clone https://github.com/futurice/pepperoni-app-kit.git
cd pepperoni-app-kit
yarn install
react-native run-ios

For further setup instructions please see our Getting Started section.

Contents

⚠️ WORK IN PROGRESS | COMING SOON

Not all of the below is yet fully implemented

Application Blueprint

  • Always up-to-date React Native scaffolding
  • Modular and well-documented structure for application code
  • Redux and ImmutableJS for safe and Reasonaboutable ™️ state management
  • Redux Loop for Elm-style controlled side effects
  • React Navigation for awesome navigation with 60fps transitions
  • Disk-persisted application state caching for offline support and snappy startup performance
  • Clean and testable service layer for interacting with RESTful APIs
  • ⚠️ Sample app to show how to wire it all together
  • JSON Web Token authentication
  • Multi-environment configuration (dev, staging, production) for iOS and Android
  • Built-in error handling and customizable error screens

Testing Setup

  • Jest for unit testing application code and providing coverage information.
  • Enzyme and fully mocked React Native for unit testing UI components
  • Utilities for end-to-end integration testing Redux state, including side effects and asynchronous actions

Development & Deployment Infrastructure

Roadmap

  • TODO Microsoft Code Push for instant JavaScript and images update
  • TODO Crash reporting
  • TODO Android and iOS UI Testing with Calaba.sh?
  • TODO Feature flags?

Getting started

To build your own app on top of the Starter Kit, fork or mirror this repository. For serious use we recommend mirroring using these instructions, since you can't make a fork of a public repository private on GitHub. To contribute to Starter Kit development or just playing around, forking is the way to go.

First, give your application a name by running ./support/rename.sh YourAppName.

Once you have the code downloaded, follow the Setup guide to get started.

Development workflow

After you have set up the project using above instructions, you can use your favorite IDE or text editor to write code, and run the application from the command line. Turn on React Native hot module reloading in the app developer menu to update your application as you code.

To learn how to structure your application and use the Redux application architecture, read the Architecture guide for more details.

Start the application in iOS simulator
$ react-native run-ios
Start the application in Android simulator

(If using the stock emulator, the emulator must be running)

$ react-native run-android
Run unit tests
$ npm test
Run tests every time code changes
$ npm run test:watch
Generate code coverage report
$ npm run coverage

Read the Testing guide for more information about writing tests.

Debugging

For standard debugging select Debug JS Remotely from the React Native Development context menu (To open the context menu, press CMD+D in iOS or D+D in Android). This will open a new Chrome tab under http://localhost:8081/debugger-ui and prints all actions to the console.

For advanced debugging under macOS we suggest using the standalone React Native Debugger, which is based on the official debugger of React Native. It includes the React Inspector and Redux DevTools so you can inspect React views and get a detailed history of the Redux state.

You can install it via brew and run it as a standalone app:

$ brew update && brew cask install react-native-debugger

Note: Make sure you close all active chrome debugger tabs and then restart the debugger from the React Native Development context menu.

Deployment

Read the Deployment guide to learn how to deploy the application to test devices, app stores, and how to use Code Push to push updates to your users immediately.

Contributing

If you find any problems, please open an issue or submit a fix as a pull request.

We welcome new features, but for large changes let's discuss first to make sure the changes can be accepted and integrated smoothly.

License

MIT License

Credits

This project was initially motivated by Snowflake, a React Native boilerplate by Barton Hammond. It shares some features and design principles for Pepperoni, but it wasn't the right fit for our needs. At this time Snowflake is more mature, so if you like Pepperoni but didn't agree with something we are doing, you should check it out to see if it's a good fit for your app.

Comments
  • Error to build iOS app on fresh clone

    Error to build iOS app on fresh clone

    Might related to #25

    Error:

    === BUILD TARGET PepperoniAppTemplate OF PROJECT PepperoniAppTemplate WITH CONFIGURATION Debug ===
    
    Check dependencies
    
    PhaseScriptExecution [CP]\ Check\ Pods\ Manifest.lock build/Build/Intermediates/PepperoniAppTemplate.build/Debug-iphonesimulator/PepperoniAppTemplate.build/Script-64ECB2A37DD1E0D254C2E832.sh
        cd /tmp/pepperoni-app-kit/ios
        /bin/sh -c /tmp/pepperoni-app-kit/ios/build/Build/Intermediates/PepperoniAppTemplate.build/Debug-iphonesimulator/PepperoniAppTemplate.build/Script-64ECB2A37DD1E0D254C2E832.sh
    
    Ld build/Build/Products/Debug-iphonesimulator/PepperoniAppTemplate.app/PepperoniAppTemplate normal x86_64
        cd /tmp/pepperoni-app-kit/ios
        export IPHONEOS_DEPLOYMENT_TARGET=7.0
        export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/wjiang/.rvm/gems/ruby-2.3.1/bin:/Users/wjiang/.rvm/gems/[email protected]/bin:/Users/wjiang/.rvm/rubies/ruby-2.3.1/bin:/Users/wjiang/.rvm/bin:/Users/wjiang/.nvm/versions/node/v6.3.0/bin:/Users/wjiang/workspace/go/bin:/usr/local/heroku/bin:/Users/wjiang/.rbenv/shims:/Users/wjiang/.rbenv/shims:/Users/wjiang/.rbenv/bin:/Developer/NVIDIA/CUDA-7.5/bin:/Users/wjiang/opt/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/go/bin:/Library/TeX/texbin:/Users/wjiang/opt/android/sdk/tools:/Users/wjiang/opt/android/sdk/platform-tools:/Users/wjiang/workspace/go/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin:/Applications/Android Studio.app/sdk/tools:/Users/wjiang/opt/gradle-2.1/bin:/Users/wjiang/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:"
        /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk -L/tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator -L/tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/AFNetworking -L/tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/CocoaLumberjack -L/tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/Lock -L/tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/Masonry -L/tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/SimpleKeychain -L/tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/TouchIDAuth -F/tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator -filelist /tmp/pepperoni-app-kit/ios/build/Build/Intermediates/PepperoniAppTemplate.build/Debug-iphonesimulator/PepperoniAppTemplate.build/Objects-normal/x86_64/PepperoniAppTemplate.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=7.0 -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lc++ -ObjC -lAFNetworking -lCocoaLumberjack -lLock -lMasonry -lSimpleKeychain -lTouchIDAuth -framework CoreGraphics -framework Foundation -framework LocalAuthentication -framework MobileCoreServices -framework Security -framework SystemConfiguration -framework UIKit -framework WebKit -fobjc-arc -fobjc-link-runtime /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libReact.a /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libRCTActionSheet.a /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libRCTGeolocation.a /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libRCTImage.a /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libRCTLinking.a /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libRCTNetwork.a /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libRCTSettings.a /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libRCTText.a /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libRCTVibration.a /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/libRCTWebSocket.a -lA0RNLock -lPods-PepperoniAppTemplate -Xlinker -dependency_info -Xlinker /tmp/pepperoni-app-kit/ios/build/Build/Intermediates/PepperoniAppTemplate.build/Debug-iphonesimulator/PepperoniAppTemplate.build/Objects-normal/x86_64/PepperoniAppTemplate_dependency_info.dat -o /tmp/pepperoni-app-kit/ios/build/Build/Products/Debug-iphonesimulator/PepperoniAppTemplate.app/PepperoniAppTemplate
    ld: library not found for -lA0RNLock
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    
    ** BUILD FAILED **
    
    
    The following build commands failed:
        Ld build/Build/Products/Debug-iphonesimulator/PepperoniAppTemplate.app/PepperoniAppTemplate normal x86_64
    (1 failure)
    Installing build/Build/Products/Debug-iphonesimulator/PepperoniAppTemplate.app
    An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):
    Failed to install the requested application
    The bundle identifier of the application could not be determined.
    Ensure that the application's Info.plist contains a value for CFBundleIdentifier.
    Print: Entry, ":CFBundleIdentifier", Does Not Exist
    /private/tmp/pepperoni-app-kit/node_modules/promise/lib/done.js:10
          throw err;
          ^
    
    Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/PepperoniAppTemplate.app/Info.plist
    Print: Entry, ":CFBundleIdentifier", Does Not Exist
    
        at checkExecSyncError (child_process.js:475:13)
        at Object.execFileSync (child_process.js:495:13)
        at _runIOS (/private/tmp/pepperoni-app-kit/node_modules/react-native/local-cli/runIOS/runIOS.js:91:28)
        at /private/tmp/pepperoni-app-kit/node_modules/react-native/local-cli/runIOS/runIOS.js:24:1
        at tryCallTwo (/private/tmp/pepperoni-app-kit/node_modules/promise/lib/core.js:45:5)
        at doResolve (/private/tmp/pepperoni-app-kit/node_modules/promise/lib/core.js:200:13)
        at new Promise (/private/tmp/pepperoni-app-kit/node_modules/promise/lib/core.js:66:3)
        at Array.runIOS (/private/tmp/pepperoni-app-kit/node_modules/react-native/local-cli/runIOS/runIOS.js:23:8)
        at Object.run (/private/tmp/pepperoni-app-kit/node_modules/react-native/local-cli/cliEntry.js:95:11)
        at Object.<anonymous> (/Users/wjiang/.nvm/versions/node/v6.3.0/lib/node_modules/react-native-cli/index.js:88:7)
    /tmp/pepperoni-app-kit $
    

    Steps to reproduce the error:

    1. git clone https://github.com/futurice/pepperoni-app-kit
    2. cd pepperoni-app-kit && npm install
    3. cp env.example.js env.js
    4. cd ios && pod repo update && pod install && cd -
    5. react-native run-ios

    Versions:

    • node: v6.3.0
    • npm: v3.10.3
    • ruby: v2.3.1
    • pod: 1.0.1
    • react-native-cli: v1.0.0
    • react-native: v0.29.0
    bug 
    opened by wujiang 23
  • Can't launch

    Can't launch

    Seem to get this problem

    Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/OneADay.app/Info.plist
    Print: Entry, ":CFBundleIdentifier", Does Not Exist
    
    setup issue 
    opened by jcampbell05 21
  • Build issues with Lock

    Build issues with Lock

    Any ideas?

    :app:bundleDebugJsAndAssets SKIPPED :app:processDebugManifest UP-TO-DATE :app:processDebugResources /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:2 : Error retrieving parent for item: No resource found that matches the given name 'Lock.Theme'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:12:17-33 : No resource found that matches the given name: attr 'Auth0.Background'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:15:17-36 : No resource found that matches the given name: attr 'Auth0.CredentialBox'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:16:17-38 : No resource found that matches the given name: attr 'Auth0.CredentialField'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:17:17-44 : No resource found that matches the given name: attr 'Auth0.CredentialField.Email'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:18:17-47 : No resource found that matches the given name: attr 'Auth0.CredentialField.Password'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:19:17-47 : No resource found that matches the given name: attr 'Auth0.CredentialField.Username'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:20:17-30 : No resource found that matches the given name: attr 'Auth0.Message'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:13:17-41 : No resource found that matches the given name: attr 'Auth0.PrimaryButtonStyle'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:14:17-43 : No resource found that matches the given name: attr 'Auth0.SecondaryButtonStyle'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:21:17-38 : No resource found that matches the given name: attr 'Auth0.Separator.Color'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:10:17-33 : No resource found that matches the given name: attr 'Auth0.Title.Icon'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:11:17-33 : No resource found that matches the given name: attr 'Auth0.Title.Text'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:71:17-44 : No resource found that matches the given name: attr 'com_auth0_errorIconDrawable'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:70:17-45 : No resource found that matches the given name: attr 'com_auth0_normalIconDrawable'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:71:17-44 : No resource found that matches the given name: attr 'com_auth0_errorIconDrawable'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:70:17-45 : No resource found that matches the given name: attr 'com_auth0_normalIconDrawable'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:71:17-44 : No resource found that matches the given name: attr 'com_auth0_errorIconDrawable'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:70:17-45 : No resource found that matches the given name: attr 'com_auth0_normalIconDrawable'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:2 : Error retrieving parent for item: No resource found that matches the given name 'Lock.Theme.Title.Icon'. /Users/giro/stardust-app/android/app/src/main/res/values/styles.xml:2 : Error retrieving parent for item: No resource found that matches the given name 'Lock.Theme.Title.Text'.

    :app:processDebugResources FAILED

    FAILURE: Build failed with an exception.

    • What went wrong: Execution failed for task ':app:processDebugResources'.

      com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/local/opt/android-sdk/build-tools/23.0.1/aapt'' finished with non-zero exit value 1

    • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    BUILD FAILED

    Total time: 9.109 secs Could not install the app on the device, read the error above for details. Make sure you have an Android emulator running or a device connected and have set up your Android development environment: https://facebook.github.io/react-native/docs/android-setup.html vlt062:stardust-app giro$

    opened by GeoffreyPlitt 15
  • Error while building the ios app

    Error while building the ios app

    I can build some other react native projects, but when i am building pepperoni i am getting following error:

    `=== BUILD TARGET RCTVibration OF PROJECT RCTVibration WITH CONFIGURATION Debug ===

    Check dependencies

    ** BUILD FAILED **

    The following build commands failed: CompileC /Users/mm/Personal/projects/pepperoni-app-kit/ios/build/Build/Intermediates/A0RNLock.build/Debug-iphonesimulator/A0RNLock.build/Objects-normal/x86_64/A0LockReact.o A0RNLock/Core/A0LockReact.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (1 failure) Installing build/Build/Products/Debug-iphonesimulator/Kindling.app An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2): Failed to install the requested application An application bundle was not found at the provided path. Provide a valid path to the desired application bundle. Print: Entry, ":CFBundleIdentifier", Does Not Exist /Users/mm/Personal/projects/pepperoni-app-kit/node_modules/react-native/node_modules/promise/lib/done.js:10 throw err; ^

    Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/Kindling.app/Info.plist Print: Entry, ":CFBundleIdentifier", Does Not Exist

    at checkExecSyncError (child_process.js:441:13)
    at Object.execFileSync (child_process.js:461:13)
    at _runIOS (runIOS.js:91:34)
    at runIOS.js:24:5
    at tryCallTwo (/Users/mm/Personal/projects/pepperoni-app-kit/node_modules/react-native/node_modules/promise/lib/core.js:45:5)
    at doResolve (/Users/mm/Personal/projects/pepperoni-app-kit/node_modules/react-native/node_modules/promise/lib/core.js:200:13)
    at new Promise (/Users/mm/Personal/projects/pepperoni-app-kit/node_modules/react-native/node_modules/promise/lib/core.js:66:3)
    at Array.runIOS (runIOS.js:23:10)
    at Object.run (/Users/mm/Personal/projects/pepperoni-app-kit/node_modules/react-native/local-cli/cli.js:87:13)
    at Object.<anonymous> (/usr/local/lib/node_modules/react-native-cli/index.js:88:7)`
    
    opened by maephisto 14
  • Upgrade react-native to v0.26.2 and react to v15.0.2

    Upgrade react-native to v0.26.2 and react to v15.0.2

    • cannot update react further since v15.1.0 has a bug that impact react-native
    • import propTypes from react
    • remove unused react-dom
    • upgrade dev-dependencies react test libraries

    tested on real Android device. Maybe someone can help me test on iPhone or simulator since I don't have a mac available right now...

    opened by fabriziomoscon 11
  • How to replace Auth0

    How to replace Auth0

    Auth0 seems to have its own modal forms for authentication. I want to use my own authentication on my own server and I want to build the forms myself.

    1. How would be the best way to get rid of Auth0. I'm worried that if I tamper too much with the code I'll have an even harder time when I want to cherry pick/merge newer pepperoni versions.
    2. I want my login screens (signin/signup/reset/etc) at the root of the navigation. But I also want to use tabs in the main screen. How would be a good way to implement this?

    Would the following make sense? I'll have two roots. I.e. at initialization I'll just have my login route in the navigationState, but after a successful authentication I would force a new "initialState" upon the navigator. Also, a logout would clear the navigation state again and reinstate the initial login route.

    Thanks.

    question 
    opened by msageryd 9
  • [ROADMAP] Navigation

    [ROADMAP] Navigation

    I am looking forward to the new navigation library announced here: https://github.com/facebook/react-native/wiki/Roadmap

    Right now there are a large number of navigation libraries. We don't think one navigation library will be enough for every use case, but we do think we can make it better. The goal is for this new navigation library to be ideal for apps that handle navigation in JavaScript. Once it is released and stable, we can deprecate Navigator, NavigationExperimental, and ExNavigation.

    opened by fabriziomoscon 8
  • Can't run this on 0.26 - naming collision

    Can't run this on 0.26 - naming collision

    Hi,

    I have tried it on 0.26 today and I couldn't make the "npm start" and it throws me an error as below,

    Failed to build DependencyGraph: @providesModule naming collision: Duplicate module name: ReactDOMOption Paths: /home/sid/react/pepperoni-app-kit/node_modules/react/lib/ReactDOMOption.js collides with /home/sid/react/pepperoni-app-kit/node_modules/react-native-mock/node_modules/react/lib/ReactDOMOption.js

    This error is caused by a @providesModule declaration with the same name accross two different files. Error: @providesModule naming collision: Duplicate module name: ReactDOMOption Paths: /home/sid/react/pepperoni-app-kit/node_modules/react/lib/ReactDOMOption.js collides with /home/sid/react/pepperoni-app-kit/node_modules/react-native-mock/node_modules/react/lib/ReactDOMOption.js

    This error is caused by a @providesModule declaration with the same name accross two different files. at HasteMap._updateHasteMap (/home/sid/react/pepperoni-app-kit/node_modules/react-native/node_modules/node-haste/lib/DependencyGraph/HasteMap.js:160:15) at /home/sid/react/pepperoni-app-kit/node_modules/react-native/node_modules/node-haste/lib/DependencyGraph/HasteMap.js:125:25

    opened by sudharsan1988 8
  • Problem running react-native run-ios

    Problem running react-native run-ios

    Hello,

    I've just tried a fresh clone of the project and followed the getting started instructions but am getting blocked by this error

    Can't find variable Symbol

    Tapping the first cell on this screenshot points to this area

    var isEffectSymbol = Symbol('isEffect');

    image

    I performed the steps exactly as mentioned on Readme

    setup issue 
    opened by osolano 7
  • upgrade to react-native v0.35.0

    upgrade to react-native v0.35.0

    Let's upgrade React-Native to v0.35.0 before we can get other things rolling.

    Please make sure this "makes sense", mostly just looking at this on local iOS/Android simulators and checking the counter and stuff.

    ready for review 
    opened by justinwoo 7
  • The app feels slow for iPhone 5S (debug mode)

    The app feels slow for iPhone 5S (debug mode)

    Hey Guys, my first experiments with RN was a very simple Tabs Apps without stores and so on. Then I discovered pepperoni with all the good practices and the proper architecture.

    But my first impression on a device is, that the app feels very slow on an iPhone 5S!

    Has somebody else the same feeling?

    opened by ghost 6
  • Bump qs and react-native

    Bump qs and react-native

    Bumps qs to 6.5.3 and updates ancestor dependency react-native. These dependencies need to be updated together.

    Updates qs from 6.5.1 to 6.5.3

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge`: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main

    6.5.2

    • [Fix] use safer-buffer instead of Buffer constructor
    • [Refactor] utils: module.exports one thing, instead of mutating exports (#230)
    • [Dev Deps] update browserify, eslint, iconv-lite, safer-buffer, tape, browserify
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Updates react-native from 0.49.3 to 0.70.6

    Release notes

    Sourced from react-native's releases.

    0.70.6

    Fixed

    • Fixed regression: @​jest/create-cache-key-function dependency was inadvertedly bumped to 29.x. We are bringing it back to 27.0.1. (fb0e88beb9 by @​kelset)

    Changed

    iOS specific


    You can participate in the conversation on the status of this release in this discussion


    To help you upgrade to this version, you can use the upgrade helper ⚛️


    You can find the whole changelog history in the changelog.md file.

    0.70.5

    Hotfix

    This version is a patch release addressing the Android build issue that has been ongoing since Nov 4th 2022. If you are on 0.70.x, update to this version to fix it.

    If you are on an older version of React Native, refer to this issue for details and the workaround you can apply in your project.


    You can participate in the conversation on the status of this release in this discussion


    To help you upgrade to this version, you can use the upgrade helper ⚛️


    You can find the whole changelog history in the changelog.md file.

    0.70.4

    ... (truncated)

    Changelog

    Sourced from react-native's changelog.

    v0.70.6

    Fixed

    • Fixed regression: @​jest/create-cache-key-function dependency was inadvertedly bumped to 29.x. We are bringing it back to 27.0.1. (fb0e88beb9 by @​kelset)

    Changed

    iOS specific

    v0.70.5

    Fixed

    v0.70.4

    Changed

    Fixed

    iOS specific

    v0.70.3

    Fixed

    • Stop styles from being reset when detaching Animated.Values in old renderer (2f58e52006 by @​javache)
    • Revert "Fix TextInput dropping text when used as uncontrolled component with defaultValue" to fix TextInputs not being settable to undefined programmatically (e2645a5) by Garrett Forbes Monroe

    Android specific

    iOS specific

    ... (truncated)

    Commits
    • 49dd38f [0.70.6] Bump version numbers
    • fb0e88b [LOCAL] correct fix: bring back jest cache but on the right version
    • c563759 [LOCAL] Bump git checkout cache key
    • 69ce989 Revert "[0.70.6] Bump version numbers"
    • 02a388f [0.70.6] Bump version numbers
    • ef29c9b [LOCAL] remove regression: unwanted @​jest/create-cache-key-function dependency
    • 9bcc5e0 [LOCAL] Bump CLI to 9.3.2
    • 11473c3 Add support Promise.any out of box (#35080)
    • 3f1c55b Update ruby codegen to cleanup build folder. (#34398)
    • 35fa47b [0.70.5] Bump version numbers
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by fb, a new releaser for react-native since your current version.


    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump xmldom and react-native

    Bump xmldom and react-native

    Removes xmldom. It's no longer used after updating ancestor dependency react-native. These dependencies need to be updated together.

    Removes xmldom

    Updates react-native from 0.49.3 to 0.70.2

    Release notes

    Sourced from react-native's releases.

    0.70.2

    Added

    iOS specific

    Changed

    Fixed

    Android specific

    • Fix port as -1 if dev server without specifying port on Android (3d7e1380b4 by @​Kudo)

    You can participate in the conversation on the status of this release in this discussion.


    To help you upgrade to this version, you can use the upgrade helper ⚛️


    You can find the whole changelog history in the changelog.md file.

    0.70.1

    Added

    Changed

    Fixed

    ... (truncated)

    Changelog

    Sourced from react-native's changelog.

    v0.70.2

    Added

    iOS specific

    Changed

    Fixed

    Android specific

    • Fix port as -1 if dev server without specifying port on Android (3d7e1380b4 by @​Kudo)

    v0.70.1

    Added

    Changed

    Fixed

    Android specific

    iOS specific

    ... (truncated)

    Commits
    • b9c2975 [0.70.2] Bump version numbers
    • 13a2b11 Minor: Rename AccessibilityInfo.sendAccessibilityEvent_unstable to sendAccess...
    • 2de4cf0 chore(deps): bump CLI to 9.1.3 and Metro to 0.72.3 (#34803)
    • 7b53a24 Fix port as -1 if dev server without specifying port on Android (#34705)
    • b03f536 fix: KeyboardAvoidingView height when "Prefer Cross-Fade Transitions" is enab...
    • 764f584 Let ScrollView Know About Keyboard Opened Before Mount
    • 75d5679 feat: Add support for "Prefer Cross-Fade Transitions" into AccessibilityInfo ...
    • 73e5533 Add a pseudo flow declaration for AccessibilityInfo
    • 9fd7643 Revert "fix: KeyboardAvoidingView height when "Prefer Cross-Fade Transitions"...
    • a54ba33 [0.70.1] Bump version numbers
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by fb, a new releaser for react-native since your current version.


    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump css-what from 2.1.0 to 6.1.0

    Bump css-what from 2.1.0 to 6.1.0

    Bumps css-what from 2.1.0 to 6.1.0.

    Release notes

    Sourced from css-what's releases.

    v6.1.0

    • feat: Support pseudo elements with data (#762) 3be227a

    https://github.com/fb55/css-what/compare/v6.0.1...v6.1.0

    v6.0.1

    • Fix parsing column combinators after tag names 503570e

    https://github.com/fb55/css-what/compare/v6.0.0...v6.0.1

    v6.0.0

    Breaking Changes

    • Added ES6 module export (by @​spocke, fb55/css-what#680)
      • CommonJS is still provided for earlier NodeJS versions, but this change might cause issues with your build system. If they aren't trivially resolved, please open an issue!
    • Removed all options 5cad07b
      • BREAKING: Added a new value for ignoreCase: 'quirks' should ignore the case only in quirks mode.
      • BREAKING: Tags and attributes aren't lowercased anymore
    • Made selector types & actions enums 65121fe
    • Set empty namespace to null in attributes de367ca
    • Simplify stringify output 8a29466 b3e5e59

    Features

    • Support parsing column combinators 8030f67

    Fixes

    • Strip leading whitespace encapsulated in comments a812a1c
      • This used to be a way to sneak in descendant operators in front of selectors.

    Refactors

    • Switched parsing to numbers 65121fe
    • Restructured the parser to a big switch statement 7b6cc76

    Other

    • Adopted CSS Selector parsing tests from WPT 1881bba
    • Updated README to reflect changes b165a8d

    New Contributors

    Full Changelog: https://github.com/fb55/css-what/compare/v5.1.0...v6.0.0

    v5.1.0

    What's Changed

    Full Changelog: https://github.com/fb55/css-what/compare/v5.0.1...v5.1.0

    v5.0.1

    Fixes:

    ... (truncated)

    Commits
    • ee41dda 6.1.0
    • 3be227a feat: Support pseudo elements with data (#762)
    • 13ffc5b build(deps-dev): bump @​typescript-eslint/parser from 5.16.0 to 5.17.0 (#760)
    • 7d0cc2f build(deps-dev): bump @​typescript-eslint/eslint-plugin (#759)
    • 389d1b3 build(deps-dev): bump eslint from 8.11.0 to 8.12.0 (#758)
    • afd14e7 build(deps-dev): bump prettier from 2.6.0 to 2.6.1 (#757)
    • a1542de build(deps-dev): bump typescript from 4.6.2 to 4.6.3 (#756)
    • 41d9752 build(deps-dev): bump ts-jest from 27.1.3 to 27.1.4 (#755)
    • fed0407 build(deps): bump minimist from 1.2.5 to 1.2.6 (#754)
    • 96a2408 build(deps-dev): bump @​types/node from 17.0.22 to 17.0.23 (#753)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump moment from 2.19.1 to 2.29.4

    Bump moment from 2.19.1 to 2.29.4

    Bumps moment from 2.19.1 to 2.29.4.

    Changelog

    Sourced from moment's changelog.

    2.29.4

    • Release Jul 6, 2022
      • #6015 [bugfix] Fix ReDoS in preprocessRFC2822 regex

    2.29.3 Full changelog

    • Release Apr 17, 2022
      • #5995 [bugfix] Remove const usage
      • #5990 misc: fix advisory link

    2.29.2 See full changelog

    • Release Apr 3 2022

    Address https://github.com/moment/moment/security/advisories/GHSA-8hfj-j24r-96c4

    2.29.1 See full changelog

    • Release Oct 6, 2020

    Updated deprecation message, bugfix in hi locale

    2.29.0 See full changelog

    • Release Sept 22, 2020

    New locales (es-mx, bn-bd). Minor bugfixes and locale improvements. More tests. Moment is in maintenance mode. Read more at this link: https://momentjs.com/docs/#/-project-status/

    2.28.0 See full changelog

    • Release Sept 13, 2020

    Fix bug where .format() modifies original instance, and locale updates

    2.27.0 See full changelog

    • Release June 18, 2020

    Added Turkmen locale, other locale improvements, slight TypeScript fixes

    2.26.0 See full changelog

    • Release May 19, 2020

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump lodash from 4.17.13 to 4.17.21

    Bump lodash from 4.17.13 to 4.17.21

    Bumps lodash from 4.17.13 to 4.17.21.

    Commits
    • f299b52 Bump to v4.17.21
    • c4847eb Improve performance of toNumber, trim and trimEnd on large input strings
    • 3469357 Prevent command injection through _.template's variable option
    • ded9bc6 Bump to v4.17.20.
    • 63150ef Documentation fixes.
    • 00f0f62 test.js: Remove trailing comma.
    • 846e434 Temporarily use a custom fork of lodash-cli.
    • 5d046f3 Re-enable Travis tests on 4.17 branch.
    • aa816b3 Remove /npm-package.
    • d7fbc52 Bump to v4.17.19
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by bnjmnt4n, a new releaser for lodash since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
Futurice
Co-Creating a Resilient Future
Futurice
Barton Hammond 4.6k Jan 2, 2023
React Native Typescript starter kit / template (Redux Thunk + React Native Navigation v7 + TSLint)

React Native Template - TypeScript An opinionated React Native Starter Kit with React Native Navigation + Redux + Airbnb TSLint to build iOS and Andro

Amit Mangal 269 Dec 29, 2022
A react-native starter kit using RN0.63, Flipper support, LogBox, AndroidX, Hooks workflow, easy-peasy, code-push, Themes support and much more

cd A GOOD, up to date and easy to use starter and learning tool for beginners to intermediate. (IOS and Android ready) NEW React-Native updated to 0.6

HARISH JANGRA 254 Oct 29, 2022
React Native Starter Kit with Firebase Auth and Facebook Login

React Native Starter Kit ?? Bootstrap your app development by using this awesome react native starter kit, integrated with Firebase Auth and Facebook

Instamobile 393 Jan 2, 2023
Professional react-native starter kit with everything you'll ever need to deploy rock solid apps

WARNING This starter kit has been deprecated and is no longer being actively maintained by Ueno. React Native Starter The Professional React Native St

Ueno: A full-service agency 577 Oct 26, 2022
React Native Starter App with NativeBase + CodePush + Redux

Discontinued in favour of ReactNativeSeed.com Native Starter Kit v6.1.0 A Starter Kit for React Native + NativeBase + React Navigation + Redux + CodeP

null 1.6k Dec 9, 2022
Boilerplate for iOS app development with React Native, ES6 and Reflux

react-native, es6 & reflux boilerplate As the very long repo title indicates, this is a boilerplate repository that includes the following: ES6-to-ES5

Filipe Dobreira 141 Apr 5, 2022
Just a starter code to use redux and react-native with Login

React Native Redux Starter Code Login using Redux, Redux Saga and Redux Storage Good practice to create a Login using Redux, Redux Saga and Redux Stor

Sibelius' Projects 177 Oct 30, 2022
React native starter using typescript and redux-saga.

?? React Native Boilerplate - May 2021 React Native Boilerplate is a starting point for React Native application. This project is configured with redu

Vilmar Cabañero 2 Feb 3, 2022
🚀A powerful react native starter template that bootstraps development of your mobile application

React Native Starter ?? View Demo | Download | More templates | Support forum You're viewing the new and updated version of React Native Starter, prev

Flatlogic 2k Jan 5, 2023
react-native-hot-redux-starter ★135

React Native Hot Redux Starter (deprecated) Hot reloading is now built into React Native, so use that instead of this. This is a starter kit for build

Adam Pash 137 Feb 14, 2022
✨ A React Native Starter with 10+ commonly used libraries ✨

React Native Starter ✨ A React Native Starter with 10+ commonly used libraries ✨ Overview Anyone who had to setup a React Native project from scratch

Adegboye Josiah 29 Dec 26, 2022
Simple ReactNative starter with an opinionated folder structure for mobile development.

Simple React Native Starter Simple ReactNative starter with an opinionated folder structure for mobile development. Getting Started Ensure you've foll

Patrick Ofilada 73 Sep 6, 2022
Rhinos-app is a react-native app which uses react-native-web to achieve cross-platform design.

Rhinos-app Rhinos-app is a react-native app which uses react-native-web to achieve cross-platform design. Live Demo: web version ?? FEATURES: ?? ?? Ru

null 82 Feb 14, 2022
Demo app for React Native Elements (w/ React Native Web)

React Native Elements App Mobile App This is the Demo app for React Native Elements built with Expo. The purpose of this app is to demonstrate the usa

React Native Elements 1.3k Jan 6, 2023
React Native + React-Redux + Native Base + Code Push

React-Native-Starter-Pack React Native + React-Redux + Native Base + Code Push ##Setting Up Project npm i -g rninit rninit init <new-app-name> --sourc

Simar 40 Feb 14, 2022
cross platform app with react in a monorepo

react-native-web-workspace An minimum boilerplate that has configured a native app running also on the web in the same monorepo. For a thorough discus

Zetta Garcia 77 Jul 24, 2022
Infinite Red's cutting edge React Native project boilerplate, along with a CLI, component/model generators, and more!

Ignite - the hottest React Native boilerplate Battle-tested React Native boilerplate The culmination of five years of constant React Native developmen

Infinite Red, Inc. 14.7k Jan 5, 2023
Configuration to build React Native apps with ES6 using webpack and Babel

React Native in ES6 with webpack and Babel DEPRECATED! It's possible to write React Native apps in ES6+ using babel-loader and webpack. Check better a

Roman Liutikov 236 Feb 14, 2022