1- import { log } from "@contentstack/cli-utilities" ;
1+ import { log , resolveCanonicalEndpoints } from '@contentstack/cli-utilities' ;
2+
3+ /**
4+ * Resolve the GraphQL delivery host for a region.
5+ */
6+ export const resolveGraphqlHost = ( region : {
7+ name : string ;
8+ endpoints ?: Record < string , string > ;
9+ } ) : string | undefined => {
10+ const graphqlDelivery =
11+ region ?. endpoints ?. graphqlDelivery || resolveCanonicalEndpoints ( region ?. name ) ?. graphqlDelivery ;
12+
13+ return graphqlDelivery ?. replace ( / ^ h t t p s ? : \/ \/ / , '' ) . replace ( / \/ + $ / , '' ) ;
14+ } ;
215
316export const sanitizePath = ( str : string ) => {
417 return str
5- ?. replace ( / ^ ( [ \/ \\ ] ) { 2 , } / , "./" ) // Normalize leading slashes/backslashes to ''
6- . replace ( / [ \/ \\ ] + / g, "/" ) // Replace multiple slashes/backslashes with a single '/'
7- . replace ( / ( \. \. ( \/ | \\ | $ ) ) + / g, "" ) ; // Remove directory traversal (../ or ..\)
18+ ?. replace ( / ^ ( [ \/ \\ ] ) { 2 , } / , './' ) // Normalize leading slashes/backslashes to ''
19+ . replace ( / [ \/ \\ ] + / g, '/' ) // Replace multiple slashes/backslashes with a single '/'
20+ . replace ( / ( \. \. ( \/ | \\ | $ ) ) + / g, '' ) ; // Remove directory traversal (../ or ..\)
821} ;
922
1023/**
@@ -24,59 +37,46 @@ export interface FormattedError {
2437 * @param context - The context where the error occurred (e.g., "tsgen", "graphql")
2538 */
2639export const printFormattedError = ( error : FormattedError , context : string ) => {
27- const errorCode = error ?. error_code || " UNKNOWN_ERROR" ;
40+ const errorCode = error ?. error_code || ' UNKNOWN_ERROR' ;
2841 // Special handling for our numeric identifier validation errors
29- if (
30- errorCode === "VALIDATION_ERROR" &&
31- error ?. error_message &&
32- error . error_message . includes ( "numeric identifiers" )
33- ) {
42+ if ( errorCode === 'VALIDATION_ERROR' && error ?. error_message && error . error_message . includes ( 'numeric identifiers' ) ) {
3443 // Just print our detailed message as-is, no extra formatting
3544 log . error ( error . error_message ) ;
3645 return ;
3746 }
3847
39- let errorMessage = " An unexpected error occurred. Try again." ;
40- let hint = "" ;
48+ let errorMessage = ' An unexpected error occurred. Try again.' ;
49+ let hint = '' ;
4150
4251 switch ( errorCode ) {
43- case " AUTHENTICATION_FAILED" :
44- errorMessage = " Authentication failed. Check your credentials and try again." ;
45- hint = " Please check your API key, token, and region." ;
52+ case ' AUTHENTICATION_FAILED' :
53+ errorMessage = ' Authentication failed. Check your credentials and try again.' ;
54+ hint = ' Please check your API key, token, and region.' ;
4655 break ;
47- case " INVALID_CREDENTIALS" :
48- errorMessage = " Invalid credentials. Please verify and re-enter your login details." ;
49- hint = " Please verify your API key, token, and region." ;
56+ case ' INVALID_CREDENTIALS' :
57+ errorMessage = ' Invalid credentials. Please verify and re-enter your login details.' ;
58+ hint = ' Please verify your API key, token, and region.' ;
5059 break ;
51- case "INVALID_INTERFACE_NAME" :
52- case "INVALID_CONTENT_TYPE_UID" :
53- errorMessage = "Generated types contain a TypeScript syntax error." ;
54- hint =
55- "Use a prefix to ensure all interface names are valid TypeScript identifiers." ;
60+ case 'INVALID_INTERFACE_NAME' :
61+ case 'INVALID_CONTENT_TYPE_UID' :
62+ errorMessage = 'Generated types contain a TypeScript syntax error.' ;
63+ hint = 'Use a prefix to ensure all interface names are valid TypeScript identifiers.' ;
5664 break ;
57- case "INVALID_GLOBAL_FIELD_REFERENCE" :
58- errorMessage = "Generated types contain a TypeScript syntax error." ;
59- hint =
60- "Use a prefix to ensure all interface names are valid TypeScript identifiers." ;
65+ case 'INVALID_GLOBAL_FIELD_REFERENCE' :
66+ errorMessage = 'Generated types contain a TypeScript syntax error.' ;
67+ hint = 'Use a prefix to ensure all interface names are valid TypeScript identifiers.' ;
6168 break ;
62- case "VALIDATION_ERROR" :
63- errorMessage = "Type generation failed due to a validation error." ;
64- hint =
65- error ?. error_message ||
66- "Type generation failed due to a validation error." ;
69+ case 'VALIDATION_ERROR' :
70+ errorMessage = 'Type generation failed due to a validation error.' ;
71+ hint = error ?. error_message || 'Type generation failed due to a validation error.' ;
6772 break ;
68- case "TYPE_GENERATION_FAILED" :
69- errorMessage = "Type generation failed due to a system error. Try again." ;
70- hint =
71- error ?. error_message ||
72- "Unexpected error during type generation. Try again." ;
73+ case 'TYPE_GENERATION_FAILED' :
74+ errorMessage = 'Type generation failed due to a system error. Try again.' ;
75+ hint = error ?. error_message || 'Unexpected error during type generation. Try again.' ;
7376 break ;
7477 default :
75- errorMessage =
76- error ?. error_message ||
77- error ?. message ||
78- "An unexpected error occurred. Try again." ;
79- hint = "Check the error details and try again." ;
78+ errorMessage = error ?. error_message || error ?. message || 'An unexpected error occurred. Try again.' ;
79+ hint = 'Check the error details and try again.' ;
8080 }
8181
8282 // Print formatted error output
0 commit comments