@comet/admin-generator 9.0.0-canary-20251002124333 → 9.0.0-canary-20251113142723

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 (36) hide show
  1. package/lib/commands/generate/config/transformConfig.d.ts +6 -0
  2. package/lib/commands/generate/config/transformConfig.js +36 -8
  3. package/lib/commands/generate/generate-command.d.ts +49 -15
  4. package/lib/commands/generate/generate-command.js +5 -0
  5. package/lib/commands/generate/generateForm/asyncSelect/generateAsyncSelect.js +46 -22
  6. package/lib/commands/generate/generateForm/flatFormFieldsFromFormConfig.d.ts +2 -0
  7. package/lib/commands/generate/generateForm/flatFormFieldsFromFormConfig.js +22 -0
  8. package/lib/commands/generate/generateForm/formField/findIntrospectionFieldType.d.ts +6 -0
  9. package/lib/commands/generate/generateForm/formField/findIntrospectionFieldType.js +22 -0
  10. package/lib/commands/generate/generateForm/formField/options.d.ts +1 -5
  11. package/lib/commands/generate/generateForm/formField/options.js +2 -11
  12. package/lib/commands/generate/generateForm/generateComponentFormField.js +0 -1
  13. package/lib/commands/generate/generateForm/generateFields.d.ts +9 -4
  14. package/lib/commands/generate/generateForm/generateFields.js +0 -3
  15. package/lib/commands/generate/generateForm/generateForm.js +99 -132
  16. package/lib/commands/generate/generateForm/generateFormField.js +34 -44
  17. package/lib/commands/generate/generateForm/generateFormLayout.js +23 -44
  18. package/lib/commands/generate/generateForm/generateFormValues.d.ts +39 -0
  19. package/lib/commands/generate/generateForm/generateFormValues.js +217 -0
  20. package/lib/commands/generate/generateForm/generateFragmentByFormFragmentFields.d.ts +1 -1
  21. package/lib/commands/generate/generateForm/generateFragmentByFormFragmentFields.js +3 -36
  22. package/lib/commands/generate/generateForm/getForwardedGqlArgs.d.ts +4 -5
  23. package/lib/commands/generate/generateForm/getForwardedGqlArgs.js +18 -17
  24. package/lib/commands/generate/generateGrid/generateGrid.js +49 -35
  25. package/lib/commands/generate/generateGrid/getForwardedGqlArgs.d.ts +3 -3
  26. package/lib/commands/generate/generateGrid/getForwardedGqlArgs.js +12 -16
  27. package/lib/commands/generate/generateGrid/usableFields.d.ts +6 -1
  28. package/lib/commands/generate/utils/convertConfigImport.d.ts +1 -0
  29. package/lib/commands/generate/utils/convertConfigImport.js +1 -1
  30. package/lib/commands/generate/utils/generateGqlOperation.d.ts +12 -0
  31. package/lib/commands/generate/utils/generateGqlOperation.js +87 -0
  32. package/lib/commands/generate/utils/generateImportsCode.d.ts +1 -0
  33. package/lib/commands/generate/utils/generateImportsCode.js +6 -1
  34. package/lib/index.d.ts +2 -2
  35. package/lib/index.js +2 -1
  36. package/package.json +11 -8
