Skip to content

Commit ccdb618

Browse files
committed
feat: add kotlin support to the fabric template
1 parent cbaecd2 commit ccdb618

File tree

39 files changed

+227
-81
lines changed

39 files changed

+227
-81
lines changed

.github/workflows/build-templates.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,10 @@ jobs:
3333
language: java-swift
3434
- type: module-mixed
3535
language: kotlin-swift
36-
- type: view-new
37-
language: kotlin-objc
3836
- type: view-new
3937
language: java-swift
4038
- type: view-new
4139
language: kotlin-swift
42-
- type: view-mixed
43-
language: kotlin-objc
4440
- type: view-mixed
4541
language: java-swift
4642
- type: view-mixed
@@ -90,7 +86,7 @@ jobs:
9086
run: |
9187
WORK_DIR=tmp-${{ matrix.type }}-${{ matrix.language }}
9288
93-
EXPERIMENTAL_FABRIC_ENABLED=1 ./packages/create-react-native-library/bin/create-react-native-library "$WORK_DIR" \
89+
./packages/create-react-native-library/bin/create-react-native-library "$WORK_DIR" \
9490
--slug @bob/react-native-test \
9591
--description test \
9692
--author-name test \

packages/create-react-native-library/src/index.ts

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ const KOTLIN_FILES = {
5555
module_new: path.resolve(__dirname, '../templates/kotlin-library-new'),
5656
module_mixed: path.resolve(__dirname, '../templates/kotlin-library-mixed'),
5757
view_legacy: path.resolve(__dirname, '../templates/kotlin-view-legacy'),
58+
view_mixed: path.resolve(__dirname, '../templates/kotlin-view-mixed'),
59+
view_new: path.resolve(__dirname, '../templates/kotlin-view-new'),
5860
} as const;
5961

6062
const SWIFT_FILES = {
@@ -108,11 +110,7 @@ const LANGUAGE_CHOICES: {
108110
types?: ProjectType[];
109111
}[] = [
110112
{ title: 'Java & Objective-C', value: 'java-objc' },
111-
{
112-
title: 'Kotlin & Objective-C',
113-
value: 'kotlin-objc',
114-
types: ['module-legacy', 'module-mixed', 'module-new', 'view-legacy'],
115-
},
113+
{ title: 'Kotlin & Objective-C', value: 'kotlin-objc' },
116114
{
117115
title: 'Java & Swift',
118116
value: 'java-swift',
@@ -168,20 +166,16 @@ const TYPE_CHOICES: {
168166
value: 'module-new',
169167
description: NEWARCH_DESCRIPTION,
170168
},
171-
...(process.env.EXPERIMENTAL_FABRIC_ENABLED === '1'
172-
? ([
173-
{
174-
title: 'Fabric view with backward compat',
175-
value: 'view-mixed',
176-
description: BACKCOMPAT_DESCRIPTION,
177-
},
178-
{
179-
title: 'Fabric view',
180-
value: 'view-new',
181-
description: NEWARCH_DESCRIPTION,
182-
},
183-
] as const)
184-
: []),
169+
{
170+
title: 'Fabric view with backward compat',
171+
value: 'view-mixed',
172+
description: BACKCOMPAT_DESCRIPTION,
173+
},
174+
{
175+
title: 'Fabric view',
176+
value: 'view-new',
177+
description: NEWARCH_DESCRIPTION,
178+
},
185179
];
186180

187181
const args: Record<ArgName, yargs.Options> = {
@@ -585,18 +579,7 @@ async function create(argv: yargs.Arguments<any>) {
585579
const templateType = `${moduleType}_${architecture}` as const;
586580

587581
if (options.project.kotlin) {
588-
switch (templateType) {
589-
case 'module_legacy':
590-
case 'module_mixed':
591-
case 'module_new':
592-
case 'view_legacy':
593-
await copyDir(KOTLIN_FILES[templateType], folder);
594-
break;
595-
default:
596-
throw new Error(
597-
`Kotlin template for ${templateType} has not been implemented`
598-
);
599-
}
582+
await copyDir(KOTLIN_FILES[templateType], folder);
600583
} else {
601584
await copyDir(JAVA_FILES[templateType], folder);
602585
}

packages/create-react-native-library/templates/java-library-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.<%- project.package -%>;
1+
package com.<%- project.package %>;
22

33
import androidx.annotation.NonNull;
44

packages/create-react-native-library/templates/java-library-legacy/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.<%- project.package -%>;
1+
package com.<%- project.package %>;
22

33
import androidx.annotation.NonNull;
44

packages/create-react-native-library/templates/java-library-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package com.<%- project.package -%>;
1+
package com.<%- project.package %>;
22

33
import androidx.annotation.NonNull;
4+
45
import com.facebook.react.bridge.Promise;
56
import com.facebook.react.bridge.ReactApplicationContext;
67
import com.facebook.react.bridge.ReactMethod;

packages/create-react-native-library/templates/java-library-mixed/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package com.<%- project.package -%>;
1+
package com.<%- project.package %>;
22

33
import androidx.annotation.Nullable;
4+
45
import com.facebook.react.bridge.NativeModule;
56
import com.facebook.react.bridge.ReactApplicationContext;
67
import com.facebook.react.module.model.ReactModuleInfo;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.<%- project.package -%>;
1+
package com.<%- project.package %>;
22

33
import com.facebook.react.bridge.ReactApplicationContext;
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.<%- project.package -%>;
1+
package com.<%- project.package %>;
22

33
import com.facebook.react.bridge.ReactApplicationContext;
44
import com.facebook.react.bridge.ReactContextBaseJavaModule;

packages/create-react-native-library/templates/java-library-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Module.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.<%- project.package -%>;
1+
package com.<%- project.package %>;
22

33
import androidx.annotation.NonNull;
44

packages/create-react-native-library/templates/java-library-new/android/src/main/java/com/{%- project.package_dir %}/{%- project.name %}Package.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package com.<%- project.package -%>;
1+
package com.<%- project.package %>;
22

33
import androidx.annotation.Nullable;
4+
45
import com.facebook.react.bridge.NativeModule;
56
import com.facebook.react.bridge.ReactApplicationContext;
67
import com.facebook.react.module.model.ReactModuleInfo;

0 commit comments

Comments
 (0)