create-nextblock 0.2.12 → 0.2.14
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/bin/create-nextblock.js +23 -13
- package/package.json +1 -1
package/bin/create-nextblock.js
CHANGED
|
@@ -189,28 +189,38 @@ async function runSetupWizard(projectDir, projectName) {
|
|
|
189
189
|
clack.note('I will now open your browser to log into Supabase.');
|
|
190
190
|
await execa('npx', ['supabase', 'login'], { stdio: 'inherit', cwd: projectPath });
|
|
191
191
|
|
|
192
|
-
clack.note('Now, please select your NextBlock project
|
|
193
|
-
|
|
192
|
+
clack.note('Now, please select your NextBlock project when prompted.');
|
|
193
|
+
await execa('npx', ['supabase', 'link'], {
|
|
194
194
|
cwd: projectPath,
|
|
195
|
+
stdio: 'inherit',
|
|
195
196
|
});
|
|
196
|
-
const linkOutput = `${linkStdout || ''}${linkStderr || ''}`;
|
|
197
|
-
if (linkStdout) process.stdout.write(linkStdout);
|
|
198
|
-
if (linkStderr) process.stderr.write(linkStderr);
|
|
199
197
|
|
|
200
198
|
// Ensure supabase assets exist (config + migrations) after link in case the CLI created/overrode files
|
|
201
199
|
await ensureSupabaseAssets(projectPath);
|
|
202
200
|
|
|
203
201
|
const configTomlPath = resolve(projectPath, 'supabase', 'config.toml');
|
|
204
|
-
|
|
205
|
-
if (
|
|
206
|
-
|
|
202
|
+
let projectId = null;
|
|
203
|
+
if (await fs.pathExists(configTomlPath)) {
|
|
204
|
+
const configToml = await fs.readFile(configTomlPath, 'utf8');
|
|
205
|
+
const projectMatch = configToml.match(/project_id\s*=\s*"([^"]+)"/);
|
|
206
|
+
if (projectMatch?.[1] && !projectMatch[1].includes('env(')) {
|
|
207
|
+
projectId = projectMatch[1];
|
|
208
|
+
}
|
|
207
209
|
}
|
|
208
|
-
const projectId = parsedRef;
|
|
209
210
|
|
|
210
|
-
if (!
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
211
|
+
if (!projectId) {
|
|
212
|
+
const manual = await clack.text({
|
|
213
|
+
message:
|
|
214
|
+
'Enter your Supabase project ref (found in the Supabase dashboard URL or the link output, e.g., abcdefghijklmnopqrstu):',
|
|
215
|
+
validate: (val) => (!val ? 'Project ref is required' : undefined),
|
|
216
|
+
});
|
|
217
|
+
if (clack.isCancel(manual)) {
|
|
218
|
+
handleWizardCancel('Setup cancelled.');
|
|
219
|
+
}
|
|
220
|
+
projectId = manual.trim();
|
|
221
|
+
const configContent = `project_id = "env(SUPABASE_PROJECT_ID)"\n`;
|
|
222
|
+
await fs.writeFile(configTomlPath, configContent);
|
|
223
|
+
clack.note('Created supabase/config.toml with project_id env binding.');
|
|
214
224
|
}
|
|
215
225
|
|
|
216
226
|
clack.note('Please go to your Supabase project dashboard to get the following secrets.');
|