create-react-native-module
Version:
Tool to create a React Native library module or view module with a single command
410 lines (338 loc) • 15.8 kB
Markdown
# Changelog
### 0.20.2
* fix: add `CHANGELOG.md` to files published by npm (and explicitly include `LICENSE`)
* fix: [nit] exclude `.eslint*.*` from npm published files (was part of `templates`)
### 0.20.1
* update package dependencies
- update execa -> ^5.1.1
- update fs-extra -> ^10.0.0
- update react-native-init-func -> ^0.0.6
### 0.20.0
#### Features
* BREAKING: rename some options (#431 & #439)
- rename --module-name option to --package-name (#431)
- rename --package-identifier option to --native-package-id (#431)
- rename --example-react-native-version to --example-react-native-template (#431)
- rename --view to --is-view; document this feature as EXPERIMENTAL; and update doc & help text (#439)
* BREAKING: remove prefix options (#432)
- remove --prefix option
- remove --module-prefix option
* BREAKING: use react-native-init-func to generate example app (#421)
* support more iOS source language extensions in generated podspec (#410)
#### Fixes
* loosen template React peer dependency (for React 17) (#440)
* nudge indenting of options in logging (#436)
* do not add react-native package prefix if not needed (#435)
* update example build & run info in README.md & log output (#427)
* remove an internal Promise reject parameter not needed (#417)
* use info for some more log output (#418)
* add comments to generated output
- add comment to main generated index.js (#413)
- add comments to generated Android output (#137)
- add comments to beginning of generated iOS output (#414)
* use outdent to fix indent of optional example Podfile (#412)
* resolve absolute paths in example metro watch folders (#405)
* add & update comments in build.gradle (#404)
* remove extra plugin items from build.gradle (#402)
* BREAKING: remove JCenter support - not needed and now deprecated (#401)
* remove extra import from generated code for Android (#368)
* BREAKING: update minimum Node.js version to 12 (#408)
* update package dependencies
- update log-symbols -> ^4.1.0 (#438)
- update update-notifier -> 5 (commit fb8542ee05295523b7f751487bf150efae1afc5b)
- update execa -> 5 (commit a3a7ab927d338435ef281baba05ef69888fc5fde)
- Update fs-extra -> ^9.1.0 (#398)
- Update pascal-case -> ^3.1.2 (#395)
- Update param-case -> ^3.0.4 (#394)
- Update jsonfile -> ^6.1.0 (#391)
- Update commander -> ^6.2.1 (#382)
* add & use console package (#375)
* minor template cleanup (#332)
#### Docs
* update general status for React Native 0.60/0.63/0.64 (commit 23bdce59b840687b08268a6daa2991fa04b4802c)
* console highlighting in README.md (#434)
* apply general documentation updates - February 2021 (#424)
### 0.19.0
* remove outdated info from README.md (#355)
* remove extra blank line from generated iOS module (#354)
* Update execa -> ^4.0.1 - dependency (#350)
* add swift search paths to iOS pbxproj (#349)
* add pbxproj build updates (#348)
* remove sources from generated iOS pbxproj (#346)
* fix minor indenting issue in ios pbxproj (#345)
* export objectClassName prop in windows template (#344)
* cleanup object class name references (#343)
* log generated example React Native version (#340)
* major: object class name updates (#338)
* fix iOS podspec for C sources (#334)
* major: remove generated .gitattributes artifact (#327)
* use package files entry instead of .npmignore (#326)
* update create options (#325)
* update badges in README.md (#322)
* update log of create parameters (#318)
* Update jsonfile -> ^6.0.1 (#317)
* update commander -> ^5.1.0
* update log-symbols -> 4
* update fs-extra -> 9
* fix(deps): update execa -> 4 (#315)
* major: update minimum Node.js version to 10.20 (#316)
### 0.18.0
* generate example with symlink by default, with multiple workarounds in example metro.config.js (#309)
### 0.17.1
* log & document issue with example lib dependencies (#310)
### 0.17.0
* bugfix: quick fixes to handle CLI args errors (#306)
* test cleanup: rename tests/with-mocks/cli/command/func directory
* chore: regenerate yarn.lock
* chore: jest@^25.2.7 update in devDependencies
* add & update iOS podspec license comments (#258)
* doc: minimum React Native version on 1 line (#302)
* doc: fix API & option descriptions (#301)
* chore: update change case dependencies (#298)
* chore: quick commander@5 update (#297)
* chore: add PR merge action (#296)
* chore: jest@25 update in devDependencies
* chore: update eslint items in devDependencies
* chore: @stryker-mutator/... 3.1.0 in devDependencies
* chore: add `brodybits-*` to test action branches
* add package engines & use please-upgrade-node (#295)
* cleanup: remove .travis.yml which is no longer needed
* testing: add Node.js test action to GitHub workflows (#294)
* testing: quick test workaround for Node.js 8 vs ...
* cleanup: remove library API support for namespace (#276)
* testing: updates to setup of Stryker Mutator (#272)
* remove Windows (C#) support (#264)
### 0.16.0
* use react-native@latest in example by default (#263)
* doc: update alternatives in README.md (#262)
* cleanup: refactoring: move `require('uuid')` out of templates (#261)
* doc: example app doc updates (quick updates) (#260)
* log more example app info in the end (#259)
### 0.15.0
* no log of generated example options unless enabled (#257)
* show hint to generate example, if needed in CLI (#256)
* chore: Bump jsonfile from 5.0.0 to 6.0.0 (#252)
* doc: fix default React Native version in lib API (#255)
* chore: Bump update-notifier from 3.0.1 to 4.1.0 (#250)
### 0.14.1
* bugfix: fix license in iOS podspec (#253)
### 0.14.0
* support React Native 0.61; drop React Native 0.59 (#244)
* chore: uuid 3.4.0 update in package dependencies (#243)
* chore: [dev] @stryker-mutator 2.5.0 updates (#242)
* chore: [dev] eslint-plugin-node@11 update (#241)
* chore: Bump eslint-plugin-import from 2.18.2 to 2.20.1 (#234)
* chore: Bump eslint from 6.6.0 to 6.8.0 (#215)
* chore: [Security - dev] Bump handlebars from 4.1.2 to 4.7.3 (#235)
* chore: add `yarn-error.log` to .gitignore (#239)
### 0.13.0
* Use javaCompileProvider in Android template (PR #120)
### 0.12.0
* cleanup: consistent iOS method spacing in generated code (#148)
* cleanup: add references & links to generated build.gradle (see PR #152)
* cleanup: move imports in generated android/build.gradle (see PR #141)
* chore: Bump execa from 2.0.4 to 3.3.0 (#180)
* cleanup: move constants in generated android/build.gradle (#140)
* cleanup: remove trailing tabs from generated podspec file (#146)
* cleanup: replace --use-cocoapods with 2 options (#167)
* make tvOS support optional (#126)
* doc fixes for tvOS platform fork (quick fixes) (#186)
* doc: Manual installation gone in generated README.md (#169)
* chore: Bump commander from 3.0.1 to 3.0.2
* lint: Bump eslint from 6.4.0 to 6.6.0
* testing: update stryker.conf.js to include templates (#170)
### 0.11.1
* cleanup: fix & clarify Android package identifier description text (#155)
* doc: Update description of `--use-cocoapods` option (#166)
* testing: test CLI command func error with logging (#162)
* fix async CLI func tests again (#160)
* CLI command function test fixes (#158)
* lint: eslint-plugin-node@10 update in devDependencies (#157)
* cleanup: move internal `npmAddScriptSync` function (#150)
* document minimum react-native-tvos version (#131)
### 0.11.0
* Update android build.gradle template setup - wraps the buildscripts dependencies in a conditional (PR #135)
* cleanup: cleanup generated android/build.gradle artifact (#138)
* bugfix: no sudo in generated doc for Android (#136)
* doc: License section back at the bottom (now as a link) (#124)
* cleanup: no-useless-escape eslint rule fix in templates (#123)
* testing: CLI create integration testing (#114)
* testing: test updates for Windows, now covered by Travis CI (#118)
* testing: Travis CI matrix, with macOS added (#117)
* testing: Stryker Mutator 2.1.0 tool updates (#116)
### 0.10.2
* unit test of missing CLI args using mocks (#111)
* bugfix: Fix crash when no args passed in
* remove duplicate `authorEmail` entry from logging (#106)
### 0.10.1
* cleanup: do not use defaults for normalized options
* testing: test prefix: null with logging using mocks
* testing: test create with example with prefix: null
* testing: test logging with custom prefix 'ABC' using mocks
* cleanup: no normalization of platforms in lib/cli-command.js
* testing: test bogus values of platforms with mocking
* testing: unit test bogus values of platforms with injection
* doc: general status updates for 0.10.x (#104)
### 0.10.0
* Update minimum iOS version to 9.0 (#92)
* document status of out-of-tree platform support (#97)
* doc React Native 0.60 support quirk (#96)
* Adding tvOS support (#91)
* commander@3 update (#80)
* testing: add test with name in camel case
* testing: test create with custom moduleName
* testing: test with custom modulePrefix (for Android & iOS)
* testing: test with custom prefix for Android & iOS
* testing: test generated example with `useCocoapods: true`
* testing: test with `useCocoapods: true` for iOS
### 0.9.2
* cleanup: remove code not needed from lib/normalized-options.js (#85)
### 0.9.1
* test & doc lib API for platforms: Array | String
* cleanup: remove code not needed from generateLibraryModule
* cleanup: comment out non-functioning CLI help code
* cleanup: remove code not needed from npmAddScriptSync.js
* testing: test lib with bogus name: null option
* testing: mocked example logging test updates
* testing: add missing packageIdentifier setting to lib test
* testing: test mocked example yarn add error with logging
* testing: test example `yarn add` failure
* testing: test error handling for missing tools
* testing: test recovery from missing example package scripts
* testing: test example package JSON errors
* test cleanup: reorganize tests with mocks into tests/with-mocks
* test cleanup: rename ioMocks to ioInject in tests/with-injection
* test cleanup: reorganize tests with injection
* testing: add Stryker Mutator for mutation testing
### 0.9.0
* testing: test lib/cli-program.js with mocking on Android
* cleanup: Split up cli.js
* testing: quick integration test of `./cli.js --help`
* chore: execa@2.0.4 update
* chore: uuid@3.3.3 update
* quick internal cleanup for synchronous commandSync (#74)
### 0.8.0
* testing: Quick mocking of console logging in a single test
* cleanup: cleanup internal lib function names & arguments
* testing: move injection I/O options into a hidden argument
* testing: test lib-cli-command func using Jest mock
* fix func in lib/cli-command.js to return a promise
* testing: add tests/mocked-lib-windows-defaults
* testing: cleanup mocked-lib-with-config-options-windows
* testing: fully mocked library test for Windows
* testing: fully mocked library test with example
* cleanup: simpler ENOENT error message test
* cleanup: throw TypeError in case of missing name
* remove mockable jsonfile option from lib API
* cleanup: cleanup imports in lib/lib.js
* Use real execa in place of fake internal execa object
* Drop support for React Native pre-0.59
* testing: Windows unit test with config options (#70)
* testing: check cli-command object
* testing: jsonfile test updates & fixes (#68)
* cleanup internal updatePlatformInFile function (#64)
* cleanup `templates/*.js`: remove zero max-len lines (#62)
* testing: add and move some test scripts
* Merge pull request #59 from brodybits/general-test-updates
### 0.7.0
* More README.md updates for 0.7.0 (#56)
* README.md updates for 0.7.0
* MIT license by default
* Add tests with generateExample: true setting
* Add mockable jsonfile object to the library API
* fake execa object that can be mocked from the API
* factor out lib/utils/exec.js
* Fix handling of default platforms value in lib API
* Add *limited* jest testing with snapshots
* do lint in test script
* Add mockable fs Object option to library API
* Fix internal renderTemplateIfValid function
* remove mkdirp (no longer needed)
* include .swift files in podspec
* remove createFile and createFolder, in favor of using fs-extra
* Remove unused utils hasPrefix and isUppercase
### 0.6.1
* restore cli.js in package.json files list, which was accidentally removed during cleanup in PR #33 (#49)
### 0.6.0
* Version 0.6.0 status in README.md (#44)
* chore: remove & reinstall eslint packages in devDependencies to resolve Yarn audit issues
* cleanup: remove package items not needed (#35)
* cleanup: move some JavaScript modules into lib subdirectory (#33)
* Gradle updates in android.js (#24)
* Add exampleReactNativeVersion option
* Fix some more fields in generated podspec
* factor duplicated keys out of command.js
* Updated TODO comments in generated code
* Completely remove npm fallback for example
* Update doc for exampleName & useCocoapods options
* Cleanup & fix generateExampleWithName in lib.js
* update-notifier@3 update
* Bump version to 0.6.0-dev
* eslint updates in devDependencies
* Other lint fixes
* Quick lint fixes to templates/ios.js
* Fix hardcoded target name in example Podfile
* Remove the Podfile from library ios project, because it messes up example build
* Make TestLibrary.xcworkspace compilable on its own
* Fix formatting
* Add use cocoapods flag
* Add AFNetworking test code
* Add ios example podfile
* Add description, which is inherited and required by podspec
* Add AFNetworking pod to library as an example
* Set podspec name to module name for conventions
* Pass exampleName to comments in example template
* Pass exampleName to example template
* Fix .npmignore template to support custom example name
* support setting example project name with example project name parameter
### 0.5.0
* Update devDependencies for React Native 0.59.4
* Other generated Android build updates from RN 0.59
* Add and update badges (#16)
* Update android.js - upgrade gradle plugin to newest version
### 0.4.1
* bugfix: add normalized-options.js to files entry (#13)
### 0.4.0
* doc: Add some badges (#11)
* add @brodybits to LICENSE (#10)
* Fix defaults & help text in command.js & README.md
* Updated generated dependencies - now more flexible
* chore: commander@2.20.0 update
* chore: update devDependencies
* lib.js log updates
* chore: lib.js cleanup & refactoring
* correct module name from normalized-options.js
* Update programmatic function name
* do not import hasPrefix in lib.js
* Add '-V, --version' option
* Add exception handling when there is no library's name (frostney/react-native-create-library#103)
### 0.3.0
* add --module-name option
* blank prefix by default
* Fix known inconsistencies in documented options
* Remove --override-prefix check
* Update generated build.gradle to match RN 0.58.6
* chore: resolve eslint issues
### 0.2.0
* lint: use eslint@5 with (semi)standard config, with no failures
* lint: add missing semicolons
* chore: update all dependencies (except for `mkdirp`) & regenerate yarn.lock
* test: Update npm test script to exit with an error
### 0.1.0
based on react-native-create-library commit e08c03cad
* Update package description & keywords
* Add example app instructions & other doc fixes
* native view option on Android & iOS
* lib.js support conditionally skipping templates
* Remove deprecated createJSModules code on Android
* Remove methodQueue method on iOS
* Drop `#if __has_include` condition on iOS
* Check for tools needed to generate example project
* document tools needed to generate example project
* add missing newlines to generated Android code
* sample method callbacks received in example app
* lib.js compute class name & namespace exactly once
* automatic module name in `examples_postinstall.js`
* remove extra spacing from the output
* remove docs/usage.gif
* Update android.js - Upgrade android gradle plugin to latest version