@codenotch/codenotch.cli 1.0.55 → 1.0.57
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 +2 -1
- package/dist/commands/generate/app.js +3 -1
- package/dist/commands/generate/app.js.map +1 -1
- package/dist/commands/generate/dbcontext.js +2 -2
- package/dist/commands/generate/dbcontext.js.map +1 -1
- package/dist/commands/generate/index.js +1 -1
- package/dist/commands/system/completion.d.ts +4 -1
- package/dist/commands/system/completion.js +181 -14
- package/dist/commands/system/completion.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/utils/BuildUtils.d.ts +7 -5
- package/dist/utils/BuildUtils.js +8 -6
- package/dist/utils/BuildUtils.js.map +1 -1
- package/dist/utils/DbSchemaUtils.d.ts +21 -4
- package/dist/utils/DbSchemaUtils.js +79 -4
- package/dist/utils/DbSchemaUtils.js.map +1 -1
- package/dist/utils/ProjectGeneratorUtils.d.ts +6 -1
- package/dist/utils/ProjectGeneratorUtils.js +34 -8
- package/dist/utils/ProjectGeneratorUtils.js.map +1 -1
- package/dist/utils/ProjectTemplates.d.ts +6 -4
- package/dist/utils/ProjectTemplates.js +10 -8
- package/dist/utils/ProjectTemplates.js.map +1 -1
- package/dist/utils/ProjectUtils.d.ts +10 -1
- package/dist/utils/ProjectUtils.js +19 -5
- package/dist/utils/ProjectUtils.js.map +1 -1
- package/dist/utils/TemplateUtils.d.ts +15 -1
- package/dist/utils/TemplateUtils.js +48 -11
- package/dist/utils/TemplateUtils.js.map +1 -1
- package/package.json +1 -1
- package/resources/docs/apps.md +54 -8
- package/resources/docs/project.md +4 -3
- package/resources/docs/tables.md +7 -2
|
@@ -36,10 +36,12 @@ const ELEMENT_BY_BUILDER = {
|
|
|
36
36
|
/** Modifiers making a column non nullable */
|
|
37
37
|
const REQUIRED_MODIFIERS = ['notNull', 'required', 'primary'];
|
|
38
38
|
/**
|
|
39
|
-
* Builds the
|
|
39
|
+
* Builds the files describing the database of a project out of its 'defineEntity' and
|
|
40
40
|
* 'defineDocument' declarations: 'db-schema.xml', read by the runtime to migrate the database,
|
|
41
|
-
*
|
|
42
|
-
* '@codenotch/process' so that `ctx.tables.<name>` is typed in the processes
|
|
41
|
+
* 'db-schema.d.ts', which augments the 'ProjectTables' and 'ProjectDocs' interfaces of
|
|
42
|
+
* '@codenotch/process' so that `ctx.tables.<name>` is typed in the processes, and
|
|
43
|
+
* 'db-client-context.ts', the same tables as the React apps query them through
|
|
44
|
+
* `useCodenotch(clientDbContext)`.
|
|
43
45
|
*/
|
|
44
46
|
class DbSchemaUtils {
|
|
45
47
|
/**
|
|
@@ -251,7 +253,80 @@ class DbSchemaUtils {
|
|
|
251
253
|
].join('\n');
|
|
252
254
|
return { content, warnings };
|
|
253
255
|
}
|
|
254
|
-
/**
|
|
256
|
+
/**
|
|
257
|
+
* 'db-client-context.ts', the tables as the React apps query them: one 'ClientTableQueryable'
|
|
258
|
+
* of '@codenotch/codenotch.react' per table, under the collection name 'db-schema.d.ts' gives
|
|
259
|
+
* it, gathered in a 'clientDbContext' object to pass to `useCodenotch(clientDbContext)` so
|
|
260
|
+
* that `cn.tables.<name>` is typed with the row type of the table.
|
|
261
|
+
*
|
|
262
|
+
* Unlike the d.ts it imports the tables themselves, not their types: a table only has to be
|
|
263
|
+
* exported to be part of it, an exported row type is not needed. Documents are not queried
|
|
264
|
+
* from the apps and are left out.
|
|
265
|
+
*
|
|
266
|
+
* @param tables tables of the project, see ProjectUtils.discoverTableFiles
|
|
267
|
+
* @param entityImports import line of each table value, keyed by table name, see
|
|
268
|
+
* ProjectUtils.getTableEntityImport
|
|
269
|
+
*/
|
|
270
|
+
static generateClientContext(tables, entityImports) {
|
|
271
|
+
const warnings = [];
|
|
272
|
+
// Tables declared in the same file share one import statement, as a developer would write it
|
|
273
|
+
const namesBySpecifier = new Map();
|
|
274
|
+
const entries = [];
|
|
275
|
+
const collectionNames = new Map();
|
|
276
|
+
for (const table of this.sortByName(tables)) {
|
|
277
|
+
if (table.name === undefined) {
|
|
278
|
+
continue; // already reported by generateXml
|
|
279
|
+
}
|
|
280
|
+
const importLine = this.parseImport(entityImports.get(table.name));
|
|
281
|
+
if (importLine === undefined) {
|
|
282
|
+
warnings.push(`The table '${table.name}' is not exported ('export const ${table.variableName ?? table.name} = defineEntity(...)'), it is left out of 'db-client-context.ts'.`);
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
const collectionName = this.toCollectionName(table.name);
|
|
286
|
+
const takenBy = collectionNames.get(collectionName);
|
|
287
|
+
if (takenBy !== undefined) {
|
|
288
|
+
warnings.push(`The tables '${takenBy}' and '${table.name}' both map to '${collectionName}' in 'db-client-context.ts', only the first one is kept.`);
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
collectionNames.set(collectionName, table.name);
|
|
292
|
+
const names = namesBySpecifier.get(importLine.specifier) ?? [];
|
|
293
|
+
if (!names.includes(importLine.typeName)) {
|
|
294
|
+
namesBySpecifier.set(importLine.specifier, [...names, importLine.typeName]);
|
|
295
|
+
}
|
|
296
|
+
entries.push(` ${collectionName}: new ClientTableQueryable(${importLine.typeName})`);
|
|
297
|
+
}
|
|
298
|
+
const header = [
|
|
299
|
+
`// Generated by 'cn generate dbcontext', do not edit.`,
|
|
300
|
+
`// The tables of this project as the React apps query them: pass it to 'useCodenotch(clientDbContext)'`,
|
|
301
|
+
`// and 'cn.tables.<name>' autocompletes with the row type of the table.`
|
|
302
|
+
];
|
|
303
|
+
// Nothing to expose: the context is kept, empty, so the apps importing it still build
|
|
304
|
+
if (entries.length === 0) {
|
|
305
|
+
return {
|
|
306
|
+
content: [
|
|
307
|
+
...header,
|
|
308
|
+
`// No exported table in this project yet: 'useCodenotch(clientDbContext)' exposes no table.`,
|
|
309
|
+
``,
|
|
310
|
+
`export const clientDbContext = {};`,
|
|
311
|
+
``
|
|
312
|
+
].join('\n'),
|
|
313
|
+
warnings
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
const content = [
|
|
317
|
+
...header,
|
|
318
|
+
`import { ClientTableQueryable } from '@codenotch/codenotch.react';`,
|
|
319
|
+
...[...namesBySpecifier.entries()]
|
|
320
|
+
.map(([specifier, names]) => `import { ${names.join(', ')} } from '${specifier}';`),
|
|
321
|
+
``,
|
|
322
|
+
`export const clientDbContext = {`,
|
|
323
|
+
entries.join(',\n'),
|
|
324
|
+
`};`,
|
|
325
|
+
``
|
|
326
|
+
].join('\n');
|
|
327
|
+
return { content, warnings };
|
|
328
|
+
}
|
|
329
|
+
/** Splits an import statement back into the name it brings and the file it comes from */
|
|
255
330
|
static parseImport(statement) {
|
|
256
331
|
const match = statement?.match(/^import \{\s*([^}\s]+)\s*\} from '([^']+)';?$/);
|
|
257
332
|
return match === null || match === undefined ? undefined : { typeName: match[1], specifier: match[2] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbSchemaUtils.js","sourceRoot":"","sources":["../../src/utils/DbSchemaUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DbSchemaUtils.js","sourceRoot":"","sources":["../../src/utils/DbSchemaUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,12 @@ export interface IGenerationResult {
|
|
|
14
14
|
* Every generator reports rather than prints: the command decides how to show the outcome.
|
|
15
15
|
*/
|
|
16
16
|
export default abstract class ProjectGeneratorUtils {
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* 'db-schema.xml' and 'db-schema.d.ts' from the 'defineEntity' and 'defineDocument' declarations
|
|
19
|
+
* of the project, plus 'db-client-context.ts' when the project has React apps: the tables as
|
|
20
|
+
* the apps query them, to pass to `useCodenotch(clientDbContext)`. A project without app has
|
|
21
|
+
* nothing to import that file (nor '@codenotch/codenotch.react' installed), so it is not written.
|
|
22
|
+
*/
|
|
18
23
|
static generateDbContext(projectPath: string): Promise<IGenerationResult & {
|
|
19
24
|
tableCount: number;
|
|
20
25
|
documentCount: number;
|
|
@@ -17,7 +17,12 @@ const I18nTsUtils_1 = __importDefault(require("./I18nTsUtils"));
|
|
|
17
17
|
* Every generator reports rather than prints: the command decides how to show the outcome.
|
|
18
18
|
*/
|
|
19
19
|
class ProjectGeneratorUtils {
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* 'db-schema.xml' and 'db-schema.d.ts' from the 'defineEntity' and 'defineDocument' declarations
|
|
22
|
+
* of the project, plus 'db-client-context.ts' when the project has React apps: the tables as
|
|
23
|
+
* the apps query them, to pass to `useCodenotch(clientDbContext)`. A project without app has
|
|
24
|
+
* nothing to import that file (nor '@codenotch/codenotch.react' installed), so it is not written.
|
|
25
|
+
*/
|
|
21
26
|
static async generateDbContext(projectPath) {
|
|
22
27
|
const tables = await ProjectUtils_1.default.discoverTableFiles(projectPath);
|
|
23
28
|
const documents = await ProjectUtils_1.default.discoverDocumentFiles(projectPath);
|
|
@@ -26,14 +31,23 @@ class ProjectGeneratorUtils {
|
|
|
26
31
|
}
|
|
27
32
|
const targetSchemaPath = (0, path_1.join)(projectPath, 'db-schema.xml');
|
|
28
33
|
const targetDtsPath = (0, path_1.join)(projectPath, 'db-schema.d.ts');
|
|
34
|
+
const targetClientContextPath = (0, path_1.join)(projectPath, 'db-client-context.ts');
|
|
29
35
|
// The manifest versions the schema, but it is not required to generate it
|
|
30
36
|
const manifest = await FileUtils_1.default.readJsonFileAsync((0, path_1.join)(projectPath, 'manifest.json'));
|
|
31
37
|
// Each type is imported relative to the generated file
|
|
32
38
|
const tableImports = new Map();
|
|
39
|
+
const entityImports = new Map();
|
|
33
40
|
for (const table of tables) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
41
|
+
if (table.name === undefined) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const typeImport = ProjectUtils_1.default.getTableTypeImport(table, targetDtsPath);
|
|
45
|
+
if (typeImport !== undefined) {
|
|
46
|
+
tableImports.set(table.name, typeImport);
|
|
47
|
+
}
|
|
48
|
+
const entityImport = ProjectUtils_1.default.getTableEntityImport(table, targetClientContextPath);
|
|
49
|
+
if (entityImport !== undefined) {
|
|
50
|
+
entityImports.set(table.name, entityImport);
|
|
37
51
|
}
|
|
38
52
|
}
|
|
39
53
|
const documentImports = new Map();
|
|
@@ -45,12 +59,24 @@ class ProjectGeneratorUtils {
|
|
|
45
59
|
}
|
|
46
60
|
const xml = DbSchemaUtils_1.default.generateXml(tables, manifest?.version ?? '0.0.0');
|
|
47
61
|
const dts = DbSchemaUtils_1.default.generateDts(tables, documents, tableImports, documentImports);
|
|
62
|
+
const files = [
|
|
63
|
+
{ path: targetSchemaPath, content: xml.content },
|
|
64
|
+
{ path: targetDtsPath, content: dts.content }
|
|
65
|
+
];
|
|
48
66
|
const warnings = [...xml.warnings, ...dts.warnings];
|
|
49
|
-
|
|
50
|
-
if (
|
|
51
|
-
|
|
67
|
+
const hasApps = (await ProjectUtils_1.default.discoverAppsFiles(projectPath)).length > 0;
|
|
68
|
+
if (hasApps) {
|
|
69
|
+
const clientContext = DbSchemaUtils_1.default.generateClientContext(tables, entityImports);
|
|
70
|
+
files.push({ path: targetClientContextPath, content: clientContext.content });
|
|
71
|
+
warnings.push(...clientContext.warnings);
|
|
72
|
+
}
|
|
73
|
+
// The files describe the same schema, writing only some of them would leave the project inconsistent
|
|
74
|
+
for (const file of files) {
|
|
75
|
+
if (!FileUtils_1.default.writeFileSync(file.path, file.content)) {
|
|
76
|
+
return { written: [], warnings, tableCount: tables.length, documentCount: documents.length, error: `Could not write the schema files in '${projectPath}'.` };
|
|
77
|
+
}
|
|
52
78
|
}
|
|
53
|
-
return { written:
|
|
79
|
+
return { written: files.map(file => file.path), warnings, tableCount: tables.length, documentCount: documents.length };
|
|
54
80
|
}
|
|
55
81
|
/** 'openapi.json' from the processes triggered by an api call */
|
|
56
82
|
static async generateOpenApi(projectPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectGeneratorUtils.js","sourceRoot":"","sources":["../../src/utils/ProjectGeneratorUtils.ts"],"names":[],"mappings":";;;;;AAAA,+BAAsC;AACtC,0DAA6B;AAE7B,4DAAoC;AACpC,kEAA0C;AAC1C,oEAA4C;AAC5C,kEAA0C;AAC1C,gEAAgE;AAYhE;;;;;GAKG;AACH,MAA8B,qBAAqB;IAE/C
|
|
1
|
+
{"version":3,"file":"ProjectGeneratorUtils.js","sourceRoot":"","sources":["../../src/utils/ProjectGeneratorUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,8 +32,8 @@ export declare const NPM_INSTALL_STEP = "npm install";
|
|
|
32
32
|
* translations. Each of these extends the previous one, so what is fixed in one is fixed in all.
|
|
33
33
|
* 'api' stands apart: a table and its endpoints, without any app nor React.
|
|
34
34
|
*
|
|
35
|
-
* Where the runtime API is not settled yet (
|
|
36
|
-
*
|
|
35
|
+
* Where the runtime API is not settled yet (the CNQL filter syntax), the generated code carries
|
|
36
|
+
* a TODO rather than a guess.
|
|
37
37
|
*/
|
|
38
38
|
export default abstract class ProjectTemplates {
|
|
39
39
|
static readonly TEMPLATES: IProjectTemplate[];
|
|
@@ -71,8 +71,10 @@ export default abstract class ProjectTemplates {
|
|
|
71
71
|
/** One column per language of the manifest, filled for the ones the template knows */
|
|
72
72
|
private static createTodolistI18n;
|
|
73
73
|
/**
|
|
74
|
-
* The calls the pages make, in one place.
|
|
75
|
-
*
|
|
74
|
+
* The calls the pages make, in one place. Each one starts a process imported from
|
|
75
|
+
* './processes' (the app build replaces those files by client handles carrying the id), so
|
|
76
|
+
* the input and output types come from the 'run' of the process itself and the UI and the
|
|
77
|
+
* processes cannot drift apart silently.
|
|
76
78
|
*/
|
|
77
79
|
private static createTodolistApi;
|
|
78
80
|
private static createTodolistApp;
|
|
@@ -24,8 +24,8 @@ const VERSIONS = {
|
|
|
24
24
|
* translations. Each of these extends the previous one, so what is fixed in one is fixed in all.
|
|
25
25
|
* 'api' stands apart: a table and its endpoints, without any app nor React.
|
|
26
26
|
*
|
|
27
|
-
* Where the runtime API is not settled yet (
|
|
28
|
-
*
|
|
27
|
+
* Where the runtime API is not settled yet (the CNQL filter syntax), the generated code carries
|
|
28
|
+
* a TODO rather than a guess.
|
|
29
29
|
*/
|
|
30
30
|
class ProjectTemplates {
|
|
31
31
|
static TEMPLATES = [
|
|
@@ -150,7 +150,7 @@ class ProjectTemplates {
|
|
|
150
150
|
this.replaceFile(scaffold, 'apps/components/Layout.tsx', this.createTodolistLayout(context.languages));
|
|
151
151
|
this.replaceFile(scaffold, 'readme.md', TemplateUtils_1.default.createReadmeMd(context.projectName, context.serviceName) + this.createTodolistReadme());
|
|
152
152
|
scaffold.files.push({ path: 'tables/todolist.ts', content: this.createTodoListTable() }, { path: 'tables/todo.ts', content: this.createTodoTable() }, { path: 'processes/todolists.ts', content: this.createTodoListProcesses() }, { path: 'processes/todos.ts', content: this.createTodoProcesses() }, { path: 'queries/all-todolists.cnql', content: this.createAllTodoListsQuery(context.serviceName) }, { path: 'queries/todos-of-list.cnql', content: this.createTodosOfListQuery(context.serviceName) }, { path: 'globals.i18n.csv', content: this.createTodolistI18n(context.languages) }, { path: 'apps/api.ts', content: this.createTodolistApi() }, { path: 'apps/pages/TodoListsPage.tsx', content: this.createTodoListsPage() }, { path: 'apps/pages/TodoListPage.tsx', content: this.createTodoListPage() });
|
|
153
|
-
scaffold.nextSteps.push(`Search the sources for 'TODO' to see the
|
|
153
|
+
scaffold.nextSteps.push(`Search the sources for 'TODO' to see the point waiting for the runtime API (the filter of a query)`);
|
|
154
154
|
return scaffold;
|
|
155
155
|
}
|
|
156
156
|
static createTodoListTable() {
|
|
@@ -194,17 +194,19 @@ class ProjectTemplates {
|
|
|
194
194
|
return [['key', ...languages].join(','), ...rows].join('\n') + '\n';
|
|
195
195
|
}
|
|
196
196
|
/**
|
|
197
|
-
* The calls the pages make, in one place.
|
|
198
|
-
*
|
|
197
|
+
* The calls the pages make, in one place. Each one starts a process imported from
|
|
198
|
+
* './processes' (the app build replaces those files by client handles carrying the id), so
|
|
199
|
+
* the input and output types come from the 'run' of the process itself and the UI and the
|
|
200
|
+
* processes cannot drift apart silently.
|
|
199
201
|
*/
|
|
200
202
|
static createTodolistApi() {
|
|
201
|
-
return this.lines(`import { getCodenotch } from '@codenotch/codenotch.react';`,
|
|
203
|
+
return this.lines(`import { getCodenotch, type Process } from '@codenotch/codenotch.react';`, `// A process file imported by an app only brings client handles ({ id }): the logic stays on the runtime`, `import * as todolists from '../processes/todolists';`, `import * as todos from '../processes/todos';`, ``, `// Starts a process and unwraps its result: the input and output types are the ones of its 'run'`, `async function call<In, Out>(process: Process<In, Out, any>, input: In): Promise<Out> {`, `\tconst result = await getCodenotch().startProcess(process, input);`, `\tif (result.isError) {`, `\t\tthrow new Error(result.errorMessage);`, `\t}`, `\treturn result.output;`, `}`, ``, `export const listTodoLists = () => call(todolists.listTodoLists, {});`, `export const createTodoList = (name: string) => call(todolists.createTodoList, { name });`, `export const deleteTodoList = (listId: string) => call(todolists.deleteTodoList, { listId });`, ``, `export const listTodos = (listId: string) => call(todos.listTodos, { listId });`, `export const createTodo = (listId: string, title: string) => call(todos.createTodo, { listId, title });`, `export const toggleTodo = (todoId: string) => call(todos.toggleTodo, { todoId });`, `export const deleteTodo = (todoId: string) => call(todos.deleteTodo, { todoId });`, ``);
|
|
202
204
|
}
|
|
203
205
|
static createTodolistApp() {
|
|
204
206
|
return this.lines(`import React from 'react';`, `import { HashRouter, Route, Routes } from 'react-router';`, `import './${DEFAULT_APP_NAME}.scss';`, `import Layout from './components/Layout';`, `import TodoListsPage from './pages/TodoListsPage';`, `import TodoListPage from './pages/TodoListPage';`, ``, `// HashRouter keeps the routing client side, whatever URL the runtime serves the app from`, `const ${DEFAULT_APP_NAME}: React.FC<{}> = () => {`, `\treturn <HashRouter>`, `\t\t<Routes>`, `\t\t\t<Route element={<Layout />}>`, `\t\t\t\t<Route index element={<TodoListsPage />} />`, `\t\t\t\t<Route path="lists/:listId" element={<TodoListPage />} />`, `\t\t\t</Route>`, `\t\t</Routes>`, `\t</HashRouter>;`, `};`, ``, `export default ${DEFAULT_APP_NAME};`, ``);
|
|
205
207
|
}
|
|
206
208
|
static createTodolistLayout(languages) {
|
|
207
|
-
return this.lines(`import React from 'react';`, `import { Link, Outlet } from 'react-router';`, `import { useCodenotch } from '@codenotch/codenotch.react';`, `import globals from '../../globals.i18n';`, ``, `// Shared frame of every page: title, language and theme switches, then the page itself in <Outlet />`, `const Layout: React.FC<{}> = () => {`, `\tconst cn = useCodenotch();`, `\tconst theme = cn.getTheme() ?? 'light';`, `\tconst language = cn.getLanguage() ?? '${languages[0] ?? 'en'}';`, ``, `\t// The generated translation class follows the language of the runtime`, `\tglobals.setLanguage(language);`, ``, `\treturn <div className="min-h-screen bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100">`, `\t\t<nav className="flex items-center gap-4 border-b border-gray-200 px-6 py-3 dark:border-gray-700">`, `\t\t\t<Link to="/" className="text-lg font-semibold">{globals.appTitle()}</Link>`, `\t\t\t<div className="ml-auto flex items-center gap-2 text-sm">`, `\t\t\t\t{cn.getLanguages().map(lang =>`, `\t\t\t\t\t<button key={lang} onClick={() => cn.setLanguage(lang)}`, `\t\t\t\t\t\tclassName={'rounded px-2 py-1 ' + (lang === language ? 'bg-gray-200 dark:bg-gray-700' : 'hover:underline')}>`, `\t\t\t\t\t\t{lang.toUpperCase()}`, `\t\t\t\t\t</button>)}`, `\t\t\t\t<button className="rounded border border-gray-300 px-3 py-1 dark:border-gray-600" onClick={() => cn.setTheme(theme === 'dark' ? 'light' : 'dark')}>`, `\t\t\t\t\t{theme === 'dark' ? 'Light' : 'Dark'}`, `\t\t\t\t</button>`, `\t\t\t</div>`, `\t\t</nav>`, `\t\t<main className="mx-auto max-w-2xl p-6">`, `\t\t\t<Outlet />`, `\t\t</main>`, `\t</div>;`, `};`, ``, `export default Layout;`, ``);
|
|
209
|
+
return this.lines(`import React from 'react';`, `import { Link, Outlet } from 'react-router';`, `import { useCodenotch } from '@codenotch/codenotch.react';`, `import { clientDbContext } from '../../db-client-context';`, `import globals from '../../globals.i18n';`, ``, `// Shared frame of every page: title, language and theme switches, then the page itself in <Outlet />`, `const Layout: React.FC<{}> = () => {`, `\t// The generated client context types cn.tables.<name> with the tables of the project`, `\tconst cn = useCodenotch(clientDbContext);`, `\tconst theme = cn.getTheme() ?? 'light';`, `\tconst language = cn.getLanguage() ?? '${languages[0] ?? 'en'}';`, ``, `\t// The generated translation class follows the language of the runtime`, `\tglobals.setLanguage(language);`, ``, `\treturn <div className="min-h-screen bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100">`, `\t\t<nav className="flex items-center gap-4 border-b border-gray-200 px-6 py-3 dark:border-gray-700">`, `\t\t\t<Link to="/" className="text-lg font-semibold">{globals.appTitle()}</Link>`, `\t\t\t<div className="ml-auto flex items-center gap-2 text-sm">`, `\t\t\t\t{cn.getLanguages().map(lang =>`, `\t\t\t\t\t<button key={lang} onClick={() => cn.setLanguage(lang)}`, `\t\t\t\t\t\tclassName={'rounded px-2 py-1 ' + (lang === language ? 'bg-gray-200 dark:bg-gray-700' : 'hover:underline')}>`, `\t\t\t\t\t\t{lang.toUpperCase()}`, `\t\t\t\t\t</button>)}`, `\t\t\t\t<button className="rounded border border-gray-300 px-3 py-1 dark:border-gray-600" onClick={() => cn.setTheme(theme === 'dark' ? 'light' : 'dark')}>`, `\t\t\t\t\t{theme === 'dark' ? 'Light' : 'Dark'}`, `\t\t\t\t</button>`, `\t\t\t</div>`, `\t\t</nav>`, `\t\t<main className="mx-auto max-w-2xl p-6">`, `\t\t\t<Outlet />`, `\t\t</main>`, `\t</div>;`, `};`, ``, `export default Layout;`, ``);
|
|
208
210
|
}
|
|
209
211
|
static createTodoListsPage() {
|
|
210
212
|
return this.lines(`import React, { useEffect, useState } from 'react';`, `import { Link } from 'react-router';`, `import type { ITodoList } from '../../tables/todolist';`, `import globals from '../../globals.i18n';`, `import { createTodoList, deleteTodoList, listTodoLists } from '../api';`, ``, `const TodoListsPage: React.FC<{}> = () => {`, `\tconst [lists, setLists] = useState<ITodoList[] | undefined>(undefined);`, `\tconst [name, setName] = useState('');`, `\tconst [error, setError] = useState<string | undefined>(undefined);`, ``, `\tconst refresh = () => listTodoLists().then(setLists).catch(e => setError(String(e)));`, ``, `\tuseEffect(() => { refresh(); }, []);`, ``, `\tconst add = async (event: React.FormEvent) => {`, `\t\tevent.preventDefault();`, `\t\tif (name.trim() === '') {`, `\t\t\treturn;`, `\t\t}`, `\t\ttry {`, `\t\t\tawait createTodoList(name.trim());`, `\t\t\tsetName('');`, `\t\t\tawait refresh();`, `\t\t}`, `\t\tcatch (e) {`, `\t\t\tsetError(String(e));`, `\t\t}`, `\t};`, ``, `\tconst remove = async (listId: string) => {`, `\t\ttry {`, `\t\t\tawait deleteTodoList(listId);`, `\t\t\tawait refresh();`, `\t\t}`, `\t\tcatch (e) {`, `\t\t\tsetError(String(e));`, `\t\t}`, `\t};`, ``, `\treturn <div>`, `\t\t<h1 className="text-2xl font-bold">{globals.lists()}</h1>`, ``, `\t\t<form onSubmit={add} className="mt-4 flex gap-2">`, `\t\t\t<input value={name} onChange={e => setName(e.target.value)} placeholder={globals.newListPlaceholder()}`, `\t\t\t\tclassName="flex-1 rounded border border-gray-300 px-3 py-2 dark:border-gray-600 dark:bg-gray-800" />`, `\t\t\t<button type="submit" className="rounded bg-blue-600 px-4 py-2 text-white hover:bg-blue-700">{globals.add()}</button>`, `\t\t</form>`, ``, `\t\t{error && <p className="mt-4 rounded bg-red-100 p-3 text-red-800 dark:bg-red-900 dark:text-red-200">{globals.error(error)}</p>}`, `\t\t{lists === undefined && !error && <p className="mt-4 text-gray-500">{globals.loading()}</p>}`, `\t\t{lists !== undefined && lists.length === 0 && <p className="mt-4 text-gray-500">{globals.noLists()}</p>}`, ``, `\t\t<ul className="mt-4 divide-y divide-gray-200 dark:divide-gray-700">`, `\t\t\t{lists?.map(list =>`, `\t\t\t\t<li key={list.id} className="flex items-center justify-between py-3">`, `\t\t\t\t\t<Link to={'/lists/' + list.id} className="hover:underline">{list.name}</Link>`, `\t\t\t\t\t<button onClick={() => remove(list.id)} className="text-sm text-red-600 hover:underline">{globals.delete()}</button>`, `\t\t\t\t</li>)}`, `\t\t</ul>`, `\t</div>;`, `};`, ``, `export default TodoListsPage;`, ``);
|
|
@@ -213,7 +215,7 @@ class ProjectTemplates {
|
|
|
213
215
|
return this.lines(`import React, { useEffect, useState } from 'react';`, `import { Link, useParams } from 'react-router';`, `import type { ITodo } from '../../tables/todo';`, `import globals from '../../globals.i18n';`, `import { createTodo, deleteTodo, listTodos, toggleTodo } from '../api';`, ``, `const TodoListPage: React.FC<{}> = () => {`, `\tconst { listId } = useParams<{ listId: string }>();`, `\tconst [todos, setTodos] = useState<ITodo[] | undefined>(undefined);`, `\tconst [title, setTitle] = useState('');`, `\tconst [error, setError] = useState<string | undefined>(undefined);`, ``, `\tconst refresh = () => listTodos(listId!).then(setTodos).catch(e => setError(String(e)));`, ``, `\tuseEffect(() => { refresh(); }, [listId]);`, ``, `\t// Every change goes through a process, then the list is read again: the server is the truth`, `\tconst run = async (action: () => Promise<unknown>) => {`, `\t\ttry {`, `\t\t\tawait action();`, `\t\t\tawait refresh();`, `\t\t}`, `\t\tcatch (e) {`, `\t\t\tsetError(String(e));`, `\t\t}`, `\t};`, ``, `\tconst add = (event: React.FormEvent) => {`, `\t\tevent.preventDefault();`, `\t\tif (title.trim() !== '') {`, `\t\t\trun(() => createTodo(listId!, title.trim())).then(() => setTitle(''));`, `\t\t}`, `\t};`, ``, `\tconst done = todos?.filter(todo => todo.done).length ?? 0;`, ``, `\treturn <div>`, `\t\t<Link to="/" className="text-sm underline">{globals.backToLists()}</Link>`, `\t\t<h1 className="mt-2 text-2xl font-bold">{globals.appTitle()}</h1>`, `\t\t{todos !== undefined && <p className="text-sm text-gray-500">{globals.todoCount(String(todos.length), String(done))}</p>}`, ``, `\t\t<form onSubmit={add} className="mt-4 flex gap-2">`, `\t\t\t<input value={title} onChange={e => setTitle(e.target.value)} placeholder={globals.newTodoPlaceholder()}`, `\t\t\t\tclassName="flex-1 rounded border border-gray-300 px-3 py-2 dark:border-gray-600 dark:bg-gray-800" />`, `\t\t\t<button type="submit" className="rounded bg-blue-600 px-4 py-2 text-white hover:bg-blue-700">{globals.add()}</button>`, `\t\t</form>`, ``, `\t\t{error && <p className="mt-4 rounded bg-red-100 p-3 text-red-800 dark:bg-red-900 dark:text-red-200">{globals.error(error)}</p>}`, `\t\t{todos === undefined && !error && <p className="mt-4 text-gray-500">{globals.loading()}</p>}`, `\t\t{todos !== undefined && todos.length === 0 && <p className="mt-4 text-gray-500">{globals.noTodos()}</p>}`, ``, `\t\t<ul className="mt-4 divide-y divide-gray-200 dark:divide-gray-700">`, `\t\t\t{todos?.map(todo =>`, `\t\t\t\t<li key={todo.id} className="flex items-center gap-3 py-3">`, `\t\t\t\t\t<input type="checkbox" checked={todo.done} onChange={() => run(() => toggleTodo(todo.id))} />`, `\t\t\t\t\t<span className={'flex-1 ' + (todo.done ? 'text-gray-400 line-through' : '')}>{todo.title}</span>`, `\t\t\t\t\t<button onClick={() => run(() => deleteTodo(todo.id))} className="text-sm text-red-600 hover:underline">{globals.delete()}</button>`, `\t\t\t\t</li>)}`, `\t\t</ul>`, `\t</div>;`, `};`, ``, `export default TodoListPage;`, ``);
|
|
214
216
|
}
|
|
215
217
|
static createTodolistReadme() {
|
|
216
|
-
return this.lines(``, `## The todo list template`, ``, `| Path | Role |`, `| --- | --- |`, `| \`tables/todolist.ts\`, \`tables/todo.ts\` | the two tables, a list having many todos |`, `| \`processes/todolists.ts\`, \`processes/todos.ts\` | one process per operation, each exposed as an API endpoint |`, `| \`queries/*.cnql\` | the read queries the processes run |`, `| \`globals.i18n.csv\` | the texts of the app in every language of the manifest |`, `| \`apps/api.ts\` | the typed calls the pages make to the processes |`, `| \`apps/pages/\` | the list of lists, and the todos of one list |`, `| \`db-schema.xml\`, \`db-schema.d.ts\`, \`globals.i18n.ts\`, \`openapi.json\` | generated from the files above, never edit them |`, ``, `After a change to the tables, the translations or the processes, regenerate the derived files:`, ``, '```sh', `cn generate dbcontext -f .`, `cn generate i18n -f globals.i18n.csv`, `cn generate openapi -f .`, `cn project refresh`, '```', ``, `The app itself is worked on with \`cn react dev\`: it hot reloads the sources and calls the`, `processes deployed on the runtime, which \`cn project refresh\` keeps up to date.`, ``, `
|
|
218
|
+
return this.lines(``, `## The todo list template`, ``, `| Path | Role |`, `| --- | --- |`, `| \`tables/todolist.ts\`, \`tables/todo.ts\` | the two tables, a list having many todos |`, `| \`processes/todolists.ts\`, \`processes/todos.ts\` | one process per operation, each exposed as an API endpoint |`, `| \`queries/*.cnql\` | the read queries the processes run |`, `| \`globals.i18n.csv\` | the texts of the app in every language of the manifest |`, `| \`apps/api.ts\` | the typed calls the pages make to the processes |`, `| \`apps/pages/\` | the list of lists, and the todos of one list |`, `| \`db-schema.xml\`, \`db-schema.d.ts\`, \`db-client-context.ts\`, \`globals.i18n.ts\`, \`openapi.json\` | generated from the files above, never edit them |`, ``, `After a change to the tables, the translations or the processes, regenerate the derived files:`, ``, '```sh', `cn generate dbcontext -f .`, `cn generate i18n -f globals.i18n.csv`, `cn generate openapi -f .`, `cn project refresh`, '```', ``, `The app itself is worked on with \`cn react dev\`: it hot reloads the sources and calls the`, `processes deployed on the runtime, which \`cn project refresh\` keeps up to date.`, ``, `The pages call the processes through \`apps/api.ts\`: each call starts the process imported from`, `\`processes/\` with \`cn.startProcess\`, so its input and output are typed by the process itself.`, `One point waits for the runtime API and is marked \`TODO\` in the sources: the filter of a query`, `(\`queries/todos-of-list.cnql\`). The names the tables are reached under from a process come from`, `the generated \`db-schema.d.ts\` and autocomplete.`, ``);
|
|
217
219
|
}
|
|
218
220
|
// ------------------------------------------------------------------ api
|
|
219
221
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectTemplates.js","sourceRoot":"","sources":["../../src/utils/ProjectTemplates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProjectTemplates.js","sourceRoot":"","sources":["../../src/utils/ProjectTemplates.ts"],"names":[],"mappings":"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"}
|
|
@@ -220,7 +220,16 @@ export default abstract class ProjectUtils {
|
|
|
220
220
|
* @param fromFilePath file the import would be written in
|
|
221
221
|
*/
|
|
222
222
|
static getTableTypeImport(table: IDiscoveredTable, fromFilePath: string): string | undefined;
|
|
223
|
-
|
|
223
|
+
/**
|
|
224
|
+
* Line to paste to use the table itself (the value 'defineEntity' returns, not its row type)
|
|
225
|
+
* from another file, e.g. "import { User } from '../tables/user';". Undefined when the table
|
|
226
|
+
* is not exported, since nothing can import it then.
|
|
227
|
+
*
|
|
228
|
+
* @param table table to import
|
|
229
|
+
* @param fromFilePath file the import would be written in
|
|
230
|
+
*/
|
|
231
|
+
static getTableEntityImport(table: IDiscoveredTable, fromFilePath: string): string | undefined;
|
|
232
|
+
private static buildNamedImport;
|
|
224
233
|
/**
|
|
225
234
|
* Turns the `properties` of a table into columns: `bio: p.text().default('')` gives the
|
|
226
235
|
* type 'text' and the modifier 'default' with its value.
|
|
@@ -295,7 +295,7 @@ class ProjectUtils {
|
|
|
295
295
|
typeName: typeAlias?.name,
|
|
296
296
|
importStatement: typeAlias === undefined
|
|
297
297
|
? undefined
|
|
298
|
-
: this.
|
|
298
|
+
: this.buildNamedImport(typeAlias.name, filePath, workspacePath),
|
|
299
299
|
properties: declaration.properties
|
|
300
300
|
});
|
|
301
301
|
}
|
|
@@ -313,15 +313,29 @@ class ProjectUtils {
|
|
|
313
313
|
if (table.typeName === undefined) {
|
|
314
314
|
return undefined;
|
|
315
315
|
}
|
|
316
|
-
return this.
|
|
316
|
+
return this.buildNamedImport(table.typeName, table.filePath, node_path_1.default.dirname(fromFilePath));
|
|
317
317
|
}
|
|
318
|
-
|
|
318
|
+
/**
|
|
319
|
+
* Line to paste to use the table itself (the value 'defineEntity' returns, not its row type)
|
|
320
|
+
* from another file, e.g. "import { User } from '../tables/user';". Undefined when the table
|
|
321
|
+
* is not exported, since nothing can import it then.
|
|
322
|
+
*
|
|
323
|
+
* @param table table to import
|
|
324
|
+
* @param fromFilePath file the import would be written in
|
|
325
|
+
*/
|
|
326
|
+
static getTableEntityImport(table, fromFilePath) {
|
|
327
|
+
if (table.variableName === undefined || !table.isExported) {
|
|
328
|
+
return undefined;
|
|
329
|
+
}
|
|
330
|
+
return this.buildNamedImport(table.variableName, table.filePath, node_path_1.default.dirname(fromFilePath));
|
|
331
|
+
}
|
|
332
|
+
static buildNamedImport(name, targetFilePath, fromFolderPath) {
|
|
319
333
|
// Module specifiers are posix and carry no extension
|
|
320
334
|
let specifier = node_path_1.default.relative(fromFolderPath, targetFilePath).replaceAll('\\', '/').replace(/\.[^./]+$/, '');
|
|
321
335
|
if (!specifier.startsWith('.')) {
|
|
322
336
|
specifier = `./${specifier}`;
|
|
323
337
|
}
|
|
324
|
-
return `import { ${
|
|
338
|
+
return `import { ${name} } from '${specifier}';`;
|
|
325
339
|
}
|
|
326
340
|
/**
|
|
327
341
|
* Turns the `properties` of a table into columns: `bio: p.text().default('')` gives the
|
|
@@ -368,7 +382,7 @@ class ProjectUtils {
|
|
|
368
382
|
if (document.typeName === undefined) {
|
|
369
383
|
return undefined;
|
|
370
384
|
}
|
|
371
|
-
return this.
|
|
385
|
+
return this.buildNamedImport(document.typeName, document.filePath, node_path_1.default.dirname(fromFilePath));
|
|
372
386
|
}
|
|
373
387
|
/**
|
|
374
388
|
* Find all file (recursivly) in a given folder (workspacePath) that contains a table declaration ('process').
|