create-cloudflare 0.0.0

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.
Files changed (2) hide show
  1. package/bin.js +69 -0
  2. package/package.json +24 -0
package/bin.js ADDED
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env node
2
+ const argv = require('mri')(process.argv.slice(2), {
3
+ alias: {
4
+ C: 'cwd',
5
+ e: 'env',
6
+ f: 'format',
7
+ t: 'typescript',
8
+ // m: 'monorepo',
9
+ v: 'version',
10
+ h: 'help',
11
+ // c: 'cfw',
12
+ },
13
+ default: {
14
+ C: '.',
15
+ force: false,
16
+ e: 'cloudflare',
17
+ f: '', // ~> env-default
18
+ }
19
+ });
20
+
21
+ /** @param {string} msg */
22
+ function exit(msg, code = 1) {
23
+ if (code) process.stderr.write(msg + '\n');
24
+ else process.stdout.write(msg + '\n');
25
+ process.exit(code);
26
+ }
27
+
28
+ if (argv.help) {
29
+ let output = '';
30
+
31
+ output += '\n Usage';
32
+ output += '\n npm init worktop <name> [options]';
33
+ output += '\n';
34
+ output += '\n Options';
35
+ output += '\n -C, --cwd Directory to resolve from';
36
+ output += '\n -t, --typescript Setup project for TypeScript usage';
37
+ output += '\n -e, --env Target platform environment (default "cloudflare")';
38
+ output += '\n -f, --format Worker/Script output format (default "module")';
39
+ // output += '\n -m, --monorepo Force directory overwrite';
40
+ // output += '\n -c, --cfw Force directory overwrite';
41
+ output += '\n --force Force overwrite target directory';
42
+ output += '\n -v, --version Displays current version';
43
+ output += '\n -h, --help Displays this message';
44
+ output += '\n';
45
+ output += '\n Examples';
46
+ output += '\n $ npm init worktop my-worker';
47
+ output += '\n $ yarn create worktop my-worker --force';
48
+ output += '\n $ npm init worktop my-worker --env cloudflare';
49
+ output += '\n $ npm init worktop my-worker --env cloudflare';
50
+ output += '\n $ npm init worktop my-worker --env deno';
51
+ output += '\n';
52
+
53
+ exit(output, 0);
54
+ }
55
+
56
+ if (argv.version) {
57
+ let pkg = require('./package.json');
58
+ return exit(`${pkg.name}, v${pkg.version}`, 0);
59
+ }
60
+
61
+ (async function () {
62
+ try {
63
+ let dir = argv._.join('-').trim().replace(/[\s_]+/g, '-');
64
+ if (!dir) return exit('Missing <name> argument', 1);
65
+ await require('.').setup(dir, argv);
66
+ } catch (err) {
67
+ exit(err && err.stack || err, 1);
68
+ }
69
+ })();
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "version": "0.0.0",
3
+ "name": "create-cloudflare",
4
+ "repository": "lukeed/create-cloudflare",
5
+ "description": "TODO",
6
+ "license": "MIT",
7
+ "bin": "bin.js",
8
+ "author": {
9
+ "name": "Luke Edwards",
10
+ "email": "luke.edwards05@gmail.com",
11
+ "url": "https://lukeed.com"
12
+ },
13
+ "exports": "./index.js",
14
+ "files": [
15
+ "bin.js"
16
+ ],
17
+ "engines": {
18
+ "node": ">=12"
19
+ },
20
+ "dependencies": {
21
+ "kleur": "^4.0.0",
22
+ "mri": "^1.2.0"
23
+ }
24
+ }