at-import.ts — tailwindcss Source File
Architecture documentation for at-import.ts, a typescript file in the tailwindcss codebase. 9 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR bb501946_7944_1015_b5ff_34d10aace799["at-import.ts"] 42640952_ea63_55f1_1ff1_00816e2980ae["ast.ts"] bb501946_7944_1015_b5ff_34d10aace799 --> 42640952_ea63_55f1_1ff1_00816e2980ae f9b19679_c1f0_28d6_4d1a_31a10c52e42d["atRule"] bb501946_7944_1015_b5ff_34d10aace799 --> f9b19679_c1f0_28d6_4d1a_31a10c52e42d 2cb0bb18_cebb_3874_811d_77095e27cf0d["context"] bb501946_7944_1015_b5ff_34d10aace799 --> 2cb0bb18_cebb_3874_811d_77095e27cf0d 54851997_7544_bab2_96ab_548e5f5df205["css-parser.ts"] bb501946_7944_1015_b5ff_34d10aace799 --> 54851997_7544_bab2_96ab_548e5f5df205 1d3f1613_f144_938f_08f7_49039a46ad49["value-parser.ts"] bb501946_7944_1015_b5ff_34d10aace799 --> 1d3f1613_f144_938f_08f7_49039a46ad49 d1b39b63_c9d5_6c28_0206_0ddc8b895876["walk.ts"] bb501946_7944_1015_b5ff_34d10aace799 --> d1b39b63_c9d5_6c28_0206_0ddc8b895876 ed78da58_8727_ad98_120c_61f35cea357a["walk"] bb501946_7944_1015_b5ff_34d10aace799 --> ed78da58_8727_ad98_120c_61f35cea357a 7b34c369_d799_30f1_b751_6e3fd5349f6b["WalkAction"] bb501946_7944_1015_b5ff_34d10aace799 --> 7b34c369_d799_30f1_b751_6e3fd5349f6b 901927f2_bc06_7bba_3b59_6521372af070["."] bb501946_7944_1015_b5ff_34d10aace799 --> 901927f2_bc06_7bba_3b59_6521372af070 7d223813_0df4_dfbe_850e_d5fd9ab81eef["migrate-import.ts"] 7d223813_0df4_dfbe_850e_d5fd9ab81eef --> bb501946_7944_1015_b5ff_34d10aace799 5af9cd3c_2cf4_9dee_376e_fc39122d865a["index.ts"] 5af9cd3c_2cf4_9dee_376e_fc39122d865a --> bb501946_7944_1015_b5ff_34d10aace799 style bb501946_7944_1015_b5ff_34d10aace799 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { Features } from '.'
import { atRule, context, type AstNode } from './ast'
import * as CSS from './css-parser'
import * as ValueParser from './value-parser'
import { walk, WalkAction } from './walk'
type LoadStylesheet = (
id: string,
basedir: string,
) => Promise<{
path: string
base: string
content: string
}>
export async function substituteAtImports(
ast: AstNode[],
base: string,
loadStylesheet: LoadStylesheet,
recurseCount = 0,
track = false,
) {
let features = Features.None
let promises: Promise<void>[] = []
walk(ast, (node) => {
if (node.kind === 'at-rule' && (node.name === '@import' || node.name === '@reference')) {
let parsed = parseImportParams(ValueParser.parse(node.params))
if (parsed === null) return
if (node.name === '@reference') {
parsed.media = 'reference'
}
features |= Features.AtImport
let { uri, layer, media, supports } = parsed
// Skip importing data or remote URIs
if (uri.startsWith('data:')) return
if (uri.startsWith('http://') || uri.startsWith('https://')) return
let contextNode = context({}, [])
promises.push(
(async () => {
// Since we do not have fully resolved paths in core, we can't
// reliably detect circular imports. Instead, we try to limit the
// recursion depth to a number that is too large to be reached in
// practice.
if (recurseCount > 100) {
throw new Error(
`Exceeded maximum recursion depth while resolving \`${uri}\` in \`${base}\`)`,
)
}
let loaded = await loadStylesheet(uri, base)
let ast = CSS.parse(loaded.content, { from: track ? loaded.path : undefined })
await substituteAtImports(ast, loaded.base, loadStylesheet, recurseCount + 1, track)
contextNode.nodes = buildImportNodes(
// ... (119 more lines)
Domain
Subdomains
Types
Imported By
Source
Frequently Asked Questions
What does at-import.ts do?
at-import.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the OxideEngine domain, Scanner subdomain.
What functions are defined in at-import.ts?
at-import.ts defines 4 function(s): buildImportNodes, id, parseImportParams, substituteAtImports.
What does at-import.ts depend on?
at-import.ts imports 9 module(s): ., WalkAction, ast.ts, atRule, context, css-parser.ts, value-parser.ts, walk, and 1 more.
What files import at-import.ts?
at-import.ts is imported by 2 file(s): index.ts, migrate-import.ts.
Where is at-import.ts in the architecture?
at-import.ts is located at packages/tailwindcss/src/at-import.ts (domain: OxideEngine, subdomain: Scanner, directory: packages/tailwindcss/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free