patram 0.4.0 → 0.6.0

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,4 +1,5 @@
1
1
  /**
2
+ * @import { ClassDefinition } from './patram-config.js';
2
3
  * @import { PatramRepoConfig } from './load-patram-config.types.ts';
3
4
  * @import { PatramConfig } from './patram-config.types.ts';
4
5
  */
@@ -74,7 +75,7 @@ export function resolvePatramGraphConfig(repo_config) {
74
75
  const graph_config = parsePatramConfig({
75
76
  classes: {
76
77
  ...BUILT_IN_PATRAM_CONFIG.classes,
77
- ...repo_config.classes,
78
+ ...collectGraphClassDefinitions(repo_config.classes),
78
79
  },
79
80
  mappings: {
80
81
  ...BUILT_IN_PATRAM_CONFIG.mappings,
@@ -88,7 +89,44 @@ export function resolvePatramGraphConfig(repo_config) {
88
89
 
89
90
  return {
90
91
  ...graph_config,
91
- class_schemas: repo_config.class_schemas,
92
+ classes: mergeResolvedClasses(graph_config.classes, repo_config.classes),
92
93
  fields: repo_config.fields,
93
94
  };
94
95
  }
96
+
97
+ /**
98
+ * @param {PatramRepoConfig['classes']} classes
99
+ * @returns {Record<string, ClassDefinition>}
100
+ */
101
+ function collectGraphClassDefinitions(classes) {
102
+ /** @type {Record<string, ClassDefinition>} */
103
+ const graph_class_definitions = {};
104
+
105
+ for (const [class_name, class_definition] of Object.entries(classes ?? {})) {
106
+ graph_class_definitions[class_name] = {
107
+ builtin: class_definition.builtin,
108
+ label: class_definition.label,
109
+ };
110
+ }
111
+
112
+ return graph_class_definitions;
113
+ }
114
+
115
+ /**
116
+ * @param {Record<string, ClassDefinition>} graph_classes
117
+ * @param {PatramRepoConfig['classes']} repo_classes
118
+ * @returns {PatramConfig['classes']}
119
+ */
120
+ function mergeResolvedClasses(graph_classes, repo_classes) {
121
+ /** @type {PatramConfig['classes']} */
122
+ const resolved_classes = {};
123
+
124
+ for (const [class_name, class_definition] of Object.entries(graph_classes)) {
125
+ resolved_classes[class_name] = {
126
+ ...class_definition,
127
+ schema: repo_classes?.[class_name]?.schema,
128
+ };
129
+ }
130
+
131
+ return resolved_classes;
132
+ }
@@ -1,5 +1,7 @@
1
1
  export const MARKDOWN_SOURCE_FILE_EXTENSIONS = ['.markdown', '.md'];
2
2
 
3
+ export const YAML_SOURCE_FILE_EXTENSIONS = ['.yaml', '.yml'];
4
+
3
5
  export const JSDOC_SOURCE_FILE_EXTENSIONS = [
4
6
  '.cjs',
5
7
  '.cts',
@@ -14,6 +16,7 @@ export const JSDOC_SOURCE_FILE_EXTENSIONS = [
14
16
  export const SUPPORTED_SOURCE_FILE_EXTENSIONS = [
15
17
  ...JSDOC_SOURCE_FILE_EXTENSIONS,
16
18
  ...MARKDOWN_SOURCE_FILE_EXTENSIONS,
19
+ ...YAML_SOURCE_FILE_EXTENSIONS,
17
20
  ];
18
21
 
19
22
  export const DEFAULT_INCLUDE_PATTERNS =
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patram",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "main": "./lib/patram.js",
6
6
  "exports": {
@@ -60,6 +60,7 @@
60
60
  "shiki": "^4.0.2",
61
61
  "string-width": "^8.2.0",
62
62
  "wrap-ansi": "^10.0.0",
63
+ "yaml": "^2.8.3",
63
64
  "zod": "^4.3.6"
64
65
  },
65
66
  "devDependencies": {