@@ -292,10 +292,8 @@ class UnoGeneratorInternal<Theme extends object = object> {
292292 )
293293 } ) ( )
294294
295- const layers = this . config . sortLayers ( Array
296- . from ( layerSet )
297- . sort ( ( a , b ) => ( ( this . config . layers [ a ] ?? 0 ) - ( this . config . layers [ b ] ?? 0 ) ) || a . localeCompare ( b ) ) )
298-
295+ const sortLayers = ( layers : string [ ] ) => this . config . sortLayers ( layers . sort ( ( a , b ) => ( ( this . config . layers [ a ] ?? 0 ) - ( this . config . layers [ b ] ?? 0 ) ) || a . localeCompare ( b ) ) )
296+ const layers = sortLayers ( Array . from ( layerSet ) )
299297 const layerCache : Record < string , string > = { }
300298 const outputCssLayers = this . config . outputToCssLayers
301299 const getLayerAlias = ( layer : string ) => {
@@ -395,10 +393,17 @@ class UnoGeneratorInternal<Theme extends object = object> {
395393
396394 const getLayers = ( includes = layers , excludes ?: string [ ] ) => {
397395 const layers = includes . filter ( i => ! excludes ?. includes ( i ) )
398- return [
399- outputCssLayers && layers . length > 0 ? `@layer ${ layers . map ( getLayerAlias ) . filter ( notNull ) . join ( ', ' ) } ;` : undefined ,
400- ...layers . map ( i => getLayer ( i ) || '' ) ,
401- ] . filter ( Boolean ) . join ( nl )
396+ const css = layers . map ( getLayer ) . filter ( Boolean )
397+
398+ if ( outputCssLayers ) {
399+ let layerNames = layers
400+ if ( typeof outputCssLayers === 'object' && outputCssLayers . allLayers ) {
401+ layerNames = sortLayers ( Object . keys ( this . config . layers ) )
402+ }
403+ if ( layerNames . length > 0 )
404+ css . unshift ( `@layer ${ layerNames . map ( getLayerAlias ) . filter ( notNull ) . join ( ', ' ) } ;` )
405+ }
406+ return css . join ( nl )
402407 }
403408
404409 const setLayer = async ( layer : string , callback : ( content : string ) => Promise < string > ) => {
0 commit comments