swallowkit 1.0.0-beta.5 → 1.0.0-beta.7

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 (97) hide show
  1. package/LICENSE +21 -21
  2. package/README.ja.md +251 -242
  3. package/README.md +252 -243
  4. package/dist/__tests__/fixtures.d.ts +14 -0
  5. package/dist/__tests__/fixtures.d.ts.map +1 -0
  6. package/dist/__tests__/fixtures.js +85 -0
  7. package/dist/__tests__/fixtures.js.map +1 -0
  8. package/dist/cli/commands/create-model.js +14 -14
  9. package/dist/cli/commands/dev.d.ts +8 -0
  10. package/dist/cli/commands/dev.d.ts.map +1 -1
  11. package/dist/cli/commands/dev.js +238 -30
  12. package/dist/cli/commands/dev.js.map +1 -1
  13. package/dist/cli/commands/init.d.ts +5 -0
  14. package/dist/cli/commands/init.d.ts.map +1 -1
  15. package/dist/cli/commands/init.js +2507 -1664
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/cli/commands/scaffold.d.ts +3 -0
  18. package/dist/cli/commands/scaffold.d.ts.map +1 -1
  19. package/dist/cli/commands/scaffold.js +281 -117
  20. package/dist/cli/commands/scaffold.js.map +1 -1
  21. package/dist/cli/index.js +2 -0
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/core/config.d.ts +2 -1
  24. package/dist/core/config.d.ts.map +1 -1
  25. package/dist/core/config.js +28 -0
  26. package/dist/core/config.js.map +1 -1
  27. package/dist/core/scaffold/functions-generator.d.ts +5 -0
  28. package/dist/core/scaffold/functions-generator.d.ts.map +1 -1
  29. package/dist/core/scaffold/functions-generator.js +649 -218
  30. package/dist/core/scaffold/functions-generator.js.map +1 -1
  31. package/dist/core/scaffold/model-parser.d.ts +1 -1
  32. package/dist/core/scaffold/model-parser.js +99 -99
  33. package/dist/core/scaffold/nextjs-generator.js +181 -181
  34. package/dist/core/scaffold/openapi-generator.d.ts +3 -0
  35. package/dist/core/scaffold/openapi-generator.d.ts.map +1 -0
  36. package/dist/core/scaffold/openapi-generator.js +190 -0
  37. package/dist/core/scaffold/openapi-generator.js.map +1 -0
  38. package/dist/core/scaffold/ui-generator.js +656 -656
  39. package/dist/database/base-model.d.ts +3 -3
  40. package/dist/database/base-model.js +3 -3
  41. package/dist/index.d.ts +2 -2
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/types/index.d.ts +4 -0
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/dist/utils/package-manager.d.ts +2 -1
  48. package/dist/utils/package-manager.d.ts.map +1 -1
  49. package/dist/utils/package-manager.js +14 -10
  50. package/dist/utils/package-manager.js.map +1 -1
  51. package/package.json +81 -74
  52. package/src/__tests__/__snapshots__/functions-generator.test.ts.snap +445 -0
  53. package/src/__tests__/__snapshots__/nextjs-generator.test.ts.snap +194 -0
  54. package/src/__tests__/__snapshots__/ui-generator.test.ts.snap +524 -0
  55. package/src/__tests__/config.test.ts +122 -0
  56. package/src/__tests__/dev.test.ts +42 -0
  57. package/src/__tests__/fixtures.ts +83 -0
  58. package/src/__tests__/functions-generator.test.ts +101 -0
  59. package/src/__tests__/init.test.ts +59 -0
  60. package/src/__tests__/nextjs-generator.test.ts +97 -0
  61. package/src/__tests__/openapi-generator.test.ts +43 -0
  62. package/src/__tests__/package-manager.test.ts +189 -0
  63. package/src/__tests__/scaffold.test.ts +39 -0
  64. package/src/__tests__/string-utils.test.ts +75 -0
  65. package/src/__tests__/ui-generator.test.ts +144 -0
  66. package/src/cli/commands/create-model.ts +141 -0
  67. package/src/cli/commands/dev.ts +794 -0
  68. package/src/cli/commands/index.ts +8 -0
  69. package/src/cli/commands/init.ts +3363 -0
  70. package/src/cli/commands/provision.ts +193 -0
  71. package/src/cli/commands/scaffold.ts +786 -0
  72. package/src/cli/index.ts +73 -0
  73. package/src/core/config.ts +244 -0
  74. package/src/core/scaffold/functions-generator.ts +674 -0
  75. package/src/core/scaffold/model-parser.ts +627 -0
  76. package/src/core/scaffold/nextjs-generator.ts +217 -0
  77. package/src/core/scaffold/openapi-generator.ts +212 -0
  78. package/src/core/scaffold/ui-generator.ts +945 -0
  79. package/src/database/base-model.ts +184 -0
  80. package/src/database/client.ts +140 -0
  81. package/src/database/repository.ts +104 -0
  82. package/src/database/runtime-check.ts +25 -0
  83. package/src/index.ts +27 -0
  84. package/src/types/index.ts +45 -0
  85. package/src/utils/package-manager.ts +229 -0
  86. package/dist/cli/commands/build.d.ts +0 -6
  87. package/dist/cli/commands/build.d.ts.map +0 -1
  88. package/dist/cli/commands/build.js +0 -177
  89. package/dist/cli/commands/build.js.map +0 -1
  90. package/dist/cli/commands/deploy.d.ts +0 -3
  91. package/dist/cli/commands/deploy.d.ts.map +0 -1
  92. package/dist/cli/commands/deploy.js +0 -147
  93. package/dist/cli/commands/deploy.js.map +0 -1
  94. package/dist/cli/commands/setup.d.ts +0 -6
  95. package/dist/cli/commands/setup.d.ts.map +0 -1
  96. package/dist/cli/commands/setup.js +0 -254
  97. package/dist/cli/commands/setup.js.map +0 -1