@@ -0,0 +1,12 @@
1
+ export declare function generateGqlQueryTreeFromFields(fields: string[]): string;
2
+ export declare function generateGqlOperation(options: {
3
+ type: "query" | "mutation";
4
+ operationName: string;
5
+ rootOperation: string;
6
+ variables?: {
7
+ name: string;
8
+ type: string;
9
+ }[];
10
+ fields: string[];
11
+ fragmentVariables?: string[];
12
+ }): string;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateGqlQueryTreeFromFields = generateGqlQueryTreeFromFields;
4
+ exports.generateGqlOperation = generateGqlOperation;
5
+ function generateGqlQueryTreeFromFields(fields) {
6
+ // Helper to get or create a node at a given path
7
+ function getOrCreateNode(root, path) {
8
+ let node = root;
9
+ for (const part of path) {
10
+ if (!node.children[part]) {
11
+ node.children[part] = { children: {}, fragments: [] };
12
+ }
13
+ node = node.children[part];
14
+ }
15
+ return node;
16
+ }
17
+ // 1. create tree out of dot separated fields
18
+ const root = { children: {}, fragments: [] };
19
+ for (const field of fields) {
20
+ const fragmentMatch = field.match(/(.*)(\.{3}.*)/);
21
+ if (fragmentMatch) {
22
+ // e.g. foo.bar...Fragment
23
+ const key = fragmentMatch[1].trim();
24
+ const fragment = fragmentMatch[2].trim();
25
+ if (key === "") {
26
+ root.fragments.push(fragment);
27
+ }
28
+ else {
29
+ const path = key.split(".").filter(Boolean);
30
+ const node = getOrCreateNode(root, path);
31
+ node.fragments.push(fragment);
32
+ }
33
+ }
34
+ else {
35
+ // e.g. foo.bar.baz
36
+ const path = field.split(".").filter(Boolean);
37
+ if (path.length === 0)
38
+ continue;
39
+ // Mark the leaf node (no need to store field names, just ensure the path exists)
40
+ getOrCreateNode(root, path);
41
+ }
42
+ }
43
+ // 2. create fragment string out of tree
44
+ function recursiveStringify(node) {
45
+ const parts = [];
46
+ // Add fields (children)
47
+ for (const key of Object.keys(node.children)) {
48
+ const child = node.children[key];
49
+ const childStr = recursiveStringify(child);
50
+ if (childStr) {
51
+ parts.push(`${key} { ${childStr} }`);
52
+ }
53
+ else {
54
+ parts.push(key);
55
+ }
56
+ }
57
+ // Add fragments
58
+ if (node.fragments.length > 0) {
59
+ parts.push(...node.fragments);
60
+ }
61
+ return parts.join(" ");
62
+ }
63
+ return recursiveStringify(root);
64
+ }
65
+ function generateGqlOperation(options) {
66
+ var _a;
67
+ let queryArgs = "";
68
+ if (options.variables && options.variables.length > 0) {
69
+ queryArgs += `(`;
70
+ queryArgs += options.variables.map((v) => `$${v.name}: ${v.type}`).join(", ");
71
+ queryArgs += `)`;
72
+ }
73
+ let rootQueryArgs = "";
74
+ if (options.variables && options.variables.length > 0) {
75
+ rootQueryArgs += `(`;
76
+ rootQueryArgs += options.variables.map((v) => `${v.name}: $${v.name}`).join(", ");
77
+ rootQueryArgs += `)`;
78
+ }
79
+ return `
80
+ ${options.type} ${options.operationName}${queryArgs} {
81
+ ${options.rootOperation}${rootQueryArgs} {
82
+ ${generateGqlQueryTreeFromFields(options.fields)}
83
+ }
84
+ }
85
+ ${((_a = options.fragmentVariables) !== null && _a !== void 0 ? _a : []).join("\n")}
86
+ `;
87
+ }
@@ -1,5 +1,6 @@
1
1
  export type Imports = Array<{
2
2
  name: string;
3
3
  importPath: string;
4
+ defaultImport?: boolean;
4
5
  }>;
5
6
  export declare function generateImportsCode(imports: Imports): string;
@@ -19,7 +19,12 @@ function generateImportsCode(imports) {
19
19
  });
20
20
  const importsString = filteredImports
21
21
  .map((imp) => {
22
- return `import { ${imp.name} } from "${imp.importPath}";`;
22
+ if (imp.defaultImport) {
23
+ return `import ${imp.name} from "${imp.importPath}";`;
24
+ }
25
+ else {
26
+ return `import { ${imp.name} } from "${imp.importPath}";`;
27
+ }
23
28
  })
24
29
  .join("\n");
25
30
  return importsString;
