@kvihaugen/create-frontend-app 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -7,57 +7,87 @@ import { execSync } from "node:child_process";
7
7
  const cwd = process.cwd();
8
8
  (async () => {
9
9
  console.log("🚀 Creating frontend app...\n");
10
- console.log("\t- 🔃 Generating Next.js app...");
11
- const emitter = degit("LarsSK06/frontend-template");
12
10
  const tempFolderPath = path.join(os.tmpdir(), `${Date.now()}-create-frontend-app`);
13
- await emitter.clone(tempFolderPath);
14
- execSync("npx create-next-app . --yes --empty --skip-install");
15
- console.log("\t ✅ Generated Next.js app!\n");
16
- console.log("\t- 🔃 Cloning files from template...");
17
- for (const objName of [
18
- "src",
19
- "public",
20
- "postcss.config.mjs",
21
- "next.config.ts"
22
- ]) {
23
- const absoluteCwdPath = path.join(cwd, objName);
24
- const absoluteTempFolderPath = path.join(tempFolderPath, objName);
25
- if (fs.existsSync(absoluteCwdPath)) {
26
- const stat = fs.statSync(absoluteCwdPath);
11
+ {
12
+ console.log("\t- 🔃 Generating Next.js app...");
13
+ const emitter = degit("LarsSK06/frontend-template");
14
+ await emitter.clone(tempFolderPath);
15
+ execSync("npx create-next-app . --yes --empty --skip-install");
16
+ console.log("\t ✅ Generated Next.js app!\n");
17
+ }
18
+ {
19
+ console.log("\t- 🔃 Cloning files from template...");
20
+ for (const objName of [
21
+ "src",
22
+ "public",
23
+ "postcss.config.mjs",
24
+ "next.config.ts"
25
+ ]) {
26
+ const absoluteCwdPath = path.join(cwd, objName);
27
+ const absoluteTempFolderPath = path.join(tempFolderPath, objName);
28
+ if (fs.existsSync(absoluteCwdPath)) {
29
+ const stat = fs.statSync(absoluteCwdPath);
30
+ if (stat.isFile())
31
+ fs.unlinkSync(absoluteCwdPath);
32
+ else
33
+ fs.rmSync(absoluteCwdPath, { recursive: true, force: true });
34
+ }
35
+ fs.cpSync(absoluteTempFolderPath, absoluteCwdPath, { recursive: true });
36
+ }
37
+ console.log("\t ✅ Cloned files from template!\n");
38
+ }
39
+ {
40
+ console.log("\t- 🔃 Formatting files...");
41
+ for (const fileName of [
42
+ "package.json",
43
+ "package-lock.json",
44
+ "tsconfig.json"
45
+ ]) {
46
+ const absolutePath = path.join(cwd, fileName);
47
+ if (!fs.existsSync(absolutePath))
48
+ continue;
49
+ const fileContent = fs.readFileSync(absolutePath).toString();
50
+ fs.writeFileSync(absolutePath, JSON.stringify(JSON.parse(fileContent), null, 4));
51
+ }
52
+ console.log("\t ✅ Formatted files!\n");
53
+ }
54
+ {
55
+ console.log("\t- 🔃 Deleting unnecessary files...");
56
+ for (const objName of [
57
+ "README.md"
58
+ ]) {
59
+ const absolutePath = path.join(cwd, objName);
60
+ if (!fs.existsSync(absolutePath))
61
+ continue;
62
+ const stat = fs.statSync(absolutePath);
27
63
  if (stat.isFile())
28
- fs.unlinkSync(absoluteCwdPath);
64
+ fs.unlinkSync(absolutePath);
29
65
  else
30
- fs.rmSync(absoluteCwdPath, { recursive: true, force: true });
66
+ fs.rmSync(absolutePath, { recursive: true, force: true });
31
67
  }
32
- fs.cpSync(absoluteTempFolderPath, absoluteCwdPath, { recursive: true });
68
+ console.log("\t ✅ Deleted unnecessary files!");
33
69
  }
34
- console.log("\t ✅ Cloned files from template!\n");
35
- console.log("\t- 🔃 Formatting files...");
36
- for (const fileName of [
37
- "package.json",
38
- "package-lock.json",
39
- "tsconfig.json"
40
- ]) {
41
- const absolutePath = path.join(cwd, fileName);
42
- if (!fs.existsSync(absolutePath))
43
- continue;
44
- const fileContent = fs.readFileSync(absolutePath).toString();
45
- fs.writeFileSync(absolutePath, JSON.stringify(JSON.parse(fileContent), null, 4));
70
+ {
71
+ console.log("\t- 🔃 Installing dependencies...");
72
+ const packageNames = [
73
+ "@mantine/core",
74
+ "@mantine/hooks",
75
+ "@tabler/icons-react",
76
+ "i18next",
77
+ "react-i18next"
78
+ ];
79
+ execSync(`npm i ${packageNames.join(" ")}`);
80
+ console.log("\t ✅ Installed dependencies!");
46
81
  }
47
- console.log("\t ✅ Formatted files!\n");
48
- console.log("\t- 🔃 Deleting unnecessary files...");
49
- for (const objName of [
50
- "README.md"
51
- ]) {
52
- const absolutePath = path.join(cwd, objName);
53
- if (!fs.existsSync(absolutePath))
54
- continue;
55
- const stat = fs.statSync(absolutePath);
56
- if (stat.isFile())
57
- fs.unlinkSync(absolutePath);
58
- else
59
- fs.rmSync(absolutePath, { recursive: true, force: true });
82
+ {
83
+ console.log("\t- 🔃 Installing development dependencies...");
84
+ const packageNames = [
85
+ "postcss",
86
+ "postcss-preset-mantine",
87
+ "postcss-simple-vars"
88
+ ];
89
+ execSync(`npm i --save-dev ${packageNames.join(" ")}`);
90
+ console.log("\t ✅ Installed development dependencies!");
60
91
  }
61
- console.log("\t ✅ Deleted unnecessary files!");
62
92
  })();
63
93
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kvihaugen/create-frontend-app",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "bin": {
package/src/index.ts CHANGED
@@ -14,86 +14,127 @@ const cwd = process.cwd();
14
14
  console.log("🚀 Creating frontend app...\n");
15
15
 
16
16
 
17
- console.log("\t- 🔃 Generating Next.js app...");
18
-
19
- const emitter = degit("LarsSK06/frontend-template");
20
-
21
17
  const tempFolderPath = path.join(os.tmpdir(), `${Date.now()}-create-frontend-app`);
22
18
 
23
- await emitter.clone(tempFolderPath);
24
-
25
- execSync("npx create-next-app . --yes --empty --skip-install");
26
19
 
27
- console.log("\t ✅ Generated Next.js app!\n");
20
+ {
21
+ console.log("\t- 🔃 Generating Next.js app...");
22
+
23
+ const emitter = degit("LarsSK06/frontend-template");
24
+
25
+ await emitter.clone(tempFolderPath);
26
+
27
+ execSync("npx create-next-app . --yes --empty --skip-install");
28
+
29
+ console.log("\t ✅ Generated Next.js app!\n");
30
+ }
28
31
 
29
32
 
30
- console.log("\t- 🔃 Cloning files from template...");
33
+ {
34
+ console.log("\t- 🔃 Cloning files from template...");
35
+
36
+ for (const objName of [
37
+ "src",
38
+ "public",
39
+ "postcss.config.mjs",
40
+ "next.config.ts"
41
+ ]) {
42
+ const absoluteCwdPath = path.join(cwd, objName);
43
+ const absoluteTempFolderPath = path.join(tempFolderPath, objName);
44
+
45
+ if (fs.existsSync(absoluteCwdPath)) {
46
+ const stat = fs.statSync(absoluteCwdPath);
47
+
48
+ if (stat.isFile()) fs.unlinkSync(absoluteCwdPath);
49
+ else fs.rmSync(absoluteCwdPath, { recursive: true, force: true });
50
+ }
51
+
52
+ fs.cpSync(
53
+ absoluteTempFolderPath,
54
+ absoluteCwdPath,
55
+ { recursive: true }
56
+ );
57
+ }
58
+
59
+ console.log("\t ✅ Cloned files from template!\n");
60
+ }
31
61
 
32
- for (const objName of [
33
- "src",
34
- "public",
35
- "postcss.config.mjs",
36
- "next.config.ts"
37
- ]) {
38
- const absoluteCwdPath = path.join(cwd, objName);
39
- const absoluteTempFolderPath = path.join(tempFolderPath, objName);
40
-
41
- if (fs.existsSync(absoluteCwdPath)) {
42
- const stat = fs.statSync(absoluteCwdPath);
43
62
 
44
- if (stat.isFile()) fs.unlinkSync(absoluteCwdPath);
45
- else fs.rmSync(absoluteCwdPath, { recursive: true, force: true });
63
+ {
64
+ console.log("\t- 🔃 Formatting files...");
65
+
66
+ for (const fileName of [
67
+ "package.json",
68
+ "package-lock.json",
69
+ "tsconfig.json"
70
+ ]) {
71
+ const absolutePath = path.join(cwd, fileName);
72
+
73
+ if (!fs.existsSync(absolutePath))
74
+ continue;
75
+
76
+ const fileContent = fs.readFileSync(absolutePath).toString();
77
+
78
+ fs.writeFileSync(
79
+ absolutePath,
80
+ JSON.stringify(JSON.parse(fileContent), null, 4)
81
+ );
46
82
  }
47
-
48
- fs.cpSync(
49
- absoluteTempFolderPath,
50
- absoluteCwdPath,
51
- { recursive: true }
52
- );
83
+
84
+ console.log("\t ✅ Formatted files!\n");
53
85
  }
54
86
 
55
- console.log("\t ✅ Cloned files from template!\n");
56
87
 
88
+ {
89
+ console.log("\t- 🔃 Deleting unnecessary files...");
90
+
91
+ for (const objName of [
92
+ "README.md"
93
+ ]) {
94
+ const absolutePath = path.join(cwd, objName);
95
+
96
+ if (!fs.existsSync(absolutePath))
97
+ continue;
98
+
99
+ const stat = fs.statSync(absolutePath);
100
+
101
+ if (stat.isFile()) fs.unlinkSync(absolutePath);
102
+ else fs.rmSync(absolutePath, { recursive: true, force: true });
103
+ }
104
+
105
+ console.log("\t ✅ Deleted unnecessary files!");
106
+ }
57
107
 
58
- console.log("\t- 🔃 Formatting files...");
59
108
 
60
- for (const fileName of [
61
- "package.json",
62
- "package-lock.json",
63
- "tsconfig.json"
64
- ]) {
65
- const absolutePath = path.join(cwd, fileName);
109
+ {
110
+ console.log("\t- 🔃 Installing dependencies...");
66
111
 
67
- if (!fs.existsSync(absolutePath))
68
- continue;
112
+ const packageNames = [
113
+ "@mantine/core",
114
+ "@mantine/hooks",
115
+ "@tabler/icons-react",
116
+ "i18next",
117
+ "react-i18next"
118
+ ];
69
119
 
70
- const fileContent = fs.readFileSync(absolutePath).toString();
120
+ execSync(`npm i ${packageNames.join(" ")}`);
71
121
 
72
- fs.writeFileSync(
73
- absolutePath,
74
- JSON.stringify(JSON.parse(fileContent), null, 4)
75
- );
122
+ console.log("\t ✅ Installed dependencies!");
76
123
  }
77
124
 
78
- console.log("\t ✅ Formatted files!\n");
79
125
 
126
+ {
127
+ console.log("\t- 🔃 Installing development dependencies...");
80
128
 
81
- console.log("\t- 🔃 Deleting unnecessary files...");
129
+ const packageNames = [
130
+ "postcss",
131
+ "postcss-preset-mantine",
132
+ "postcss-simple-vars"
133
+ ];
82
134
 
83
- for (const objName of [
84
- "README.md"
85
- ]) {
86
- const absolutePath = path.join(cwd, objName);
135
+ execSync(`npm i --save-dev ${packageNames.join(" ")}`);
87
136
 
88
- if (!fs.existsSync(absolutePath))
89
- continue;
90
-
91
- const stat = fs.statSync(absolutePath);
92
-
93
- if (stat.isFile()) fs.unlinkSync(absolutePath);
94
- else fs.rmSync(absolutePath, { recursive: true, force: true });
137
+ console.log("\t ✅ Installed development dependencies!");
95
138
  }
96
139
 
97
- console.log("\t ✅ Deleted unnecessary files!");
98
-
99
140
  })();