@@ -23,6 +23,7 @@ import {
23
23
AstroError ,
24
24
AstroErrorData ,
25
25
AstroUserError ,
26
+ type ErrorWithMetadata ,
26
27
createSafeError ,
27
28
isAstroError ,
28
29
} from '../errors/index.js' ;
@@ -62,17 +63,7 @@ export default async function sync(
62
63
logger,
63
64
} ) ;
64
65
65
- // Run `astro:config:done`
66
- // Actions will throw if there is misconfiguration, so catch here.
67
- try {
68
- await runHookConfigDone ( { settings, logger } ) ;
69
- } catch ( err ) {
70
- if ( err instanceof Error ) {
71
- const errorMessage = err . toString ( ) ;
72
- logger . error ( 'sync' , errorMessage ) ;
73
- }
74
- throw err ;
75
- }
66
+ await runHookConfigDone ( { settings, logger } ) ;
76
67
77
68
return await syncInternal ( { settings, logger, fs, force : inlineConfig . force } ) ;
78
69
}
@@ -112,51 +103,41 @@ export async function syncInternal({
112
103
113
104
const timerStart = performance . now ( ) ;
114
105
115
- try {
116
- if ( ! skip ?. content ) {
117
- await syncContentCollections ( settings , { fs, logger } ) ;
118
- settings . timer . start ( 'Sync content layer' ) ;
119
- let store : MutableDataStore | undefined ;
120
- try {
121
- const dataStoreFile = getDataStoreFile ( settings ) ;
122
- if ( existsSync ( dataStoreFile ) ) {
123
- store = await MutableDataStore . fromFile ( dataStoreFile ) ;
124
- }
125
- } catch ( err : any ) {
126
- logger . error ( 'content' , err . message ) ;
127
- }
128
- if ( ! store ) {
129
- store = new MutableDataStore ( ) ;
106
+ if ( ! skip ?. content ) {
107
+ await syncContentCollections ( settings , { fs, logger } ) ;
108
+ settings . timer . start ( 'Sync content layer' ) ;
109
+ let store : MutableDataStore | undefined ;
110
+ try {
111
+ const dataStoreFile = getDataStoreFile ( settings ) ;
112
+ if ( existsSync ( dataStoreFile ) ) {
113
+ store = await MutableDataStore . fromFile ( dataStoreFile ) ;
130
114
}
131
- const contentLayer = globalContentLayer . init ( {
132
- settings,
133
- logger,
134
- store,
135
- } ) ;
136
- await contentLayer . sync ( ) ;
137
- settings . timer . end ( 'Sync content layer' ) ;
138
- } else if ( fs . existsSync ( fileURLToPath ( getContentPaths ( settings . config , fs ) . contentDir ) ) ) {
139
- // Content is synced after writeFiles. That means references are not created
140
- // To work around it, we create a stub so the reference is created and content
141
- // sync will override the empty file
142
- settings . injectedTypes . push ( {
143
- filename : CONTENT_TYPES_FILE ,
144
- content : '' ,
145
- } ) ;
115
+ } catch ( err : any ) {
116
+ logger . error ( 'content' , err . message ) ;
146
117
}
147
- syncAstroEnv ( settings , fs ) ;
148
-
149
- await writeFiles ( settings , fs , logger ) ;
150
- logger . info ( 'types' , `Generated ${ dim ( getTimeStat ( timerStart , performance . now ( ) ) ) } ` ) ;
151
- } catch ( err ) {
152
- const error = createSafeError ( err ) ;
153
- logger . error (
154
- 'types' ,
155
- formatErrorMessage ( collectErrorMetadata ( error ) , logger . level ( ) === 'debug' ) + '\n' ,
156
- ) ;
157
- // Will return exit code 1 in CLI
158
- throw error ;
118
+ if ( ! store ) {
119
+ store = new MutableDataStore ( ) ;
120
+ }
121
+ const contentLayer = globalContentLayer . init ( {
122
+ settings,
123
+ logger,
124
+ store,
125
+ } ) ;
126
+ await contentLayer . sync ( ) ;
127
+ settings . timer . end ( 'Sync content layer' ) ;
128
+ } else if ( fs . existsSync ( fileURLToPath ( getContentPaths ( settings . config , fs ) . contentDir ) ) ) {
129
+ // Content is synced after writeFiles. That means references are not created
130
+ // To work around it, we create a stub so the reference is created and content
131
+ // sync will override the empty file
132
+ settings . injectedTypes . push ( {
133
+ filename : CONTENT_TYPES_FILE ,
134
+ content : '' ,
135
+ } ) ;
159
136
}
137
+ syncAstroEnv ( settings , fs ) ;
138
+
139
+ await writeFiles ( settings , fs , logger ) ;
140
+ logger . info ( 'types' , `Generated ${ dim ( getTimeStat ( timerStart , performance . now ( ) ) ) } ` ) ;
160
141
}
161
142
162
143
/**
@@ -223,7 +204,7 @@ async function syncContentCollections(
223
204
}
224
205
}
225
206
} catch ( e ) {
226
- const safeError = createSafeError ( e ) ;
207
+ const safeError = createSafeError ( e ) as ErrorWithMetadata ;
227
208
if ( isAstroError ( e ) ) {
228
209
throw e ;
229
210
}
@@ -233,6 +214,7 @@ async function syncContentCollections(
233
214
...AstroErrorData . GenerateContentTypesError ,
234
215
hint,
235
216
message : AstroErrorData . GenerateContentTypesError . message ( safeError . message ) ,
217
+ location : safeError . loc ,
236
218
} ,
237
219
{ cause : e } ,
238
220
) ;
0 commit comments