package/lib/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export type { FormConfig, FormFieldConfig, GeneratorConfig, GridColumnConfig, GridColumnStaticSelectValue, GridConfig, StaticSelectValue, } from "./commands/generate/generate-command";
2
- export { defineConfig } from "./commands/generate/generate-command";
1
+ export type { FormConfig, FormFieldConfig, GeneratorConfig, GridColumnConfig, GridColumnStaticSelectValue, GridConfig, InjectedFormVariables, StaticSelectValue, } from "./commands/generate/generate-command";
2
+ export { defineConfig, injectFormVariables } from "./commands/generate/generate-command";
package/lib/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineConfig = void 0;
3
+ exports.injectFormVariables = exports.defineConfig = void 0;
4
4
  var generate_command_1 = require("./commands/generate/generate-command");
5
5
  Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return generate_command_1.defineConfig; } });
6
+ Object.defineProperty(exports, "injectFormVariables", { enumerable: true, get: function () { return generate_command_1.injectFormVariables; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comet/admin-generator",
3
- "version": "9.0.0-canary-20251002124333",
3
+ "version": "9.0.0-canary-20251113142723",
4
4
  "description": "Comet Admin Generator CLI tool",
5
5
  "repository": {
6
6
  "directory": "packages/admin/admin-generator",
@@ -30,27 +30,30 @@
30
30
  "ts-node": "^10.9.2"
31
31
  },
32
32
  "devDependencies": {
33
+ "@apollo/client": "^3.7.0",
33
34
  "@mui/material": "^7.2.0",
34
35
  "@mui/x-data-grid": "^7.29.8",
35
36
  "@types/jest": "^29.5.14",
36
- "@types/node": "^22.16.3",
37
+ "@types/node": "^24.9.1",
37
38
  "@types/object-path": "^0.11.4",
38
39
  "@types/pluralize": "^0.0.33",
39
40
  "@types/react": "^18.3.23",
41
+ "@types/react-dom": "^18.3.7",
40
42
  "eslint": "^9.30.1",
41
43
  "final-form": "^4.20.10",
42
44
  "jest": "^29.7.0",
43
45
  "npm-run-all2": "^8.0.0",
44
46
  "prettier": "^3.6.2",
45
47
  "react": "^18.3.1",
48
+ "react-dom": "^18.3.1",
46
49
  "react-intl": "^7.1.11",
47
50
  "rimraf": "^6.0.1",
48
51
  "ts-jest": "^29.4.0",
49
52
  "typescript": "5.8.3",
50
- "@comet/admin": "9.0.0-canary-20251002124333",
51
- "@comet/admin-icons": "9.0.0-canary-20251002124333",
52
- "@comet/cms-admin": "9.0.0-canary-20251002124333",
53
- "@comet/eslint-config": "9.0.0-canary-20251002124333"
53
+ "@comet/admin": "9.0.0-canary-20251113142723",
54
+ "@comet/admin-icons": "9.0.0-canary-20251113142723",
55
+ "@comet/cms-admin": "9.0.0-canary-20251113142723",
56
+ "@comet/eslint-config": "9.0.0-canary-20251113142723"
54
57
  },
55
58
  "engines": {
56
59
  "node": ">=22.0.0"
@@ -60,12 +63,12 @@
60
63
  "registry": "https://registry.npmjs.org"
61
64
  },
62
65
  "scripts": {
63
- "build": "$npm_execpath run clean && tsc -p tsconfig.build.json",
66
+ "build": "pnpm run clean && tsc -p tsconfig.build.json",
64
67
  "clean": "rimraf lib",
65
68
  "dev": "tsc --watch --preserveWatchOutput -p tsconfig.build.json",
66
69
  "lint": "run-p lint:prettier lint:eslint lint:tsc",
67
70
  "lint:eslint": "eslint --max-warnings 0 src/ **/*.json --no-warn-ignored",
68
- "lint:prettier": "npx prettier --check './**/*.{js,json,md,yml,yaml}'",
71
+ "lint:prettier": "pnpm exec prettier --check './**/*.{js,json,md,yml,yaml}'",
69
72
  "lint:tsc": "tsc",
70
73
  "test": "NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests",
71
74
  "test:updateSnapshot": "NODE_OPTIONS=--experimental-vm-modules jest --updateSnapshot",