Home / File/ line-table.test.ts — tailwindcss Source File

line-table.test.ts — tailwindcss Source File

Architecture documentation for line-table.test.ts, a typescript file in the tailwindcss codebase. 4 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  decf24ed_f8e8_0417_e8e2_cfbab3000951["line-table.test.ts"]
  ac7e86e1_459b_f374_4516_afecc84f2a17["line-table.ts"]
  decf24ed_f8e8_0417_e8e2_cfbab3000951 --> ac7e86e1_459b_f374_4516_afecc84f2a17
  0204f9b9_80aa_c3e8_eb61_22170d608d65["createLineTable"]
  decf24ed_f8e8_0417_e8e2_cfbab3000951 --> 0204f9b9_80aa_c3e8_eb61_22170d608d65
  211db6bb_9759_d0cf_acda_36d7f5733ce2["dedent"]
  decf24ed_f8e8_0417_e8e2_cfbab3000951 --> 211db6bb_9759_d0cf_acda_36d7f5733ce2
  696bd648_5f24_1b59_8e8b_7a97a692869e["vitest"]
  decf24ed_f8e8_0417_e8e2_cfbab3000951 --> 696bd648_5f24_1b59_8e8b_7a97a692869e
  style decf24ed_f8e8_0417_e8e2_cfbab3000951 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import dedent from 'dedent'
import { expect, test } from 'vitest'
import { createLineTable } from './line-table'

const css = dedent

test('line tables', () => {
  let text = css`
    .foo {
      color: red;
    }
  `

  let table = createLineTable(`${text}\n`)

  // Line 1: `.foo {\n`
  expect(table.find(0)).toEqual({ line: 1, column: 0 })
  expect(table.find(1)).toEqual({ line: 1, column: 1 })
  expect(table.find(2)).toEqual({ line: 1, column: 2 })
  expect(table.find(3)).toEqual({ line: 1, column: 3 })
  expect(table.find(4)).toEqual({ line: 1, column: 4 })
  expect(table.find(5)).toEqual({ line: 1, column: 5 })
  expect(table.find(6)).toEqual({ line: 1, column: 6 })

  // Line 2: `  color: red;\n`
  expect(table.find(6 + 1)).toEqual({ line: 2, column: 0 })
  expect(table.find(6 + 2)).toEqual({ line: 2, column: 1 })
  expect(table.find(6 + 3)).toEqual({ line: 2, column: 2 })
  expect(table.find(6 + 4)).toEqual({ line: 2, column: 3 })
  expect(table.find(6 + 5)).toEqual({ line: 2, column: 4 })
  expect(table.find(6 + 6)).toEqual({ line: 2, column: 5 })
  expect(table.find(6 + 7)).toEqual({ line: 2, column: 6 })
  expect(table.find(6 + 8)).toEqual({ line: 2, column: 7 })
  expect(table.find(6 + 9)).toEqual({ line: 2, column: 8 })
  expect(table.find(6 + 10)).toEqual({ line: 2, column: 9 })
  expect(table.find(6 + 11)).toEqual({ line: 2, column: 10 })
  expect(table.find(6 + 12)).toEqual({ line: 2, column: 11 })
  expect(table.find(6 + 13)).toEqual({ line: 2, column: 12 })

  // Line 3: `}\n`
  expect(table.find(20 + 1)).toEqual({ line: 3, column: 0 })
  expect(table.find(20 + 2)).toEqual({ line: 3, column: 1 })

  // After the new line
  expect(table.find(22 + 1)).toEqual({ line: 4, column: 0 })
})

test('line tables findOffset', () => {
  let text = css`
    .foo {
      color: red;
    }
  `

  let table = createLineTable(`${text}\n`)

  // Line 1: `.foo {\n`
  expect(table.findOffset({ line: 1, column: 0 })).toEqual(0)
  expect(table.findOffset({ line: 1, column: 1 })).toEqual(1)
  expect(table.findOffset({ line: 1, column: 2 })).toEqual(2)
  expect(table.findOffset({ line: 1, column: 3 })).toEqual(3)
  expect(table.findOffset({ line: 1, column: 4 })).toEqual(4)
  expect(table.findOffset({ line: 1, column: 5 })).toEqual(5)
  expect(table.findOffset({ line: 1, column: 6 })).toEqual(6)

  // Line 2: `  color: red;\n`
  expect(table.findOffset({ line: 2, column: 0 })).toEqual(6 + 1)
  expect(table.findOffset({ line: 2, column: 1 })).toEqual(6 + 2)
  expect(table.findOffset({ line: 2, column: 2 })).toEqual(6 + 3)
  expect(table.findOffset({ line: 2, column: 3 })).toEqual(6 + 4)
  expect(table.findOffset({ line: 2, column: 4 })).toEqual(6 + 5)
  expect(table.findOffset({ line: 2, column: 5 })).toEqual(6 + 6)
  expect(table.findOffset({ line: 2, column: 6 })).toEqual(6 + 7)
  expect(table.findOffset({ line: 2, column: 7 })).toEqual(6 + 8)
  expect(table.findOffset({ line: 2, column: 8 })).toEqual(6 + 9)
  expect(table.findOffset({ line: 2, column: 9 })).toEqual(6 + 10)
  expect(table.findOffset({ line: 2, column: 10 })).toEqual(6 + 11)
  expect(table.findOffset({ line: 2, column: 11 })).toEqual(6 + 12)
  expect(table.findOffset({ line: 2, column: 12 })).toEqual(6 + 13)

  // Line 3: `}\n`
  expect(table.findOffset({ line: 3, column: 0 })).toEqual(20 + 1)
  expect(table.findOffset({ line: 3, column: 1 })).toEqual(20 + 2)

  // After the new line
  expect(table.findOffset({ line: 4, column: 0 })).toEqual(22 + 1)
})

Domain

Dependencies

Frequently Asked Questions

What does line-table.test.ts do?
line-table.test.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the OxideEngine domain.
What does line-table.test.ts depend on?
line-table.test.ts imports 4 module(s): createLineTable, dedent, line-table.ts, vitest.
Where is line-table.test.ts in the architecture?
line-table.test.ts is located at packages/tailwindcss/src/source-maps/line-table.test.ts (domain: OxideEngine, directory: packages/tailwindcss/src/source-maps).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free