Outerfaces.Odd.Plugs.OddCDNRoflJSPlug (Outerfaces Dependency Distribution (ODD) v0.2.5)
View SourceTransforms JavaScript import/export statements by rewriting CDN and SPA 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
- [OUTERFACES_ODD_SPA] - Always rev-pinned
Dual-mode behavior:
- When conn.assigns.outerfaces_rev is present: rev-pinned URLs (/__rev/<rev>/cdn/...)
- Otherwise: absolute URLs (http://localhost:60032/...)
Summary
Functions
Transforms JavaScript imports/exports with rev-pinned URLs.
Functions
@spec transform_javascript_with_conn(String.t(), Plug.Conn.t(), String.t()) :: String.t()
Transforms JavaScript imports/exports with rev-pinned URLs.
This function always emits rev-pinned URLs in the canonical format:
- CDN:
<cdn_origin>/__rev/<rev>/cdn/<path> - SPA:
/__rev/<rev>/spa/<path>
Parameters
file_content- JavaScript file contentconn- Plug.Conn struct (used to get rev)cdn_origin- Origin for CDN assets:- Unified proxy mode: "" (empty string, emits relative URLs)
- Direct CDN mode: "http://localhost:60032" (full origin)
Returns
Transformed JavaScript content with all tokens replaced
Examples
# Unified proxy mode (cdn_origin = "")
transform_javascript_with_conn(content, conn, "")
# Emits: /__rev/abc123/cdn/foo.js
# Direct CDN mode (cdn_origin = "http://localhost:60032")
transform_javascript_with_conn(content, conn, "http://localhost:60032")
# Emits: http://localhost:60032/__rev/abc123/cdn/foo.js