@vercel/config 0.0.9

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/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # Vercel Router SDK
2
+
3
+ This is a prototype of what a Router SDK could look like.
4
+
5
+ ## Usage
6
+
7
+ 1. Install the package:
8
+ `npm install @vercel/router`
9
+
10
+ 2. Create a router configuration file (e.g., `router.config.ts`):
11
+
12
+ ```typescript
13
+ import { createRouter } from "@vercel/router";
14
+
15
+ const router = createRouter();
16
+
17
+ router
18
+ .rewrite("/api/(.*)", "/api/$1")
19
+ .redirect("/old-docs", "/docs", { permanent: true })
20
+ .cacheControl("/static/(.*)", {
21
+ public: true,
22
+ maxAge: "1week",
23
+ immutable: true
24
+ })
25
+ .setCleanUrls(true);
26
+
27
+ export default router.getConfig();
28
+ ```
29
+
30
+ 3. Add the generate-config script to your package.json:
31
+
32
+ ```json
33
+ {
34
+ "scripts": {
35
+ "generate-config": "@vercel/router"
36
+ }
37
+ }
38
+ ```
39
+
40
+ 4. Run the script to generate your `vercel.json`:
41
+
42
+ ```bash
43
+ npm run generate-config
44
+ ```
45
+
46
+ This will generate a `vercel.json` file in your project root with all your routing configurations.
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ const fs_1 = require("fs");
28
+ const path_1 = require("path");
29
+ const fs_2 = require("fs");
30
+ /**
31
+ * Read the user's vercel.ts file (or fallback to router.config.ts for backwards compatibility)
32
+ */
33
+ async function configureRouter() {
34
+ var _a;
35
+ const vercelTsPath = (0, path_1.resolve)(process.cwd(), "vercel.ts");
36
+ const routerConfigPath = (0, path_1.resolve)(process.cwd(), "router.config.ts");
37
+ // Prefer vercel.ts, fallback to router.config.ts
38
+ const configPath = (0, fs_2.existsSync)(vercelTsPath) ? vercelTsPath : routerConfigPath;
39
+ const routerConfig = (await (_a = configPath, Promise.resolve().then(() => __importStar(require(_a))))).default;
40
+ return routerConfig;
41
+ }
42
+ /**
43
+ * Read existing vercel.json and extract fields to preserve
44
+ */
45
+ function readExistingVercelConfig() {
46
+ const vercelJsonPath = (0, path_1.resolve)(process.cwd(), "vercel.json");
47
+ if (!(0, fs_2.existsSync)(vercelJsonPath)) {
48
+ return {};
49
+ }
50
+ try {
51
+ const content = (0, fs_1.readFileSync)(vercelJsonPath, "utf-8");
52
+ const existing = JSON.parse(content);
53
+ // Extract fields we want to preserve
54
+ const preserved = {};
55
+ if (existing.buildCommand) {
56
+ preserved.buildCommand = existing.buildCommand;
57
+ }
58
+ if (existing.installCommand) {
59
+ preserved.installCommand = existing.installCommand;
60
+ }
61
+ return preserved;
62
+ }
63
+ catch (error) {
64
+ console.warn("Could not read existing vercel.json:", error);
65
+ return {};
66
+ }
67
+ }
68
+ /**
69
+ * Generates the vercel.json file
70
+ */
71
+ async function generateVercelConfig() {
72
+ try {
73
+ const config = await configureRouter();
74
+ const existingFields = readExistingVercelConfig();
75
+ // Merge: generated config takes precedence, but preserve existing build/install commands if not set
76
+ const mergedConfig = {
77
+ ...existingFields,
78
+ ...config,
79
+ };
80
+ const vercelConfig = JSON.stringify(mergedConfig, null, 2);
81
+ const outputPath = (0, path_1.resolve)(process.cwd(), "vercel.json");
82
+ (0, fs_1.writeFileSync)(outputPath, vercelConfig);
83
+ console.log("Successfully generated vercel.json");
84
+ }
85
+ catch (error) {
86
+ console.error("Failed to generate vercel.json:", error);
87
+ process.exit(1);
88
+ }
89
+ }
90
+ // Run if this file is executed directly
91
+ if (require.main === module) {
92
+ generateVercelConfig();
93
+ }
@@ -0,0 +1,2 @@
1
+ export { createRouter, Router } from "./router";
2
+ export * from "./router";
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Router = exports.createRouter = void 0;
18
+ var router_1 = require("./router");
19
+ Object.defineProperty(exports, "createRouter", { enumerable: true, get: function () { return router_1.createRouter; } });
20
+ Object.defineProperty(exports, "Router", { enumerable: true, get: function () { return router_1.Router; } });
21
+ __exportStar(require("./router"), exports);