@@ -0,0 +1,229 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { execSync } from "child_process";
4
+ import { BackendLanguage } from "../types";
5
+
6
+ /**
7
+ * Supported package managers
8
+ */
9
+ export type PackageManager = "npm" | "pnpm";
10
+
11
+ /**
12
+ * Package manager command mappings
13
+ */
14
+ export interface PackageManagerCommands {
15
+ /** The binary name: "npm" or "pnpm" */
16
+ name: PackageManager;
17
+ /** Install all dependencies: "pnpm install" / "npm install" */
18
+ install: string;
19
+ /** Install with lockfile: "pnpm install --frozen-lockfile" / "npm ci" */
20
+ ci: string;
21
+ /** Add a dependency: "pnpm add" / "npm install" */
22
+ add: string;
23
+ /** Add a dev dependency: "pnpm add -D" / "npm install -D" */
24
+ addDev: string;
25
+ /** Add a global dependency: "pnpm add -g" / "npm install -g" */
26
+ addGlobal: string;
27
+ /** Execute a package binary: "pnpm exec" / "npx" */
28
+ exec: string;
29
+ /** Download & execute: "pnpm dlx" / "npx" */
30
+ dlx: string;
31
+ /** Run a script: "pnpm run" / "npm run" */
32
+ run: string;
33
+ /** Run a script with filter: "pnpm run --filter <ws>" / "npm run --workspace=<ws>" */
34
+ runFilter: (workspace: string) => string;
35
+ /** Start script: "pnpm start" / "npm start" */
36
+ start: string;
37
+ /** Install production only (in temp dir for CI): "pnpm install --prod" / "npm install --omit=dev" */
38
+ installProd: string;
39
+ /** create-next-app flag: "--use-pnpm" / (none for npm) */
40
+ createNextAppFlag: string | null;
41
+ }
42
+
43
+ /**
44
+ * Get the full command mapping for the given package manager
45
+ */
46
+ export function getCommands(pm: PackageManager): PackageManagerCommands {
47
+ if (pm === "pnpm") {
48
+ return {
49
+ name: "pnpm",
50
+ install: "pnpm install",
51
+ ci: "pnpm install --frozen-lockfile",
52
+ add: "pnpm add",
53
+ addDev: "pnpm add -D",
54
+ addGlobal: "pnpm add -g",
55
+ exec: "pnpm exec",
56
+ dlx: "pnpm dlx",
57
+ run: "pnpm run",
58
+ runFilter: (ws) => `pnpm run --filter ${ws}`,
59
+ start: "pnpm start",
60
+ installProd: "pnpm install --prod",
61
+ createNextAppFlag: "--use-pnpm",
62
+ };
63
+ }
64
+
65
+ // npm
66
+ return {
67
+ name: "npm",
68
+ install: "npm install",
69
+ ci: "npm ci",
70
+ add: "npm install",
71
+ addDev: "npm install -D",
72
+ addGlobal: "npm install -g",
73
+ exec: "npx",
74
+ dlx: "npx",
75
+ run: "npm run",
76
+ runFilter: (ws) => `npm run --workspace=${ws}`,
77
+ start: "npm start",
78
+ installProd: "npm install --omit=dev",
79
+ createNextAppFlag: null,
80
+ };
81
+ }
82
+
83
+ /**
84
+ * Detect the preferred package manager for new project initialisation.
85
+ *
86
+ * Strategy (pnpm-preferred):
87
+ * 1. If pnpm is installed on the system → always use pnpm
88
+ * (even when invoked via `npx`, since `npx` is often used out of habit)
89
+ * 2. Otherwise → npm
90
+ *
91
+ * This is intentionally independent of `npm_config_user_agent` so that
92
+ * `npx swallowkit init` still creates a pnpm project when pnpm is available.
93
+ */
94
+ export function detectFromUserAgent(): PackageManager {
95
+ return isPnpmInstalled() ? "pnpm" : "npm";
96
+ }
97
+
98
+ /**
99
+ * Check whether pnpm is available on the system PATH.
100
+ */
101
+ function isPnpmInstalled(): boolean {
102
+ try {
103
+ execSync("pnpm --version", { stdio: "ignore" });
104
+ return true;
105
+ } catch {
106
+ return false;
107
+ }
108
+ }
109
+
110
+ /**
111
+ * Detect the package manager used in an existing project directory
112
+ * by checking for lockfiles.
113
+ *
114
+ * Priority: pnpm-lock.yaml > package-lock.json > fallback to detectFromUserAgent()
115
+ */
116
+ export function detectFromProject(projectDir?: string): PackageManager {
117
+ const dir = projectDir || process.cwd();
118
+
119
+ if (fs.existsSync(path.join(dir, "pnpm-lock.yaml"))) {
120
+ return "pnpm";
121
+ }
122
+ if (fs.existsSync(path.join(dir, "package-lock.json"))) {
123
+ return "npm";
124
+ }
125
+
126
+ // No lockfile found — fall back to user agent detection
127
+ return detectFromUserAgent();
128
+ }
129
+
130
+ /**
131
+ * Get spawn arguments (command + args array) for the package manager.
132
+ * Useful when calling spawn() directly.
133
+ *
134
+ * Examples:
135
+ * spawnArgs("pnpm", ["add", "next@latest"]) => { cmd: "pnpm", args: ["add", "next@latest"] }
136
+ * spawnArgs("npm", ["add", "next@latest"]) => { cmd: "npm", args: ["install", "next@latest"] }
137
+ */
138
+ export function spawnArgs(
139
+ pm: PackageManager,
140
+ args: string[]
141
+ ): { cmd: string; args: string[] } {
142
+ return { cmd: pm, args };
143
+ }
144
+
145
+ /**
146
+ * Workspace configuration helpers
147
+ */
148
+ export function getWorkspaceConfig(pm: PackageManager, workspaces: string[]) {
149
+ if (pm === "pnpm") {
150
+ return {
151
+ /** pnpm uses pnpm-workspace.yaml */
152
+ type: "file" as const,
153
+ filename: "pnpm-workspace.yaml",
154
+ content: `packages:\n${workspaces.map((w) => ` - ${w}`).join("\n")}\n`,
155
+ };
156
+ }
157
+
158
+ // npm uses "workspaces" field in package.json
159
+ return {
160
+ type: "packageJson" as const,
161
+ field: "workspaces",
162
+ value: workspaces,
163
+ };
164
+ }
165
+
166
+ /**
167
+ * CI/CD setup step for GitHub Actions
168
+ */
169
+ export function getCiSetupStep(pm: PackageManager): string {
170
+ if (pm === "pnpm") {
171
+ return ` - name: Setup pnpm
172
+ uses: pnpm/action-setup@v4`;
173
+ }
174
+ // npm: no extra setup needed (comes with Node.js)
175
+ return "";
176
+ }
177
+
178
+ /**
179
+ * CI/CD setup steps for Azure Pipelines
180
+ */
181
+ export function getAzurePipelinesSetup(pm: PackageManager): string {
182
+ if (pm === "pnpm") {
183
+ return ` - script: |
184
+ corepack enable
185
+ corepack prepare pnpm@latest --activate
186
+ displayName: 'Setup pnpm'`;
187
+ }
188
+ // npm: no extra step needed
189
+ return "";
190
+ }
191
+
192
+ /**
193
+ * Build script for generated package.json (depends on workspace command syntax)
194
+ */
195
+ export function getBuildScript(pm: PackageManager): string {
196
+ const copyStandaloneAssets = `node -e "const fs=require('fs');fs.mkdirSync('.next/standalone/.next',{recursive:true});if(fs.existsSync('.next/static'))fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});if(fs.existsSync('public'))fs.cpSync('public','.next/standalone/public',{recursive:true});"`;
197
+
198
+ if (pm === "pnpm") {
199
+ return `pnpm run --filter shared build && next build --webpack && ${copyStandaloneAssets}`;
200
+ }
201
+ return `npm run --workspace=shared build && next build --webpack && ${copyStandaloneAssets}`;
202
+ }
203
+
204
+ /**
205
+ * Functions prestart script
206
+ */
207
+ export function getFunctionsPrestart(pm: PackageManager): string {
208
+ if (pm === "pnpm") {
209
+ return "pnpm run build";
210
+ }
211
+ return "npm run build";
212
+ }
213
+
214
+ /**
215
+ * Functions:start script for root package.json
216
+ */
217
+ export function getFunctionsStartScript(
218
+ pm: PackageManager,
219
+ backendLanguage: BackendLanguage = "typescript"
220
+ ): string {
221
+ if (backendLanguage === "typescript") {
222
+ if (pm === "pnpm") {
223
+ return "cd functions && pnpm start";
224
+ }
225
+ return "cd functions && npm start";
226
+ }
227
+
228
+ return "cd functions && func start";
229
+ }
@@ -1,6 +0,0 @@
1
- interface BuildOptions {
2
- output: string;
3
- }
4
- export declare function buildCommand(options: BuildOptions): Promise<void>;
5
- export {};
6
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBA+BvD"}
@@ -1,177 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.buildCommand = buildCommand;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- async function buildCommand(options) {
40
- console.log("🔨 Building Next.js app for Azure Static Web Apps...");
41
- const projectRoot = process.cwd();
42
- const outputDir = path.join(projectRoot, options.output);
43
- try {
44
- // 1. Next.js の設定を確認・更新
45
- console.log("\n⚙️ Configuring Next.js for Azure deployment...");
46
- await ensureNextJsConfig(projectRoot);
47
- // 2. Next.js をビルド (standalone モード)
48
- console.log("\n📦 Building Next.js application...");
49
- await buildNextJs(projectRoot);
50
- // 3. ビルド成果物を出力ディレクトリにコピー
51
- console.log("\n📦 Preparing deployment artifacts...");
52
- await copyBuildArtifacts(projectRoot, outputDir);
53
- console.log(`\n✅ Build completed!`);
54
- console.log(`📁 Output directory: ${outputDir}`);
55
- console.log(`📁 Standalone output: ${path.join(projectRoot, '.next/standalone')}`);
56
- console.log("\n📝 Next steps:");
57
- console.log(" 1. swallowkit deploy (Deploy to Azure Static Web Apps)");
58
- }
59
- catch (error) {
60
- console.error("❌ Build failed:", error);
61
- if (error instanceof Error) {
62
- console.error("Details:", error.message);
63
- }
64
- process.exit(1);
65
- }
66
- }
67
- // Next.js の設定を確認・更新 (standalone モード有効化)
68
- async function ensureNextJsConfig(projectRoot) {
69
- const nextConfigPath = path.join(projectRoot, 'next.config.js');
70
- const nextConfigMjsPath = path.join(projectRoot, 'next.config.mjs');
71
- let configPath = nextConfigPath;
72
- let isEsm = false;
73
- if (!fs.existsSync(nextConfigPath) && fs.existsSync(nextConfigMjsPath)) {
74
- configPath = nextConfigMjsPath;
75
- isEsm = true;
76
- }
77
- // 既存の設定を読み込む
78
- let configContent = '';
79
- if (fs.existsSync(configPath)) {
80
- configContent = fs.readFileSync(configPath, 'utf-8');
81
- }
82
- // standalone モードが設定されているか確認
83
- if (configContent.includes("output: 'standalone'") || configContent.includes('output: "standalone"')) {
84
- console.log('✅ Next.js standalone mode is already configured');
85
- return;
86
- }
87
- // standalone モードを追加
88
- const newConfig = isEsm
89
- ? `/** @type {import('next').NextConfig} */
90
- const nextConfig = {
91
- output: 'standalone',
92
- // その他の設定はここに追加
93
- };
94
-
95
- export default nextConfig;
96
- `
97
- : `/** @type {import('next').NextConfig} */
98
- const nextConfig = {
99
- output: 'standalone',
100
- // その他の設定はここに追加
101
- };
102
-
103
- module.exports = nextConfig;
104
- `;
105
- fs.writeFileSync(configPath, newConfig, 'utf-8');
106
- console.log('✅ Next.js configured for standalone mode');
107
- }
108
- async function buildNextJs(projectRoot) {
109
- const { spawn } = require('child_process');
110
- return new Promise((resolve, reject) => {
111
- const build = spawn('npm', ['run', 'build'], {
112
- cwd: projectRoot,
113
- stdio: 'inherit',
114
- shell: true
115
- });
116
- build.on('close', (code) => {
117
- if (code === 0) {
118
- console.log('✅ Next.js build completed');
119
- resolve();
120
- }
121
- else {
122
- reject(new Error(`Next.js build failed with code ${code}`));
123
- }
124
- });
125
- });
126
- }
127
- // ビルド成果物を出力ディレクトリにコピー
128
- async function copyBuildArtifacts(projectRoot, outputDir) {
129
- if (!fs.existsSync(outputDir)) {
130
- fs.mkdirSync(outputDir, { recursive: true });
131
- }
132
- const standaloneDir = path.join(projectRoot, '.next/standalone');
133
- const staticDir = path.join(projectRoot, '.next/static');
134
- const publicDir = path.join(projectRoot, 'public');
135
- if (!fs.existsSync(standaloneDir)) {
136
- console.warn('⚠️ Standalone output not found. Make sure output: "standalone" is set in next.config.js');
137
- return;
138
- }
139
- // standalone ディレクトリの内容をコピー
140
- console.log('📦 Copying standalone output...');
141
- const { execSync } = require('child_process');
142
- try {
143
- // Windows の場合は xcopy、それ以外は cp を使用
144
- if (process.platform === 'win32') {
145
- execSync(`xcopy "${standaloneDir}" "${outputDir}" /E /I /Y /Q`, { stdio: 'inherit' });
146
- }
147
- else {
148
- execSync(`cp -r "${standaloneDir}/." "${outputDir}/"`, { stdio: 'inherit' });
149
- }
150
- // .next/static をコピー
151
- if (fs.existsSync(staticDir)) {
152
- const targetStaticDir = path.join(outputDir, '.next/static');
153
- fs.mkdirSync(path.dirname(targetStaticDir), { recursive: true });
154
- if (process.platform === 'win32') {
155
- execSync(`xcopy "${staticDir}" "${targetStaticDir}" /E /I /Y /Q`, { stdio: 'inherit' });
156
- }
157
- else {
158
- execSync(`cp -r "${staticDir}" "${targetStaticDir}"`, { stdio: 'inherit' });
159
- }
160
- }
161
- // public ディレクトリをコピー
162
- if (fs.existsSync(publicDir)) {
163
- const targetPublicDir = path.join(outputDir, 'public');
164
- if (process.platform === 'win32') {
165
- execSync(`xcopy "${publicDir}" "${targetPublicDir}" /E /I /Y /Q`, { stdio: 'inherit' });
166
- }
167
- else {
168
- execSync(`cp -r "${publicDir}" "${targetPublicDir}"`, { stdio: 'inherit' });
169
- }
170
- }
171
- console.log('✅ Build artifacts copied successfully');
172
- }
173
- catch (error) {
174
- throw new Error(`Failed to copy build artifacts: ${error}`);
175
- }
176
- }
177
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const deployCommand: Command;
3
- //# sourceMappingURL=deploy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,aAAa,SAgDtB,CAAC"}
@@ -1,147 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deployCommand = void 0;
4
- const commander_1 = require("commander");
5
- const child_process_1 = require("child_process");
6
- exports.deployCommand = new commander_1.Command()
7
- .name('deploy')
8
- .description('Deploy to Azure Static Web Apps')
9
- .option('--swa-name <name>', 'Azure Static Web Apps resource name')
10
- .option('--resource-group <name>', 'Azure resource group name')
11
- .option('--location <location>', 'Azure region', 'japaneast')
12
- .option('--skip-build', 'Skip build step', false)
13
- .action(async (options) => {
14
- console.log('🚀 Deploying to Azure...\n');
15
- try {
16
- const projectRoot = process.cwd();
17
- // Check if Azure CLI is installed
18
- await checkAzureCli();
19
- // Check if logged in to Azure
20
- await checkAzureLogin();
21
- // Build if not skipped
22
- if (!options.skipBuild) {
23
- console.log('📦 Building project...\n');
24
- await runBuild(projectRoot);
25
- }
26
- // Deploy Static Web Apps
27
- if (options.swaName && options.resourceGroup) {
28
- await deploySwa(options, projectRoot);
29
- }
30
- else {
31
- console.log('⚠️ Missing required options: --swa-name and --resource-group');
32
- console.log('\n📝 Usage:');
33
- console.log(' swallowkit deploy --swa-name <name> --resource-group <group>');
34
- process.exit(1);
35
- }
36
- console.log('\n🎉 Deployment completed!');
37
- console.log('\n📝 Next steps:');
38
- console.log(' 1. Visit Azure Portal to verify deployment');
39
- console.log(' 2. Configure environment variables for backend connection');
40
- console.log(' 3. Check application logs if needed');
41
- }
42
- catch (error) {
43
- console.error('❌ Deployment failed:', error);
44
- if (error instanceof Error) {
45
- console.error('Details:', error.message);
46
- }
47
- process.exit(1);
48
- }
49
- });
50
- async function checkAzureCli() {
51
- return new Promise((resolve, reject) => {
52
- const check = (0, child_process_1.spawn)('az', ['--version'], {
53
- stdio: 'pipe',
54
- shell: true
55
- });
56
- check.on('close', (code) => {
57
- if (code === 0) {
58
- console.log('✅ Azure CLI is installed');
59
- resolve();
60
- }
61
- else {
62
- reject(new Error('Azure CLI is not installed. Please install it from https://aka.ms/installazurecliwindows'));
63
- }
64
- });
65
- });
66
- }
67
- async function checkAzureLogin() {
68
- return new Promise((resolve, reject) => {
69
- const check = (0, child_process_1.spawn)('az', ['account', 'show'], {
70
- stdio: 'pipe',
71
- shell: true
72
- });
73
- check.on('close', (code) => {
74
- if (code === 0) {
75
- console.log('✅ Logged in to Azure');
76
- resolve();
77
- }
78
- else {
79
- reject(new Error('Not logged in to Azure. Please run: az login'));
80
- }
81
- });
82
- });
83
- }
84
- async function runBuild(projectRoot) {
85
- return new Promise((resolve, reject) => {
86
- const build = (0, child_process_1.spawn)('npm', ['run', 'build'], {
87
- cwd: projectRoot,
88
- stdio: 'inherit',
89
- shell: true
90
- });
91
- build.on('close', (code) => {
92
- if (code === 0) {
93
- resolve();
94
- }
95
- else {
96
- reject(new Error(`Build failed with code ${code}`));
97
- }
98
- });
99
- });
100
- }
101
- async function deploySwa(options, projectRoot) {
102
- console.log('\n📦 Deploying to Azure Static Web Apps...');
103
- console.log(` Resource: ${options.swaName}`);
104
- console.log(` Resource Group: ${options.resourceGroup}\n`);
105
- // Check if SWA CLI is installed
106
- const swaCliCheck = (0, child_process_1.spawn)('swa', ['--version'], {
107
- stdio: 'pipe',
108
- shell: true
109
- });
110
- await new Promise((resolve, reject) => {
111
- swaCliCheck.on('close', (code) => {
112
- if (code === 0) {
113
- resolve();
114
- }
115
- else {
116
- reject(new Error('SWA CLI is not installed. Install it with: npm install -g @azure/static-web-apps-cli'));
117
- }
118
- });
119
- });
120
- // Deploy using SWA CLI
121
- const appLocation = './';
122
- const outputLocation = 'dist'; // standalone build output
123
- const deployArgs = [
124
- 'deploy',
125
- '--app-location', appLocation,
126
- '--output-location', outputLocation,
127
- '--resource-group', options.resourceGroup,
128
- '--app-name', options.swaName,
129
- ];
130
- return new Promise((resolve, reject) => {
131
- const deploy = (0, child_process_1.spawn)('swa', deployArgs, {
132
- cwd: projectRoot,
133
- stdio: 'inherit',
134
- shell: true
135
- });
136
- deploy.on('close', (code) => {
137
- if (code === 0) {
138
- console.log('\n✅ Static Web Apps deployment completed');
139
- resolve();
140
- }
141
- else {
142
- reject(new Error(`SWA deployment failed with code ${code}`));
143
- }
144
- });
145
- });
146
- }
147
- //# sourceMappingURL=deploy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- interface SetupOptions {
2
- yes?: boolean;
3
- }
4
- export declare function setupCommand(options?: SetupOptions): Promise<void>;
5
- export {};
6
- //# sourceMappingURL=setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,iBAiI5D"}