1- // Syntax highlighting for contenteditable
1+ // Reference to the JSON input textarea
22const jsonInputElement = document . getElementById ( 'json-input' ) ;
3- jsonInputElement . addEventListener ( 'input' , ( ) => {
4- Prism . highlightElement ( jsonInputElement ) ;
5- } ) ;
63
74// Set "Include 'StatusCode' field" to unchecked by default
85document . getElementById ( 'include-statuscode' ) . checked = false ;
96
107// Event listener for Generate Schema button
118document . getElementById ( 'generate-button' ) . addEventListener ( 'click' , ( ) => {
12- const jsonInput = jsonInputElement . textContent ;
9+ const jsonInput = document . getElementById ( 'json-input' ) . value ;
1310 const outputElement = document . getElementById ( 'schema-output' ) ;
1411 const errorMessage = document . getElementById ( 'error-message' ) ;
1512 const forceNullable = document . getElementById ( 'force-nullable' ) . checked ;
@@ -115,7 +112,6 @@ schemaTypeRadios.forEach(radio => {
115112// Initial visibility update
116113updateOptionsVisibility ( ) ;
117114
118- // Complete generateDeltaSchema function
119115function generateDeltaSchema ( jsonObj , forceNullable , includeStatusCode ) {
120116 function getType ( value ) {
121117 if ( value === null ) {
@@ -134,8 +130,12 @@ function generateDeltaSchema(jsonObj, forceNullable, includeStatusCode) {
134130 return 'struct' ;
135131 } else if ( typeof value === 'number' ) {
136132 if ( Number . isInteger ( value ) ) {
137- // Use 'integer' for all integer values
138- return 'integer' ;
133+ // Check the range of the integer
134+ if ( value >= - 2147483648 && value <= 2147483647 ) {
135+ return 'integer' ;
136+ } else {
137+ return 'long' ;
138+ }
139139 } else {
140140 // Use 'double' for all floating point numbers
141141 return 'double' ;
0 commit comments