underpeaks-nxf 1.0.16 → 1.0.18
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuLnC,eAAO,MAAM,eAAe,SAiHxB,CAAA"}
|
|
@@ -15,6 +15,25 @@ const inquirer_1 = __importDefault(require("inquirer"));
|
|
|
15
15
|
const extract_zip_1 = __importDefault(require("extract-zip"));
|
|
16
16
|
const child_process_1 = require("child_process");
|
|
17
17
|
const CREDENTIALS_PATH = path_1.default.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.nxf', 'credentials.json');
|
|
18
|
+
// FIX: new — stores per-project preferences (currently just state manager
|
|
19
|
+
// choice) across runs, keyed by project_id. Separate from credentials.json
|
|
20
|
+
// since this is project preference, not auth, and should survive
|
|
21
|
+
// login/logout cycles.
|
|
22
|
+
const PROJECT_CONFIG_PATH = path_1.default.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.nxf', 'project-config.json');
|
|
23
|
+
const FLUTTER_STATE_OPTIONS = [
|
|
24
|
+
{ name: 'Riverpod (recommended)', value: 'riverpod' },
|
|
25
|
+
{ name: 'Provider', value: 'provider' },
|
|
26
|
+
{ name: 'BLoC', value: 'bloc' },
|
|
27
|
+
];
|
|
28
|
+
// FIX: asked for consistency with Flutter, but not yet wired into the
|
|
29
|
+
// Next.js generator — no state-management templates exist for any of
|
|
30
|
+
// these yet. The choice is saved and passed through regardless, so
|
|
31
|
+
// nothing needs to change here again once that generator work lands.
|
|
32
|
+
const NEXTJS_STATE_OPTIONS = [
|
|
33
|
+
{ name: 'Zustand (recommended)', value: 'zustand' },
|
|
34
|
+
{ name: 'React Query (TanStack Query)', value: 'react-query' },
|
|
35
|
+
{ name: 'Jotai', value: 'jotai' },
|
|
36
|
+
];
|
|
18
37
|
async function getCredentials() {
|
|
19
38
|
if (!await fs_extra_1.default.pathExists(CREDENTIALS_PATH)) {
|
|
20
39
|
console.error(chalk_1.default.red('\n Not logged in. Run: nxf login\n'));
|
|
@@ -22,6 +41,20 @@ async function getCredentials() {
|
|
|
22
41
|
}
|
|
23
42
|
return fs_extra_1.default.readJson(CREDENTIALS_PATH);
|
|
24
43
|
}
|
|
44
|
+
async function readProjectConfig() {
|
|
45
|
+
if (!await fs_extra_1.default.pathExists(PROJECT_CONFIG_PATH))
|
|
46
|
+
return {};
|
|
47
|
+
try {
|
|
48
|
+
return await fs_extra_1.default.readJson(PROJECT_CONFIG_PATH);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return {};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function writeProjectConfig(config) {
|
|
55
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(PROJECT_CONFIG_PATH));
|
|
56
|
+
await fs_extra_1.default.writeJson(PROJECT_CONFIG_PATH, config, { spaces: 2 });
|
|
57
|
+
}
|
|
25
58
|
async function resolveProjectId(creds, explicitProjectId) {
|
|
26
59
|
if (explicitProjectId)
|
|
27
60
|
return explicitProjectId;
|
|
@@ -62,6 +95,40 @@ async function resolveProjectId(creds, explicitProjectId) {
|
|
|
62
95
|
console.log('');
|
|
63
96
|
return selectedId;
|
|
64
97
|
}
|
|
98
|
+
// FIX: new — resolves which state manager to use for this generate run.
|
|
99
|
+
// Priority: --state flag > --change-state forces a re-prompt even if a
|
|
100
|
+
// saved choice exists > saved choice from a previous run for this
|
|
101
|
+
// project > interactive prompt (first time). The result is always saved
|
|
102
|
+
// back so future runs remember it without asking again.
|
|
103
|
+
async function resolveStateManager(projectId, target, explicitState, forceReprompt) {
|
|
104
|
+
const configKey = target === 'flutter' ? 'flutter_state' : 'nextjs_state';
|
|
105
|
+
const options = target === 'flutter' ? FLUTTER_STATE_OPTIONS : NEXTJS_STATE_OPTIONS;
|
|
106
|
+
if (explicitState) {
|
|
107
|
+
const config = await readProjectConfig();
|
|
108
|
+
config[projectId] = { ...config[projectId], [configKey]: explicitState };
|
|
109
|
+
await writeProjectConfig(config);
|
|
110
|
+
return explicitState;
|
|
111
|
+
}
|
|
112
|
+
const config = await readProjectConfig();
|
|
113
|
+
const saved = config[projectId]?.[configKey];
|
|
114
|
+
if (saved && !forceReprompt) {
|
|
115
|
+
return saved;
|
|
116
|
+
}
|
|
117
|
+
const label = target === 'flutter' ? 'Flutter' : 'Next.js';
|
|
118
|
+
const { chosen } = await inquirer_1.default.prompt([
|
|
119
|
+
{
|
|
120
|
+
type: 'list',
|
|
121
|
+
name: 'chosen',
|
|
122
|
+
message: `Which state management library for ${label}?`,
|
|
123
|
+
choices: options,
|
|
124
|
+
default: options[0].value,
|
|
125
|
+
},
|
|
126
|
+
]);
|
|
127
|
+
config[projectId] = { ...config[projectId], [configKey]: chosen };
|
|
128
|
+
await writeProjectConfig(config);
|
|
129
|
+
console.log('');
|
|
130
|
+
return chosen;
|
|
131
|
+
}
|
|
65
132
|
function runInstall(cwd, target) {
|
|
66
133
|
return new Promise((resolve) => {
|
|
67
134
|
const [cmd, args] = target === 'flutter'
|
|
@@ -81,7 +148,8 @@ exports.generateCommand = new commander_1.Command('generate')
|
|
|
81
148
|
.option('--page <name>', 'Regenerate a specific page only')
|
|
82
149
|
.option('--pages <names>', 'Regenerate multiple pages (comma-separated)')
|
|
83
150
|
.option('--out <dir>', 'Output directory (default: current directory, next to where you run nxf)')
|
|
84
|
-
.option('--state <manager>', 'State management
|
|
151
|
+
.option('--state <manager>', 'State management override — skips the prompt and saves this as the new default for this project')
|
|
152
|
+
.option('--change-state', 'Force the state-management prompt again, even if a choice was already saved for this project')
|
|
85
153
|
.option('--no-install', 'Skip running flutter pub get / npm install after generating')
|
|
86
154
|
.option('--zip', 'Keep the raw .zip file instead of auto-extracting')
|
|
87
155
|
.action(async (target, options) => {
|
|
@@ -91,6 +159,7 @@ exports.generateCommand = new commander_1.Command('generate')
|
|
|
91
159
|
}
|
|
92
160
|
const creds = await getCredentials();
|
|
93
161
|
const projectId = await resolveProjectId(creds, options.project);
|
|
162
|
+
const stateManager = await resolveStateManager(projectId, target, options.state, options.changeState);
|
|
94
163
|
const spinner = (0, ora_1.default)(`Generating ${target} code…`).start();
|
|
95
164
|
try {
|
|
96
165
|
const res = await (0, node_fetch_1.default)(`${creds.api_base}/api/codegen-private/generate/${target}`, {
|
|
@@ -101,7 +170,7 @@ exports.generateCommand = new commander_1.Command('generate')
|
|
|
101
170
|
},
|
|
102
171
|
body: JSON.stringify({
|
|
103
172
|
project_id: projectId,
|
|
104
|
-
state_manager:
|
|
173
|
+
state_manager: stateManager,
|
|
105
174
|
filter_models: options.models
|
|
106
175
|
? options.models.split(',').map((m) => m.trim())
|
|
107
176
|
: options.model ? [options.model] : null,
|
|
@@ -117,18 +186,19 @@ exports.generateCommand = new commander_1.Command('generate')
|
|
|
117
186
|
}
|
|
118
187
|
const arrayBuffer = await res.arrayBuffer();
|
|
119
188
|
const buffer = Buffer.from(arrayBuffer);
|
|
120
|
-
const projectName = res.headers.get('x-underpeaks-project-name') ?? `underpeaks
|
|
189
|
+
const projectName = res.headers.get('x-underpeaks-project-name') ?? `underpeaks-project`;
|
|
121
190
|
const baseDir = path_1.default.resolve(options.out ?? process.cwd());
|
|
122
|
-
const
|
|
123
|
-
|
|
191
|
+
const targetDir = path_1.default.join(baseDir, target);
|
|
192
|
+
const outDir = path_1.default.join(targetDir, projectName);
|
|
193
|
+
await fs_extra_1.default.ensureDir(targetDir);
|
|
124
194
|
if (options.zip) {
|
|
125
|
-
const zipPath = path_1.default.join(
|
|
195
|
+
const zipPath = path_1.default.join(targetDir, `${projectName}.zip`);
|
|
126
196
|
await fs_extra_1.default.writeFile(zipPath, buffer);
|
|
127
197
|
spinner.succeed(chalk_1.default.green(`Generated successfully → ${zipPath}`));
|
|
128
198
|
console.log(chalk_1.default.dim(`\n Unzip and copy into your ${target} project.\n`));
|
|
129
199
|
return;
|
|
130
200
|
}
|
|
131
|
-
const tmpZipPath = path_1.default.join(
|
|
201
|
+
const tmpZipPath = path_1.default.join(targetDir, `.nxf-${Date.now()}.zip`);
|
|
132
202
|
await fs_extra_1.default.writeFile(tmpZipPath, buffer);
|
|
133
203
|
spinner.text = 'Extracting…';
|
|
134
204
|
if (await fs_extra_1.default.pathExists(outDir)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":";AAAA,iEAAiE;;;;;;AAEjE,yCAAmC;AACnC,kDAA+B;AAC/B,8CAA6B;AAC7B,wDAAkC;AAClC,gDAA8B;AAC9B,4DAAoC;AACpC,wDAAkC;AAClC,8DAAqC;AACrC,iDAAuC;AAEvC,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,MAAM,EACN,kBAAkB,CACnB,CAAA;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|