Outerfaces.Odd.Plugs.OddCDNRoflCSSPlug (Outerfaces Dependency Distribution (ODD) v0.2.5)

View Source

Transforms CSS @import statements by rewriting CDN tokens.

Supports both legacy and new token patterns:

  • [OUTERFACES_LOCAL_CDN] - DEPRECATED, aliased to [OUTERFACES_ODD_CDN]
  • [OUTERFACES_ODD_CDN] - Dual-mode: rev-pinned or absolute URLs

Dual-mode behavior:

  • When conn.assigns.outerfaces_rev is present: rev-pinned URLs (/__rev/<rev>/cdn/...)
  • Otherwise: absolute URLs (http://localhost:60032/...)

Summary

Functions

normalize_newlines(content)

@spec normalize_newlines(String.t()) :: String.t()

replace_cdn_imports(file_body, cdn_protocol, cdn_host, cdn_port)

@spec replace_cdn_imports(
  file_body :: String.t(),
  cdn_protocol :: String.t(),
  cdn_host :: String.t(),
  cdn_port :: integer()
) :: String.t()

replace_cdn_imports_with_base_url(file_body, cdn_base_url)

@spec replace_cdn_imports_with_base_url(
  file_body :: String.t(),
  cdn_base_url :: String.t()
) ::
  String.t()

transform_css_cdn_imports(file_content, cdn_service_host_name, cdn_service_host_port, url_scheme)

@spec transform_css_cdn_imports(
  file_content :: String.t(),
  cdn_service_host_name :: String.t(),
  cdn_service_host_port :: integer(),
  url_scheme :: String.t()
) :: String.t()

transform_css_cdn_imports_with_base_url(file_content, cdn_base_url)

@spec transform_css_cdn_imports_with_base_url(
  file_content :: String.t(),
  cdn_base_url :: String.t()
) :: String.t()

transform_css_with_conn(file_content, conn, cdn_origin)

@spec transform_css_with_conn(String.t(), Plug.Conn.t(), String.t()) :: String.t()

Transforms CSS @import statements with rev-pinned URLs.

This function always emits rev-pinned URLs in the canonical format:

  • CDN: <cdn_origin>/__rev/<rev>/cdn/<path>

Parameters

  • file_content - CSS file content
  • conn - Plug.Conn struct (used to get rev)
  • cdn_origin - Origin for CDN assets:

Returns

Transformed CSS content with all tokens replaced

Examples

# Unified proxy mode (cdn_origin = "")
transform_css_with_conn(content, conn, "")
# Emits: /__rev/abc123/cdn/foo.css

# Direct CDN mode (cdn_origin = "http://localhost:60032")
transform_css_with_conn(content, conn, "http://localhost:60032")
# Emits: http://localhost:60032/__rev/abc123/cdn/foo.css