Home / File/ normalize-path.ts — tailwindcss Source File

normalize-path.ts — tailwindcss Source File

Architecture documentation for normalize-path.ts, a typescript file in the tailwindcss codebase. 0 imports, 2 dependents.

File typescript NodeBridge Compiler 2 dependents 2 functions

Entity Profile

Dependency Diagram

graph LR
  342c0afc_3173_535b_9e25_ef41f6768585["normalize-path.ts"]
  5e3855e0_f04e_28ee_98ea_8502e6531bc8["urls.ts"]
  5e3855e0_f04e_28ee_98ea_8502e6531bc8 --> 342c0afc_3173_535b_9e25_ef41f6768585
  deadb2f6_312c_a055_6892_b63958628b61["migrate-config.ts"]
  deadb2f6_312c_a055_6892_b63958628b61 --> 342c0afc_3173_535b_9e25_ef41f6768585
  style 342c0afc_3173_535b_9e25_ef41f6768585 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

// Inlined version of `normalize-path` <https://github.com/jonschlinkert/normalize-path>
// Copyright (c) 2014-2018, Jon Schlinkert.
// Released under the MIT License.
function normalizePathBase(path: string, stripTrailing?: boolean) {
  if (typeof path !== 'string') {
    throw new TypeError('expected path to be a string')
  }

  if (path === '\\' || path === '/') return '/'

  var len = path.length
  if (len <= 1) return path

  // ensure that win32 namespaces has two leading slashes, so that the path is
  // handled properly by the win32 version of path.parse() after being normalized
  // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces
  var prefix = ''
  if (len > 4 && path[3] === '\\') {
    var ch = path[2]
    if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') {
      path = path.slice(2)
      prefix = '//'
    }
  }

  var segs = path.split(/[/\\]+/)
  if (stripTrailing !== false && segs[segs.length - 1] === '') {
    segs.pop()
  }
  return prefix + segs.join('/')
}

export function normalizePath(originalPath: string) {
  let normalized = normalizePathBase(originalPath)

  // Make sure Windows network share paths are normalized properly
  // They have to begin with two slashes or they won't resolve correctly
  if (
    originalPath.startsWith('\\\\') &&
    normalized.startsWith('/') &&
    !normalized.startsWith('//')
  ) {
    return `/${normalized}`
  }

  return normalized
}

Domain

Subdomains

Frequently Asked Questions

What does normalize-path.ts do?
normalize-path.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the NodeBridge domain, Compiler subdomain.
What functions are defined in normalize-path.ts?
normalize-path.ts defines 2 function(s): normalizePath, normalizePathBase.
What files import normalize-path.ts?
normalize-path.ts is imported by 2 file(s): migrate-config.ts, urls.ts.
Where is normalize-path.ts in the architecture?
normalize-path.ts is located at packages/@tailwindcss-node/src/normalize-path.ts (domain: NodeBridge, subdomain: Compiler, directory: packages/@tailwindcss-node/src).

Analyze Your Own Codebase

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

Try Supermodel Free