Skip to content

Commit 9f0bda5

Browse files
Merge pull request #39 from Adedoyin-Emmanuel/v1.4.4
V1.4.4
2 parents bc382e1 + a19d39c commit 9f0bda5

File tree

12 files changed

+49
-36
lines changed

12 files changed

+49
-36
lines changed

README.md

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,16 @@ Methane is a **CLI** tool that helps developers easily create **React components
1313

1414
## What's New ❓
1515

16-
The patch version **1.4.1** aims to fix issues related to the **components and pages** generation.
16+
The latest patch version 1.4.8 introduces a crucial fix that enhances the naming conventions for generated components and Next.js pages. This update ensures that hyphenated names are correctly capitalized, providing a more consistent and readable codebase.
1717

18-
1. React Components and Pages as well as NextJs Components, Pages name default to `index.jsx` or `index.tsx` if **generateFolder** configuration is specified. This makes **components and pages** import cleaner and easier to understand. For example, if you generate a component called `Button`, the generated component path would be `Button/index.jsx` or `Button/index.tsx` and you can import it like this `import Button from './components/Button'`. Unlike before where you would have to import it like this `import Button from './components/Button/Button'`.
19-
2. Fixed component and pages capitalization issue. In previous versions of **Methane**, if you generate a component called `button`, the file name remains `button` but the generated component would be `button` instead of `Button`. This has been fixed in this version.
20-
3. Gracefully handled potential error that might occur when generating pages or components.
21-
4. Added a new argument `-d` or `--default` to `methane init` command. This allows developers to easily intialize **Methane** with the default configuration without being prompted to answer questions. This is useful when you want to quickly initialize **Methane** in a new project. **Note** You can always update the **Methane** configuration by running `methane config` command.
18+
**Component Capitalization Fix:**
19+
20+
When generating components with hyphenated names, **Methane** will now correctly capitalize each segment of the name. For instance, creating a component named `animated-button` will result in a component named `AnimatedButton`. This ensures that components follow standard **PascalCase** naming conventions, enhancing code readability and consistency.
21+
22+
**Next.js Page Capitalization Fix:**
23+
24+
Similarly, generating Next.js pages with hyphenated names will now produce correctly capitalized page names. For example, a page named 2fa-auth will be created as 2FaAuth, user-appointments as UserAppointments, and privacy-policy as PrivacyPolicy. This fix ensures that page names are intuitive and follow common naming practices.
25+
**Please Note:** Your nextJs page route will not be affected by this change. This change only affects the name of the generated page or component.
2226

2327
## Installation 💿
2428

@@ -320,5 +324,9 @@ Please star this repo if you find it useful. Also share the good news with your
320324

321325
## Contibutors 👨‍
322326

323-
<a href="https://github.com/adedoyin-emmanuel"> <img src="https://www.npmjs.com/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci82YjdmNjY1YjY5NzNlMTA5MDY5NWYxNGQ5ZTFjN2FlMT9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.VLsXZqAcYRo73KaG7EmkZtMv67-fHx-8x4Fo_nXv_b4" style="border-radius:50%" width="30" height="30"/>
324-
</a>
327+
<div style="display: flex; flex-wrap: wrap;">
328+
<a href="https://github.com/adedoyin-emmanuuel" style="margin-right: 10px;">
329+
<img src="https://github.com/adedoyin-emmanuel.png" width="80" height="80" style="border-radius: 50%; border: 2px solid #000;" alt="Adedoyin Emmanuel"/>
330+
</a>
331+
332+
</div>

helpers/generators/generateComponent.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import fs from "fs";
33
import path from "path";
44
import * as readUserConfig from "../utilis/readUserConfig.js";
55
import * as componentResolver from "./resolvers/resolveComponentContent.js";
6-
import { captitalizeWord } from "helpers/utilis/capitalize.js";
6+
import capititalizeWord from "./../../helpers/utilis/capitalize.js";
77

