Skip to content

Commit 8a27e03

Browse files
authored
1 parent b70f280 commit 8a27e03

File tree

15 files changed

+507
-787
lines changed

15 files changed

+507
-787
lines changed

.github/workflows/build-templates.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,10 @@ jobs:
8686
--type ${{ matrix.type.name }}
8787
--languages ${{ matrix.type.language }}
8888
--example ${{ matrix.type.language == 'js' && 'expo' || 'vanilla' }}
89-
--tools eslint lefthook release-it jest
89+
--tools eslint
90+
--tools jest
91+
--tools lefthook
92+
--tools release-it
9093
)
9194
9295
if [[ ${{ github.event_name }} == 'schedule' ]]; then

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ jspm_packages/
4949
!.yarn/sdks
5050
!.yarn/versions
5151

52+
# Yalc
53+
.yalc
54+
yalc.lock
55+
5256
# Typescript v1 declaration files
5357
typings/
5458

eslint.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export default defineConfig(
3131
'**/.vscode/',
3232
'**/node_modules/',
3333
'**/coverage/',
34+
'**/doc_build/',
3435
'**/out/',
3536
'**/lib/',
3637
'**/templates/',

packages/create-react-native-library/package.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,8 @@
4848
"github-username": "^6.0.0",
4949
"kleur": "^4.1.4",
5050
"ora": "^5.4.1",
51-
"prompts": "^2.4.2",
52-
"validate-npm-package-name": "^4.0.0",
53-
"yargs": "^17.5.1"
51+
"pigment": "^0.3.10",
52+
"validate-npm-package-name": "^4.0.0"
5453
},
5554
"devDependencies": {
5655
"@babel/cli": "^7.24.8",
@@ -62,8 +61,6 @@
6261
"@types/dedent": "^0.7.0",
6362
"@types/ejs": "^3.1.1",
6463
"@types/fs-extra": "^9.0.13",
65-
"@types/prompts": "^2.0.14",
66-
"@types/validate-npm-package-name": "^3.0.3",
67-
"@types/yargs": "^17.0.10"
64+
"@types/validate-npm-package-name": "^3.0.3"
6865
}
6966
}

packages/create-react-native-library/src/exampleApp/generateExampleApp.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ export default async function generateExampleApp({
120120
'blank',
121121
];
122122
break;
123-
case 'none': {
123+
case undefined:
124+
case null: {
124125
// Do nothing
125126
}
126127
}

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

Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
import pak from '../package.json';
12
import fs from 'fs-extra';
23
import kleur from 'kleur';
34
import ora from 'ora';
45
import path from 'path';
5-
import yargs from 'yargs';
66
import {
77
FALLBACK_BOB_VERSION,
88
FALLBACK_NITRO_MODULES_VERSION,
@@ -11,50 +11,24 @@ import {
1111
import { alignDependencyVersionsWithExampleApp } from './exampleApp/dependencies';
1212
import generateExampleApp from './exampleApp/generateExampleApp';
1313
import {
14-
printErrorHelp,
1514
printLocalLibNextSteps,
1615
printNonLocalLibNextSteps,
1716
printUsedRNVersion,
1817
} from './inform';
19-
import {
20-
acceptedArgs,
21-
createMetadata,
22-
createQuestions,
23-
type Answers,
24-
} from './input';
18+
import { prompt } from './prompt';
2519
import { applyTemplates, generateTemplateConfiguration } from './template';
2620
import { assertNpxExists } from './utils/assert';
21+
import { configureTools } from './utils/configureTools';
2722
import { createInitialGitCommit } from './utils/initialCommit';
2823
import {
2924
addNitroDependencyToLocalLibrary,
3025
linkLocalLibrary,
3126
} from './utils/local';
3227
import { determinePackageManager } from './utils/packageManager';
33-
import { prompt } from './utils/prompt';
3428
import { resolveNpmPackageVersion } from './utils/resolveNpmPackageVersion';
35-
import { hideBin } from 'yargs/helpers';
36-
import { configureTools } from './utils/configureTools';
37-
38-
type Args = Partial<Answers> & {
39-
$0: string;
40-
[key: string]: unknown;
41-
};
42-
43-
void yargs(hideBin(process.argv))
44-
.command('$0 [name]', 'create a react native library', acceptedArgs, create)
45-
.demandCommand()
46-
.recommendCommands()
47-
.fail(printErrorHelp)
48-
.parserConfiguration({
49-
// don't pass kebab-case args to handler.
50-
'strip-dashed': true,
51-
})
52-
.parse();
53-
54-
async function create(_argv: Args) {
55-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
56-
const { _, $0, ...argv } = _argv;
29+
import { createMetadata } from './utils/createMetadata';
5730

31+
async function create() {
5832
// Prefetch bob version in background while asking questions
5933
const bobVersionPromise = resolveNpmPackageVersion(
6034
'react-native-builder-bob',
@@ -67,12 +41,18 @@ async function create(_argv: Args) {
6741

6842
await assertNpxExists();
6943

70-
const questions = await createQuestions(argv);
71-
72-
const answers = await prompt<Answers, typeof argv>(questions, argv, {
73-
interactive: argv.interactive,
44+
const answers = await prompt.show({
45+
name: pak.name,
46+
version: pak.version,
47+
description: pak.description,
7448
});
7549

50+
if (answers == null) {
51+
process.exit(0);
52+
}
53+
54+
console.log(''); // Empty new line after prompts
55+
7656
const bobVersion = await bobVersionPromise;
7757
const nitroModulesVersion =
7858
answers.type === 'nitro-module' || answers.type === 'nitro-view'
@@ -101,7 +81,7 @@ async function create(_argv: Args) {
10181

10282
const spinner = ora().start();
10383

104-
if (config.example !== 'none') {
84+
if (config.example != null) {
10585
spinner.text = 'Generating example app';
10686

10787
await generateExampleApp({
@@ -117,7 +97,7 @@ async function create(_argv: Args) {
11797

11898
const rootPackageJson = await fs.readJson(path.join(folder, 'package.json'));
11999

120-
if (config.example !== 'none') {
100+
if (config.example != null) {
121101
await alignDependencyVersionsWithExampleApp(rootPackageJson, folder);
122102
}
123103

@@ -200,3 +180,11 @@ async function create(_argv: Args) {
200180
printNonLocalLibNextSteps(config);
201181
}
202182
}
183+
184+
create().catch((e: unknown) => {
185+
console.log('\n');
186+
console.log(kleur.red('× An error occurred while creating the project.\n'));
187+
console.error(e);
188+
189+
process.exit(1);
190+
});

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,19 @@ export function printUsedRNVersion(
113113
`react-native@${version}`
114114
)} for the example`
115115
);
116-
} else {
116+
} else if (config.example != null) {
117117
console.warn(
118118
`${kleur.yellow(
119119
'⚠'
120120
)} Ignoring --react-native-version for unsupported example type: ${kleur.cyan(
121121
config.example
122122
)}`
123123
);
124+
} else {
125+
console.warn(
126+
`${kleur.yellow(
127+
'⚠'
128+
)} Ignoring --react-native-version for library without example app`
129+
);
124130
}
125131
}

0 commit comments

Comments
 (0)