@@ -20,7 +20,7 @@ interface UploadOptions {
2020 multiEnvironment ?: boolean
2121}
2222
23- export type ChecksumWithSize = Checksum & { size : number }
23+ type ChecksumWithSize = Checksum & { size : number }
2424type FileBatch = ChecksumWithSize [ ]
2525
2626/**
@@ -202,6 +202,7 @@ function getRemoteFilesToBeDeleted(remoteChecksums: Checksum[], themeFileSystem:
202202}
203203
204204// Contextual Json Files -> Json Files -> Liquid Files -> Config Files -> Static Asset Files
205+ // Config file consideration: Inverse of the upload order: data first (consumes schema), then schema.
205206function orderFilesToBeDeleted ( files : Checksum [ ] ) : Checksum [ ] {
206207 const fileSets = partitionThemeFiles ( files )
207208 return [
@@ -213,7 +214,6 @@ function orderFilesToBeDeleted(files: Checksum[]): Checksum[] {
213214 ...fileSets . blockLiquidFiles ,
214215 ...fileSets . layoutFiles ,
215216 ...fileSets . otherLiquidFiles ,
216- // Inverse of the upload order: data first (consumes schema), then schema.
217217 ...fileSets . configDataFile ,
218218 ...fileSets . configSchemaFile ,
219219 ...fileSets . staticAssetFiles ,
@@ -317,10 +317,7 @@ function selectUploadableFiles(themeFileSystem: ThemeFileSystem, remoteChecksums
317317 * 1. config/settings_schema.json must be uploaded FIRST. It declares the
318318 * theme-level settings that block / section / section-group / template
319319 * validators resolve dynamic-source defaults against (e.g. defaults of
320- * the form {{ settings.<theme_setting>.<property> }}). On a fresh
321- * theme the stored schema is empty, so any later asset whose schema
322- * references a not-yet-declared theme setting fails server-side
323- * validation. Uploading the schema first primes those references.
320+ * the form {{ settings.<theme_setting>.<property> }}).
324321 * 2. Layout files don't necessarily need to be the first, but they must be
325322 * uploaded before templates.
326323 * 3. Liquid blocks need to be uploaded before sections
@@ -340,7 +337,7 @@ function selectUploadableFiles(themeFileSystem: ThemeFileSystem, remoteChecksums
340337 * - The static assets
341338 *
342339 */
343- export function orderFilesToBeUploaded ( files : ChecksumWithSize [ ] ) : {
340+ function orderFilesToBeUploaded ( files : ChecksumWithSize [ ] ) : {
344341 independentFiles : ChecksumWithSize [ ] [ ]
345342 dependentFiles : ChecksumWithSize [ ] [ ]
346343} {
@@ -351,17 +348,13 @@ export function orderFilesToBeUploaded(files: ChecksumWithSize[]): {
351348 independentFiles : [ fileSets . otherLiquidFiles , fileSets . otherJsonFiles , fileSets . staticAssetFiles ] ,
352349 // Follow order of dependencies:
353350 dependentFiles : [
354- // Theme setting declarations must land before any asset that may
355- // reference them via dynamic-source defaults. See header comment.
356351 fileSets . configSchemaFile ,
357352 fileSets . layoutFiles ,
358353 fileSets . blockLiquidFiles ,
359354 fileSets . sectionLiquidFiles ,
360355 fileSets . sectionJsonFiles ,
361356 fileSets . templateJsonFiles ,
362357 fileSets . contextualizedJsonFiles ,
363- // Settings values reference the schema we just uploaded, plus any
364- // sections / templates referenced by presets.
365358 fileSets . configDataFile ,
366359 ] ,
367360 }
@@ -399,7 +392,7 @@ function calculateLocalChecksums(localThemeFileSystem: ThemeFileSystem): Checksu
399392 localThemeFileSystem . files . forEach ( ( file , key ) => {
400393 // Text files: use UTF-8 byte count
401394 // Binary files: use base64 length
402- const size = file . value ? Buffer . byteLength ( file . value , 'utf8' ) : ( file . attachment ?. length ?? 0 )
395+ const size = file . value ? Buffer . byteLength ( file . value , 'utf8' ) : file . attachment ?. length ?? 0
403396
404397 checksums . push ( {
405398 key,
0 commit comments