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 +12 -0
- package/package.json +4 -9
- package/src/index.js +24 -29
- package/tsconfig.json +1 -2
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-pdf-forge",
|
|
3
|
-
"version": "1.
|
|
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
|
-
"
|
|
31
|
-
"
|
|
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
|
|
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
|
|
12
|
-
const dirname = path.dirname(filename);
|
|
10
|
+
const dirname = import.meta.dir;
|
|
13
11
|
|
|
14
|
-
const packageJson =
|
|
15
|
-
|
|
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(/\/$/, '');
|
|
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
|
-
|
|
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
|
-
|
|
64
|
-
|
|
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 =
|
|
73
|
+
const templatePackageJson = await Bun.file(templatePackageJsonPath).text();
|
|
71
74
|
|
|
72
|
-
const componentsVersion = await
|
|
73
|
-
'@ahmedrowaihi/pdf-forge-components',
|
|
74
|
-
tag,
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
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({
|