88
const findComponentDirectory = () => {
99
const rootDir = process.cwd();
@@ -40,7 +40,7 @@ const generateComponentFile = async (
4040
componentDir,
4141
componentResolver.resolveComponentContent(
4242
readUserConfig,
43-
captitalizeWord(name)
43+
capititalizeWord(name)
4444
),
4545
(error) => {
4646
if (error) {
@@ -116,7 +116,7 @@ export const generateComponent = async (name: string) => {
116116
console.log(
117117
`${colors.bold(
118118
colors.green(
119-
`${captitalizeWord(name)} component generated successfully 🚀`
119+
`${capititalizeWord(name)} component generated successfully 🚀`
120120
)
121121
)}`
122122
);

helpers/generators/generateNextJsComponent.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import fs from "fs";
33
import path from "path";
44
import * as readUserConfig from "../utilis/readUserConfig.js";
55
import * as componentResolver from "./resolvers/resolveNextJsComponentContent.js";
6-
import { captitalizeWord } from "helpers/utilis/capitalize.js";
6+
import capititalizeWord from "./../../helpers/utilis/capitalize.js";
77

88
const findComponentDirectory = () => {
99
const rootDir = process.cwd();
@@ -55,7 +55,7 @@ const generateComponentFile = async (
5555
componentDir,
5656
componentResolver.resolveComponentContent(
5757
readUserConfig,
58-
captitalizeWord(name),
58+
capititalizeWord(name),
5959
componentType
6060
),
6161
(error) => {
@@ -128,7 +128,7 @@ export const generateComponent = async (
128128
console.log(
129129
`${colors.bold(
130130
colors.green(
131-
`${captitalizeWord(name)} component generated successfully 🚀`
131+
`${capititalizeWord(name)} component generated successfully 🚀`
132132
)
133133
)}`
134134
);

helpers/generators/generateNextJsDynamicPage.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import fs from "fs";
33
import path from "path";
44
import * as readUserConfig from "../utilis/readUserConfig.js";
55
import * as pageResolver from "./resolvers/resolveNextJsDynamicPageContent.js";
6-
import { captitalizeWord } from "helpers/utilis/capitalize.js";
6+
import capititalizeWord from "./../../helpers/utilis/capitalize.js";
77

88
const findPagesDirectory = () => {
99
const rootDir = process.cwd();
@@ -71,7 +71,7 @@ const generateDynamicPageFile = async (
7171
pageResolver.resolveDynamicPageContent(
7272
dynamicId,
7373
readUserConfig,
74-
captitalizeWord(name),
74+
capititalizeWord(name),
7575
componentType
7676
)
7777
);
@@ -122,7 +122,7 @@ export const generatePage = async (
122122

123123
generateDynamicPageFile(
124124
dynamicId,
125-
captitalizeWord(dynamicId),
125+
capititalizeWord(dynamicId),
126126
pageDirName,
127127
pageResolver,
128128
componentType
@@ -131,7 +131,7 @@ export const generatePage = async (
131131
console.log(
132132
`${colors.bold(
133133
colors.green(
134-
`${captitalizeWord(dynamicId)} page generated successfully 🚀`
134+
`${capititalizeWord(dynamicId)} page generated successfully 🚀`
135135
)
136136
)}`
137137
);

helpers/generators/generateNextJsPage.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import fs from "fs";
33
import path from "path";
44
import * as readUserConfig from "../utilis/readUserConfig.js";
55
import * as pageResolver from "./resolvers/resolveNextJsPageContent.js";
6-
import { captitalizeWord } from "helpers/utilis/capitalize.js";
6+
import capititalizeWord from "./../../helpers/utilis/capitalize.js";
7+
78

89
const findPagesDirectory = () => {
910
const rootDir = process.cwd();
@@ -72,7 +73,7 @@ const generatePageFile = async (
7273
pageFilePath,
7374
pageResolver.resolvePageContent(
7475
readUserConfig,
75-
captitalizeWord(name),
76+
capititalizeWord(name),
7677
componentType
7778
),
7879
(error) => {
@@ -141,7 +142,7 @@ export const generatePage = async (
141142

142143
console.log(
143144
`${colors.bold(
144-
colors.green(`${captitalizeWord(name)} page generated successfully 🚀`)
145+
colors.green(`${capititalizeWord(name)} page generated successfully 🚀`)
145146
)}`
146147
);
147148
} catch (error: any) {

helpers/generators/generatePage.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import path from "path";
44
import * as readUserConfig from "../utilis/readUserConfig.js";
55
import * as pageRegisterer from "./register/registerPage.js";
66
import * as pageResolver from "./resolvers/resolvePageContent.js";
7-
import { captitalizeWord } from "helpers/utilis/capitalize.js";
7+
import capititalizeWord from "./../../helpers/utilis/capitalize.js";
8+
89

910
const rootDir = path.join(process.cwd());
1011
const pageDir = [
@@ -33,7 +34,7 @@ const generatePageFile = async (
3334

3435
await fs.writeFile(
3536
pageDir,
36-
pageResolver.resolvePageContent(readUserConfig, captitalizeWord(name)),
37+
pageResolver.resolvePageContent(readUserConfig, capititalizeWord(name)),
3738
(error) => {
3839
if (error) {
3940
console.log(colors.bold(colors.red(error.toString())));
@@ -110,7 +111,7 @@ export const generatePage = async (name: string) => {
110111

111112
console.log(
112113
`${colors.bold(
113-
colors.green(`${captitalizeWord(name)} page generated successfully 🚀`)
114+
colors.green(`${capititalizeWord(name)} page generated successfully 🚀`)
114115
)}`
115116
);
116117
} catch (error: any) {

helpers/generators/generateServiceWorker.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ const generateServiceWorkerFile = async () => {
2626
await fs.writeFile(
2727
path.resolve(SWDir, "serviceWorkerRegistration.js"),
2828
swResolver.resolveServiceWorkerRegistrationTemplate(),
29-
(error:any) => {
29+
(error: any) => {
3030
if (error) {
3131
console.log(colors.bold(colors.red(error.toString())));
3232
}
3333
}
3434
);
35-
} catch (error:any) {
35+
} catch (error: any) {
3636
console.log(colors.bold(colors.red(error)));
3737
}
3838
} else {
@@ -47,6 +47,4 @@ const generateServiceWorkerFile = async () => {
4747
swRegisterer.checkAndImportServiceWorker();
4848
};
4949

50-
export {
51-
generateServiceWorkerFile,
52-
};
50+
export { generateServiceWorkerFile };

helpers/utilis/capitalize.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
export const captitalizeWord = (word: string): string => {
2-
if (!word) return word;
1+
const capitalize = (word: string) => {
2+
if (!word) return "";
33

44
return word.charAt(0).toUpperCase() + word.slice(1);
55
};
66

7+
const capititalizeWord = (word: string): string => {
8+
if (!word) return "";
9+
10+
return word.split("-").map(capitalize).join("");
11+
};
12+
13+
export default capititalizeWord;

helpers/utilis/packageDescription.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import colors from "colors";
33
import { program } from "commander";
44
const packageDescription = () => {
55
program
6-
.version("1.4.1")
6+
.version("1.4.8")
77
.description(
88
colors.cyan(
99
"Methane-Cli is a tool for efficient creation of React or NextJs components, pages and Service Worker files."

index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import { packageGenerator } from "./helpers/utilis/packageGenerator.js";
99
import { InitMethaneCLI } from "./helpers/utilis/packageInit.js";
1010
import { listAllConfig } from "./helpers/utilis/packageListConfiguration.js";
1111

12-
/* Configure Figlet for the package name */
13-
1412
figlet.text(
1513
"Methane",
1614
{

0 commit comments

Comments
 (0)