create-pdf-forge 1.1.0 → 1.2.0-canary.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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # create-pdf-forge
2
2
 
3
+ ## 1.2.0-canary.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 82187cc: packages lint
8
+
9
+ ## 1.2.0-canary.0
10
+
11
+ ### Minor Changes
12
+
13
+ - ea6c717: release bun runtime
14
+
3
15
  ## 1.1.0
4
16
 
5
17
  ### Minor Changes
package/package.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "name": "create-pdf-forge",
3
- "version": "1.1.0",
3
+ "version": "1.2.0-canary.1",
4
4
  "description": "The easiest way to get started with React PDF",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
8
  "dependencies": {
9
9
  "commander": "^13.0.0",
10
- "fs-extra": "^11.1.1",
11
10
  "log-symbols": "^7.0.0",
12
11
  "ora": "^8.0.0"
13
12
  },
@@ -27,12 +26,8 @@
27
26
  "create-pdf-forge": "src/index.js"
28
27
  },
29
28
  "devDependencies": {
30
- "nypm": "0.6.0",
31
- "react": "19.0.0",
32
- "typescript": "5.8.3",
33
- "tsconfig": "1.1.0"
29
+ "typescript": "5.9.3",
30
+ "tsconfig": "1.2.0-canary.1"
34
31
  },
35
- "scripts": {
36
- "test": "vitest run"
37
- }
32
+ "scripts": {}
38
33
  }
package/src/index.js CHANGED
@@ -1,25 +1,22 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env bun
2
2
 
3
+ import { promises as fs } from 'node:fs';
3
4
  import path from 'node:path';
4
- import { fileURLToPath } from 'node:url';
5
5
  import { Command } from 'commander';
6
- import fse from 'fs-extra';
7
6
  import logSymbols from 'log-symbols';
8
7
  import ora from 'ora';
9
8
  import { tree } from './tree.js';
10
9
 
11
- const filename = fileURLToPath(import.meta.url);
12
- const dirname = path.dirname(filename);
10
+ const dirname = import.meta.dir;
13
11
 
14
- const packageJson = JSON.parse(
15
- fse.readFileSync(path.resolve(dirname, '../package.json'), 'utf8'),
16
- );
12
+ const packageJson = await Bun.file(
13
+ path.resolve(dirname, '../package.json'),
14
+ ).json();
17
15
 
18
16
  const getLatestVersionOfTag = async (packageName, tag) => {
19
- // Use NPM_CONFIG_REGISTRY or default to npm registry
20
17
  const registry =
21
18
  process.env.NPM_CONFIG_REGISTRY || 'https://registry.npmjs.org';
22
- const registryUrl = registry.replace(/\/$/, ''); // Remove trailing slash
19
+ const registryUrl = registry.replace(/\/$/, '');
23
20
  const response = await fetch(`${registryUrl}/${packageName}/${tag}`);
24
21
  const data = await response.json();
25
22
 
@@ -37,6 +34,10 @@ const getLatestVersionOfTag = async (packageName, tag) => {
37
34
  return version;
38
35
  };
39
36
 
37
+ const copyDirectory = async (src, dest) => {
38
+ await fs.cp(src, dest, { recursive: true });
39
+ };
40
+
40
41
  const init = async (name, { tag }) => {
41
42
  let projectPath = name;
42
43
 
@@ -51,44 +52,38 @@ const init = async (name, { tag }) => {
51
52
  const templatePath = path.resolve(dirname, '../template');
52
53
  const resolvedProjectPath = path.resolve(projectPath);
53
54
 
54
- if (fse.existsSync(resolvedProjectPath)) {
55
+ try {
56
+ await Bun.stat(resolvedProjectPath);
55
57
  console.error(`Project called ${projectPath} already exists!`);
56
58
  process.exit(1);
59
+ } catch {
60
+ // Directory doesn't exist, proceed
57
61
  }
58
62
 
59
63
  const spinner = ora({
60
64
  text: 'Preparing files...\n',
61
65
  }).start();
62
66
 
63
- fse.copySync(templatePath, resolvedProjectPath, {
64
- recursive: true,
65
- });
67
+ await fs.mkdir(resolvedProjectPath, { recursive: true });
68
+ await copyDirectory(templatePath, resolvedProjectPath);
66
69
  const templatePackageJsonPath = path.resolve(
67
70
  resolvedProjectPath,
68
71
  './package.json',
69
72
  );
70
- const templatePackageJson = fse.readFileSync(templatePackageJsonPath, 'utf8');
73
+ const templatePackageJson = await Bun.file(templatePackageJsonPath).text();
71
74
 
72
- const componentsVersion = await getLatestVersionOfTag(
73
- '@ahmedrowaihi/pdf-forge-components',
74
- tag,
75
- );
76
- const cliVersion = await getLatestVersionOfTag(
77
- '@ahmedrowaihi/pdf-forge-cli',
78
- tag,
79
- );
80
- const previewVersion = await getLatestVersionOfTag(
81
- '@ahmedrowaihi/pdf-forge-preview',
82
- tag,
83
- );
75
+ const [componentsVersion, cliVersion, previewVersion] = await Promise.all([
76
+ getLatestVersionOfTag('@ahmedrowaihi/pdf-forge-components', tag),
77
+ getLatestVersionOfTag('@ahmedrowaihi/pdf-forge-cli', tag),
78
+ getLatestVersionOfTag('@ahmedrowaihi/pdf-forge-preview', tag),
79
+ ]);
84
80
 
85
- fse.writeFileSync(
81
+ await Bun.write(
86
82
  templatePackageJsonPath,
87
83
  templatePackageJson
88
84
  .replace('INSERT_COMPONENTS_VERSION', componentsVersion)
89
85
  .replace('INSERT_CLI_VERSION', cliVersion)
90
86
  .replace('INSERT_PREVIEW_VERSION', previewVersion),
91
- 'utf8',
92
87
  );
93
88
 
94
89
  spinner.stopAndPersist({
package/tsconfig.json CHANGED
@@ -6,7 +6,6 @@
6
6
  "moduleResolution": "nodenext",
7
7
  "module": "nodenext",
8
8
  "jsx": "react-jsx",
9
- "noEmit": true,
10
- "types": ["vitest/globals"]
9
+ "noEmit": true
11
10
  }
12
11
  }