walk.ts — tailwindcss Source File
Architecture documentation for walk.ts, a typescript file in the tailwindcss codebase. 0 imports, 27 dependents.
Entity Profile
Dependency Diagram
graph LR de024372_c459_7fda_5f4a_06bad3d1cb60["walk.ts"] 1fee5c3b_7ae2_ca4d_95c6_27cf503e0f66["urls.ts"] 1fee5c3b_7ae2_ca4d_95c6_27cf503e0f66 --> de024372_c459_7fda_5f4a_06bad3d1cb60 3fa17ded_e4a4_d883_1b62_64554550b238["migrate-preflight.ts"] 3fa17ded_e4a4_d883_1b62_64554550b238 --> de024372_c459_7fda_5f4a_06bad3d1cb60 a7d7b440_1887_5ac5_f34b_594e54b9f789["migrate-automatic-var-injection.ts"] a7d7b440_1887_5ac5_f34b_594e54b9f789 --> de024372_c459_7fda_5f4a_06bad3d1cb60 be87a3ac_cc03_f825_0729_c9fd3abfd6dc["migrate-theme-to-var.ts"] be87a3ac_cc03_f825_0729_c9fd3abfd6dc --> de024372_c459_7fda_5f4a_06bad3d1cb60 b423329d_bcc8_8f9b_cb7a_26d5991a0602["migrate-variant-order.ts"] b423329d_bcc8_8f9b_cb7a_26d5991a0602 --> de024372_c459_7fda_5f4a_06bad3d1cb60 3a015725_f8f3_769d_8ffe_6c8802c16649["apply.ts"] 3a015725_f8f3_769d_8ffe_6c8802c16649 --> de024372_c459_7fda_5f4a_06bad3d1cb60 be9dc25e_f7f3_2f3c_5fd4_38f78bab4cca["ast.test.ts"] be9dc25e_f7f3_2f3c_5fd4_38f78bab4cca --> de024372_c459_7fda_5f4a_06bad3d1cb60 247718b3_b5b8_7b17_49ec_2bb382291311["ast.ts"] 247718b3_b5b8_7b17_49ec_2bb382291311 --> de024372_c459_7fda_5f4a_06bad3d1cb60 7283d2cb_a00f_7c30_8fea_4e83f9f06b2c["at-import.ts"] 7283d2cb_a00f_7c30_8fea_4e83f9f06b2c --> de024372_c459_7fda_5f4a_06bad3d1cb60 d497ed7a_208d_0673_d424_ce5c71a06816["candidate.ts"] d497ed7a_208d_0673_d424_ce5c71a06816 --> de024372_c459_7fda_5f4a_06bad3d1cb60 4abb8e75_eadb_741a_7e25_e664d7f41b41["canonicalize-candidates.ts"] 4abb8e75_eadb_741a_7e25_e664d7f41b41 --> de024372_c459_7fda_5f4a_06bad3d1cb60 3eaa8702_2ade_17fb_d9e1_9250d5d2f57c["apply-compat-hooks.ts"] 3eaa8702_2ade_17fb_d9e1_9250d5d2f57c --> de024372_c459_7fda_5f4a_06bad3d1cb60 dffbaa84_d37d_a5c6_7d97_84d5fd0846f1["plugin-api.ts"] dffbaa84_d37d_a5c6_7d97_84d5fd0846f1 --> de024372_c459_7fda_5f4a_06bad3d1cb60 cf1beec0_f740_c83b_e16e_889783f70ef8["compile.ts"] cf1beec0_f740_c83b_e16e_889783f70ef8 --> de024372_c459_7fda_5f4a_06bad3d1cb60 style de024372_c459_7fda_5f4a_06bad3d1cb60 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
const enum WalkKind {
Continue,
Skip,
Stop,
Replace,
ReplaceSkip,
ReplaceStop,
}
export const WalkAction = {
Continue: { kind: WalkKind.Continue } as const,
Skip: { kind: WalkKind.Skip } as const,
Stop: { kind: WalkKind.Stop } as const,
Replace: <T>(nodes: T | T[]) =>
({ kind: WalkKind.Replace, nodes: Array.isArray(nodes) ? nodes : [nodes] }) as const,
ReplaceSkip: <T>(nodes: T | T[]) =>
({ kind: WalkKind.ReplaceSkip, nodes: Array.isArray(nodes) ? nodes : [nodes] }) as const,
ReplaceStop: <T>(nodes: T | T[]) =>
({ kind: WalkKind.ReplaceStop, nodes: Array.isArray(nodes) ? nodes : [nodes] }) as const,
} as const
type WalkAction = typeof WalkAction
type WalkResult<T> =
| WalkAction['Continue']
| WalkAction['Skip']
| WalkAction['Stop']
| ReturnType<typeof WalkAction.Replace<T>>
| ReturnType<typeof WalkAction.ReplaceSkip<T>>
| ReturnType<typeof WalkAction.ReplaceStop<T>>
type EnterResult<T> = WalkResult<T>
type ExitResult<T> = Exclude<WalkResult<T>, { kind: WalkKind.Skip }>
type Parent<T> = T & { nodes: T[] }
export interface VisitContext<T> {
parent: Parent<T> | null
depth: number
path: () => T[]
}
export function walk<T extends object>(
ast: T[],
hooks:
| ((node: T, ctx: VisitContext<T>) => EnterResult<T> | void) // Old API, enter only
| {
enter?: (node: T, ctx: VisitContext<T>) => EnterResult<T> | void
exit?: (node: T, ctx: VisitContext<T>) => ExitResult<T> | void
},
): void {
if (typeof hooks === 'function') walkImplementation(ast, hooks)
else walkImplementation(ast, hooks.enter, hooks.exit)
}
interface Stack<T> {
value: T
prev: Stack<T> | null
}
function walkImplementation<T extends { nodes?: T[] }>(
// ... (137 more lines)
Domain
Subdomains
Functions
Imported By
- packages/tailwindcss/src/compat/apply-compat-hooks.ts
- packages/tailwindcss/src/apply.ts
- packages/tailwindcss/src/ast.test.ts
- packages/tailwindcss/src/ast.ts
- packages/tailwindcss/src/at-import.ts
- packages/tailwindcss/src/candidate.ts
- packages/tailwindcss/src/canonicalize-candidates.ts
- packages/tailwindcss/src/compile.ts
- packages/tailwindcss/src/constant-fold-declaration.ts
- packages/tailwindcss/src/css-functions.ts
- packages/tailwindcss/src/design-system.ts
- packages/tailwindcss/src/expand-declaration.test.ts
- packages/tailwindcss/src/index.ts
- packages/tailwindcss/src/intellisense.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-automatic-var-injection.ts
- packages/@tailwindcss-upgrade/src/codemods/css/migrate-preflight.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-theme-to-var.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-variant-order.ts
- packages/tailwindcss/src/compat/plugin-api.ts
- packages/tailwindcss/src/selector-parser.test.ts
- packages/tailwindcss/src/source-maps/source-map.ts
- packages/@tailwindcss-node/src/urls.ts
- packages/tailwindcss/src/utilities.ts
- packages/tailwindcss/src/value-parser.test.ts
- packages/tailwindcss/src/utils/variables.ts
- packages/tailwindcss/src/variants.ts
- packages/tailwindcss/src/walk.test.ts
Source
Frequently Asked Questions
What does walk.ts do?
walk.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the TailwindCore domain, CompatLayer subdomain.
What functions are defined in walk.ts?
walk.ts defines 6 function(s): T, WalkAction.Replace, WalkAction.ReplaceSkip, WalkAction.ReplaceStop, walk, walkImplementation.
What files import walk.ts?
walk.ts is imported by 27 file(s): apply-compat-hooks.ts, apply.ts, ast.test.ts, ast.ts, at-import.ts, candidate.ts, canonicalize-candidates.ts, compile.ts, and 19 more.
Where is walk.ts in the architecture?
walk.ts is located at packages/tailwindcss/src/walk.ts (domain: TailwindCore, subdomain: CompatLayer, directory: packages/tailwindcss/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free