import pkg from '../../package.json' export const env = typeof process !== 'undefined' ? { NODE_ENV: process.env.NODE_ENV, DEBUG: resolveDebug(process.env.DEBUG), ENGINE: pkg.tailwindcss.engine, } : { NODE_ENV: 'production', DEBUG: false, ENGINE: pkg.tailwindcss.engine, } export const contextMap = new Map() export const configContextMap = new Map() export const contextSourcesMap = new Map() export const sourceHashMap = new Map() export const NOT_ON_DEMAND = new String('*') export const NONE = Symbol('__NONE__') export function resolveDebug(debug) { if (debug === undefined) { return false } // Environment variables are strings, so convert to boolean if (debug === 'true' || debug === '1') { return true } if (debug === 'false' || debug === '0') { return false } // Keep the debug convention into account: // DEBUG=* -> This enables all debug modes // DEBUG=projectA,projectB,projectC -> This enables debug for projectA, projectB and projectC // DEBUG=projectA:* -> This enables all debug modes for projectA (if you have sub-types) // DEBUG=projectA,-projectB -> This enables debug for projectA and explicitly disables it for projectB if (debug === '*') { return true } let debuggers = debug.split(',').map((d) => d.split(':')[0]) // Ignoring tailwindcss if (debuggers.includes('-tailwindcss')) { return false } // Including tailwindcss if (debuggers.includes('tailwindcss')) { return true } return false }