@genfeedai/create 0.1.1 → 0.1.3
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/dist/index.js +66 -24
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -72,13 +72,16 @@ NEXT_PUBLIC_API_URL=http://localhost:3001/api
|
|
|
72
72
|
# NEXT_PUBLIC_URL=http://localhost:3000
|
|
73
73
|
# NEXT_PUBLIC_TTS_ENABLED=false
|
|
74
74
|
`;
|
|
75
|
+
const ENV_LOCATIONS = ['.env', 'apps/api/.env'];
|
|
75
76
|
async function writeDefaultEnv(projectDirectory) {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
for (const location of ENV_LOCATIONS) {
|
|
78
|
+
const envPath = (0, node_path_1.join)(projectDirectory, location);
|
|
79
|
+
const hasEnv = await fileExists(envPath);
|
|
80
|
+
if (!hasEnv) {
|
|
81
|
+
await (0, promises_1.mkdir)((0, node_path_1.dirname)(envPath), { recursive: true });
|
|
82
|
+
await (0, promises_1.writeFile)(envPath, DEFAULT_ENV, 'utf-8');
|
|
83
|
+
}
|
|
80
84
|
}
|
|
81
|
-
await (0, promises_1.writeFile)(envPath, DEFAULT_ENV, 'utf-8');
|
|
82
85
|
consola_1.consola.success('Created .env with working defaults');
|
|
83
86
|
}
|
|
84
87
|
/**
|
|
@@ -97,6 +100,22 @@ function openBrowser(url) {
|
|
|
97
100
|
(0, node_child_process_1.execFile)('cmd', ['/c', 'start', '', url]);
|
|
98
101
|
}
|
|
99
102
|
}
|
|
103
|
+
async function waitForServer(url, timeoutMs = 120_000) {
|
|
104
|
+
const start = Date.now();
|
|
105
|
+
while (Date.now() - start < timeoutMs) {
|
|
106
|
+
try {
|
|
107
|
+
const response = await fetch(url, { signal: AbortSignal.timeout(2000) });
|
|
108
|
+
if (response.ok || response.status === 404) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// Server not ready yet
|
|
114
|
+
}
|
|
115
|
+
await new Promise((r) => setTimeout(r, 1500));
|
|
116
|
+
}
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
100
119
|
async function runInstall(projectDirectory) {
|
|
101
120
|
const installCommand = getInstallCommand();
|
|
102
121
|
await new Promise((resolvePromise, rejectPromise) => {
|
|
@@ -122,14 +141,20 @@ async function runInstall(projectDirectory) {
|
|
|
122
141
|
return installCommand;
|
|
123
142
|
}
|
|
124
143
|
async function replaceEnvValue(projectDirectory, key, value) {
|
|
125
|
-
const envPath = (0, node_path_1.join)(projectDirectory, '.env');
|
|
126
|
-
const content = await (0, promises_1.readFile)(envPath, 'utf-8');
|
|
127
144
|
const pattern = new RegExp(`^${key}=.*$`, 'm');
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
145
|
+
for (const location of ENV_LOCATIONS) {
|
|
146
|
+
const envPath = (0, node_path_1.join)(projectDirectory, location);
|
|
147
|
+
const exists = await fileExists(envPath);
|
|
148
|
+
if (!exists) {
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
const content = await (0, promises_1.readFile)(envPath, 'utf-8');
|
|
152
|
+
if (pattern.test(content)) {
|
|
153
|
+
await (0, promises_1.writeFile)(envPath, content.replace(pattern, `${key}=${value}`), 'utf-8');
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
await (0, promises_1.appendFile)(envPath, `\n${key}=${value}`, 'utf-8');
|
|
157
|
+
}
|
|
133
158
|
}
|
|
134
159
|
}
|
|
135
160
|
/**
|
|
@@ -173,23 +198,40 @@ async function scaffoldProject(projectName) {
|
|
|
173
198
|
const installCommand = await runInstall(projectDirectory);
|
|
174
199
|
consola_1.consola.success(`Dependencies installed with ${installCommand.label}`);
|
|
175
200
|
await setupMongoDB(projectDirectory);
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
'',
|
|
185
|
-
|
|
186
|
-
|
|
201
|
+
const devCommand = installCommand.command === 'bun' ? 'bun' : 'npm';
|
|
202
|
+
const child = (0, node_child_process_1.spawn)(devCommand, ['run', 'dev'], {
|
|
203
|
+
cwd: projectDirectory,
|
|
204
|
+
stdio: 'inherit',
|
|
205
|
+
});
|
|
206
|
+
consola_1.consola.start('Waiting for dev servers to start…');
|
|
207
|
+
const [apiReady, webReady] = await Promise.all([
|
|
208
|
+
waitForServer('http://localhost:3001/api'),
|
|
209
|
+
waitForServer('http://localhost:3000'),
|
|
210
|
+
]);
|
|
211
|
+
if (apiReady && webReady) {
|
|
212
|
+
consola_1.consola.box([
|
|
213
|
+
`Genfeed Core is running.`,
|
|
214
|
+
'',
|
|
215
|
+
`Opening ${ONBOARDING_URL}`,
|
|
216
|
+
].join('\n'));
|
|
217
|
+
openBrowser(ONBOARDING_URL);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
consola_1.consola.warn('Servers did not start in time. Open manually:');
|
|
221
|
+
consola_1.consola.info(ONBOARDING_URL);
|
|
222
|
+
}
|
|
223
|
+
await new Promise((resolvePromise) => {
|
|
224
|
+
child.on('close', (code) => {
|
|
225
|
+
process.exitCode = code ?? 0;
|
|
226
|
+
resolvePromise();
|
|
227
|
+
});
|
|
228
|
+
});
|
|
187
229
|
}
|
|
188
230
|
async function main() {
|
|
189
231
|
const program = new commander_1.Command()
|
|
190
232
|
.name('genfeedai')
|
|
191
233
|
.description('Genfeed Core — AI workflow engine. Self-host for free.')
|
|
192
|
-
.version('0.1.
|
|
234
|
+
.version('0.1.3')
|
|
193
235
|
.argument('<project-name>', 'Directory name for the new project')
|
|
194
236
|
.action(async (projectName) => {
|
|
195
237
|
await scaffoldProject(projectName);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAoBA,sCAIC;AAED,8CAgBC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED