f1rq.ovh/node_modules/postcss-import/lib/base64-encoded-import.js
2025-03-25 23:48:13 +01:00

31 lines
1017 B
JavaScript

"use strict"
const formatImportPrelude = require("./format-import-prelude")
// Base64 encode an import with conditions
// The order of conditions is important and is interleaved with cascade layer declarations
// Each group of conditions and cascade layers needs to be interpreted in order
// To achieve this we create a list of base64 encoded imports, where each import contains a stylesheet with another import.
// Each import can define a single group of conditions and a single cascade layer.
module.exports = function base64EncodedConditionalImport(prelude, conditions) {
conditions.reverse()
const first = conditions.pop()
let params = `${prelude} ${formatImportPrelude(
first.layer,
first.media,
first.supports,
)}`
for (const condition of conditions) {
params = `'data:text/css;base64,${Buffer.from(`@import ${params}`).toString(
"base64",
)}' ${formatImportPrelude(
condition.layer,
condition.media,
condition.supports,
)}`
}
return params
}