|
1 | 1 | import { useState, useCallback, useEffect } from 'react'; |
2 | 2 | import { produce } from 'immer'; |
3 | | -import { X_AWS_IDP_DOCUMENT_TYPE, X_AWS_IDP_EXAMPLES } from '../constants/schemaConstants'; |
| 3 | +import { |
| 4 | + X_AWS_IDP_DOCUMENT_TYPE, |
| 5 | + X_AWS_IDP_EXAMPLES, |
| 6 | + X_AWS_IDP_DOCUMENT_NAME_REGEX, |
| 7 | + X_AWS_IDP_PAGE_CONTENT_REGEX, |
| 8 | +} from '../constants/schemaConstants'; |
4 | 9 |
|
5 | 10 | const extractInlineObjectsToClasses = (properties, extractedClasses, timestamp) => { |
6 | 11 | const updatedProperties = {}; |
@@ -129,6 +134,9 @@ const convertJsonSchemaToClasses = (jsonSchema) => { |
129 | 134 | }, |
130 | 135 | // Preserve examples if they exist in the schema |
131 | 136 | ...(schema[X_AWS_IDP_EXAMPLES] ? { [X_AWS_IDP_EXAMPLES]: schema[X_AWS_IDP_EXAMPLES] } : {}), |
| 137 | + // Preserve regex fields if they exist in the schema |
| 138 | + ...(schema[X_AWS_IDP_DOCUMENT_NAME_REGEX] ? { [X_AWS_IDP_DOCUMENT_NAME_REGEX]: schema[X_AWS_IDP_DOCUMENT_NAME_REGEX] } : {}), |
| 139 | + ...(schema[X_AWS_IDP_PAGE_CONTENT_REGEX] ? { [X_AWS_IDP_PAGE_CONTENT_REGEX]: schema[X_AWS_IDP_PAGE_CONTENT_REGEX] } : {}), |
132 | 140 | }; |
133 | 141 | allClasses.push(docTypeClass); |
134 | 142 |
|
@@ -192,6 +200,9 @@ const convertJsonSchemaToClasses = (jsonSchema) => { |
192 | 200 | }, |
193 | 201 | // Preserve examples if they exist in the schema |
194 | 202 | ...(jsonSchema[X_AWS_IDP_EXAMPLES] ? { [X_AWS_IDP_EXAMPLES]: jsonSchema[X_AWS_IDP_EXAMPLES] } : {}), |
| 203 | + // Preserve regex fields if they exist in the schema |
| 204 | + ...(jsonSchema[X_AWS_IDP_DOCUMENT_NAME_REGEX] ? { [X_AWS_IDP_DOCUMENT_NAME_REGEX]: jsonSchema[X_AWS_IDP_DOCUMENT_NAME_REGEX] } : {}), |
| 205 | + ...(jsonSchema[X_AWS_IDP_PAGE_CONTENT_REGEX] ? { [X_AWS_IDP_PAGE_CONTENT_REGEX]: jsonSchema[X_AWS_IDP_PAGE_CONTENT_REGEX] } : {}), |
195 | 206 | }; |
196 | 207 | classes.push(mainClass); |
197 | 208 |
|
@@ -619,6 +630,12 @@ export const useSchemaDesigner = (initialSchema = []) => { |
619 | 630 | ...(docTypeClass.attributes.required?.length > 0 ? { required: docTypeClass.attributes.required } : {}), |
620 | 631 | ...(Object.keys(defs).length > 0 ? { $defs: defs } : {}), |
621 | 632 | ...(docTypeClass[X_AWS_IDP_EXAMPLES]?.length > 0 ? { [X_AWS_IDP_EXAMPLES]: docTypeClass[X_AWS_IDP_EXAMPLES] } : {}), |
| 633 | + ...(docTypeClass[X_AWS_IDP_DOCUMENT_NAME_REGEX] |
| 634 | + ? { [X_AWS_IDP_DOCUMENT_NAME_REGEX]: docTypeClass[X_AWS_IDP_DOCUMENT_NAME_REGEX] } |
| 635 | + : {}), |
| 636 | + ...(docTypeClass[X_AWS_IDP_PAGE_CONTENT_REGEX] |
| 637 | + ? { [X_AWS_IDP_PAGE_CONTENT_REGEX]: docTypeClass[X_AWS_IDP_PAGE_CONTENT_REGEX] } |
| 638 | + : {}), |
622 | 639 | }; |
623 | 640 |
|
624 | 641 | console.log('Final schema has $defs?', '$defs' in result); |
|
0 commit comments