Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor!: rename --view to --is-view; update help & doc #439

Merged
merged 5 commits into from
Mar 17, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ Options:

-V, --version output the version number
--package-name <packageName> The full package name to be used in package.json. Default: react-native-(name in param-case)
--view Generate the package as a very simple native view component
--is-view Generate the package as a very simple native view component. Status: EXPERIMENTAL, with limited testing.
--object-class-name The name of the object class to be exported by both JavaScript and native code. Default: (name in PascalCase)
--native-package-id <nativePackageId> [Android] The native Java package identifier used for Android (Default: `com.reactlibrary`)
--platforms <platforms> Platforms the library module will be created for - comma separated (Default: `ios,android`)
Expand Down Expand Up @@ -130,7 +130,7 @@ createLibraryModule({
{
name: String, /* The name of the library (mandatory) */
packageName: String, /* The full package name to be used in package.json. Default: react-native-(name in param-case) */
view: Boolean, /* Generate the package as a very simple native view component (Default: false) */
isView: Boolean, /* Generate the package as a very simple native view component. Status: EXPERIMENTAL, with limited testing. (Default: false) */
objectClassName: String, /* The name of the object class to be exported by both JavaScript and native code. Default: (name in PascalCase) */
platforms: Array | String, /* Platforms the library will be created for. (Default: ['android', 'ios']) */
nativePackageId: String, /* [Android] The native Java package identifier used for Android (Default: `com.reactlibrary`) */
Expand Down Expand Up @@ -227,10 +227,12 @@ The example app shows the following indications:

### Example view module

EXPERIMENTAL feature with limited testing

__Create the module with an extremely simple view:__

```console
create-react-native-module --package-identifier io.mylibrary --view --generate-example CarolWidget
create-react-native-module --package-identifier io.mylibrary --is-view --generate-example CarolWidget
```

The module would be generated in the `react-native-carol-widget` subdirectory, and the example test app would be in `react-native-carol-widget/example`.
Expand Down
4 changes: 2 additions & 2 deletions lib/cli-command.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ ${postCreateInstructions(createOptions)}`);
command: '--package-name [packageName]',
description: 'The full package name to be used in package.json. Default: react-native-(name in param-case)',
}, {
command: '--view',
description: 'Generate the package as a very simple native view component',
command: '--is-view',
description: 'Generate the package as a very simple native view component. Status: EXPERIMENTAL, with limited testing.',
}, {
command: '--object-class-name [objectClassName]',
description: 'The name of the object class to be exported by both JavaScript and native code. Default: (name in PascalCase)',
Expand Down
8 changes: 4 additions & 4 deletions lib/lib.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ const generateWithNormalizedOptions = ({
authorName = DEFAULT_AUTHOR_NAME,
authorEmail = DEFAULT_AUTHOR_EMAIL,
license = DEFAULT_LICENSE,
view = false,
isView = false,
useAppleNetworking = false,
generateExample = DEFAULT_GENERATE_EXAMPLE,
exampleFileLinkage = false,
Expand All @@ -105,7 +105,7 @@ const generateWithNormalizedOptions = ({

name: ${name}
full package name: ${packageName}
is view: ${view}
is view: ${isView}
object class name: ${objectClassName}
Android nativePackageId: ${nativePackageId}
platforms: ${platforms}
Expand Down Expand Up @@ -169,7 +169,7 @@ const generateWithNormalizedOptions = ({
authorName,
authorEmail,
license,
view,
isView,
useAppleNetworking,
};

Expand Down Expand Up @@ -205,7 +205,7 @@ const generateWithNormalizedOptions = ({
const templateArgs = {
packageName,
objectClassName,
view,
isView,
useAppleNetworking,
exampleFileLinkage,
exampleName,
Expand Down
32 changes: 16 additions & 16 deletions templates/android.js
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,11 @@ afterEvaluate { project ->
`,
}, {
// for module without view:
name: ({ objectClassName, nativePackageId, view }) =>
!view &&
name: ({ objectClassName, nativePackageId, isView }) =>
!isView &&
`${platform}/src/main/java/${nativePackageId.split('.').join('/')}/${objectClassName}Module.java`,
content: ({ objectClassName, nativePackageId, view }) =>
!view &&
content: ({ objectClassName, nativePackageId, isView }) =>
!isView &&
`// ${objectClassName}Module.java

package ${nativePackageId};
Expand Down Expand Up @@ -197,11 +197,11 @@ public class ${objectClassName}Module extends ReactContextBaseJavaModule {
`,
}, {
// manager for view:
name: ({ objectClassName, nativePackageId, view }) =>
view &&
name: ({ objectClassName, nativePackageId, isView }) =>
isView &&
`${platform}/src/main/java/${nativePackageId.split('.').join('/')}/${objectClassName}Manager.java`,
content: ({ objectClassName, nativePackageId, view }) =>
view &&
content: ({ objectClassName, nativePackageId, isView }) =>
isView &&
`// ${objectClassName}Manager.java

package ${nativePackageId};
Expand Down Expand Up @@ -233,11 +233,11 @@ public class ${objectClassName}Manager extends SimpleViewManager<View> {
`,
}, {
// package for module without view:
name: ({ objectClassName, nativePackageId, view }) =>
!view &&
name: ({ objectClassName, nativePackageId, isView }) =>
!isView &&
`${platform}/src/main/java/${nativePackageId.split('.').join('/')}/${objectClassName}Package.java`,
content: ({ objectClassName, nativePackageId, view }) =>
!view &&
content: ({ objectClassName, nativePackageId, isView }) =>
!isView &&
`// ${objectClassName}Package.java

package ${nativePackageId};
Expand Down Expand Up @@ -265,11 +265,11 @@ public class ${objectClassName}Package implements ReactPackage {
`,
}, {
// package for manager for view:
name: ({ objectClassName, nativePackageId, view }) =>
view &&
name: ({ objectClassName, nativePackageId, isView }) =>
isView &&
`${platform}/src/main/java/${nativePackageId.split('.').join('/')}/${objectClassName}Package.java`,
content: ({ objectClassName, nativePackageId, view }) =>
view &&
content: ({ objectClassName, nativePackageId, isView }) =>
isView &&
`// ${objectClassName}Package.java

package ${nativePackageId};
Expand Down
4 changes: 2 additions & 2 deletions templates/example.js
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ module.exports = {
`,
}, {
name: ({ exampleName }) => `${exampleName}/App.js`,
content: ({ packageName, objectClassName, view }) =>
content: ({ packageName, objectClassName, isView }) =>
`/**
* Sample React Native App
*
Expand All @@ -203,7 +203,7 @@ module.exports = {
import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View } from 'react-native';
import ${objectClassName} from '${packageName}';` +
(!view
(!isView
? `

export default class App extends Component<{}> {
Expand Down
4 changes: 2 additions & 2 deletions templates/general.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ ${objectClassName};
}
}, {
// for module without view:
name: ({ view }) => !view && 'index.js',
name: ({ isView }) => !isView && 'index.js',
content: ({ objectClassName }) =>
`// main index.js

Expand All @@ -89,7 +89,7 @@ export default ${objectClassName};
`,
}, {
// for module with view:
name: ({ view }) => view && 'index.js',
name: ({ isView }) => isView && 'index.js',
content: ({ objectClassName }) =>
`// main index.js

Expand Down
8 changes: 4 additions & 4 deletions templates/ios.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ end
`,
}, {
// header for module without view:
name: ({ objectClassName, view }) => !view && `${platform}/${objectClassName}.h`,
name: ({ objectClassName, isView }) => !isView && `${platform}/${objectClassName}.h`,
content: ({ objectClassName }) => `// ${objectClassName}.h

#import <React/RCTBridgeModule.h>
Expand All @@ -45,7 +45,7 @@ end
`,
}, {
// implementation of module without view:
name: ({ objectClassName, view }) => !view && `${platform}/${objectClassName}.m`,
name: ({ objectClassName, isView }) => !isView && `${platform}/${objectClassName}.m`,
content: ({ objectClassName, useAppleNetworking }) => `// ${objectClassName}.m

#import "${objectClassName}.h"
Expand Down Expand Up @@ -79,7 +79,7 @@ RCT_EXPORT_METHOD(sampleMethod:(NSString *)stringArgument numberParameter:(nonnu
`,
}, {
// header for module with view:
name: ({ objectClassName, view }) => view && `${platform}/${objectClassName}.h`,
name: ({ objectClassName, isView }) => isView && `${platform}/${objectClassName}.h`,
content: ({ objectClassName }) => `// ${objectClassName}.h

#import <React/RCTViewManager.h>
Expand All @@ -90,7 +90,7 @@ RCT_EXPORT_METHOD(sampleMethod:(NSString *)stringArgument numberParameter:(nonnu
`,
}, {
// implementation of module with view:
name: ({ objectClassName, view }) => view && `${platform}/${objectClassName}.m`,
name: ({ objectClassName, isView }) => isView && `${platform}/${objectClassName}.m`,
content: ({ objectClassName }) => `// ${objectClassName}.m

#import "${objectClassName}.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ test('CLI creates correct view module package artifacts on file system using `--
// remove test artifacts just in case:
await fs.remove(modulePackageName);

await execa.command(`node ${path.resolve('bin/cli.js')} --view ${name}`);
await execa.command(`node ${path.resolve('bin/cli.js')} --is-view ${name}`);

const filesUnsorted = await readdirs(modulePackageName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ creates a React Native library module for one or more platforms
Options:
-V, --version output the version number
--package-name [packageName] The full package name to be used in package.json. Default: react-native-(name in param-case)
--view Generate the package as a very simple native view component
--is-view Generate the package as a very simple native view component. Status: EXPERIMENTAL, with limited testing.
--object-class-name [objectClassName] The name of the object class to be exported by both JavaScript and native code. Default: (name in PascalCase)
--native-package-id [nativePackageId] [Android] The native Java package identifier used for Android (default: \\"com.reactlibrary\\")
--platforms <platforms> Platforms the library module will be created for - comma separated (default: \\"ios,android\\")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ creates a React Native library module for one or more platforms
Options:
-V, --version output the version number
--package-name [packageName] The full package name to be used in package.json. Default: react-native-(name in param-case)
--view Generate the package as a very simple native view component
--is-view Generate the package as a very simple native view component. Status: EXPERIMENTAL, with limited testing.
--object-class-name [objectClassName] The name of the object class to be exported by both JavaScript and native code. Default: (name in PascalCase)
--native-package-id [nativePackageId] [Android] The native Java package identifier used for Android (default: \\"com.reactlibrary\\")
--platforms <platforms> Platforms the library module will be created for - comma separated (default: \\"ios,android\\")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ Object {
"description": "The full package name to be used in package.json. Default: react-native-(name in param-case)",
},
Object {
"command": "--view",
"description": "Generate the package as a very simple native view component",
"command": "--is-view",
"description": "Generate the package as a very simple native view component. Status: EXPERIMENTAL, with limited testing.",
},
Object {
"command": "--object-class-name [objectClassName]",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ test('create alice-bobbi view module with defaults', () => {

const options = {
name: 'alice-bobbi',
view: true,
isView: true,
};

return lib(options, inject)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ test('create alice-bobbi view module with example, with defaults', () => {
const options = {
name: 'alice-bobbi',
generateExample: true,
view: true,
isView: true,
};

return lib(options, inject)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ test('create alice-bobbi view module with example, with custom config options',
authorName: 'Alice',
authorEmail: 'contact@alice.me',
license: 'ISC',
view: true,
isView: true,
generateExample: true,
exampleName: 'test-demo',
exampleReactNativeTemplate: 'react-native@0.60',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ test('create alice-bobbi view module with config options for Android only', () =
authorName: 'Alice',
authorEmail: 'contact@alice.me',
license: 'ISC',
view: true,
isView: true,
};

return lib(options, inject)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ test('create alice-bobbi view module with config options for iOS only', () => {
authorName: 'Alice',
authorEmail: 'contact@alice.me',
license: 'ISC',
view: true,
isView: true,
};

return lib(options, inject)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ Array [
Object {
"option": Object {
"args": Array [
"--view",
"Generate the package as a very simple native view component",
"--is-view",
"Generate the package as a very simple native view component. Status: EXPERIMENTAL, with limited testing.",
[Function],
undefined,
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ Array [
Object {
"option": Object {
"args": Array [
"--view",
"Generate the package as a very simple native view component",
"--is-view",
"Generate the package as a very simple native view component. Status: EXPERIMENTAL, with limited testing.",
[Function],
undefined,
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ Array [
Object {
"option": Object {
"args": Array [
"--view",
"Generate the package as a very simple native view component",
"--is-view",
"Generate the package as a very simple native view component. Status: EXPERIMENTAL, with limited testing.",
[Function],
undefined,
],
Expand Down