defmodule OXC.Bundle.Output do @moduledoc "A generated bundle output chunk or asset." defstruct type: nil, name: nil, file_name: nil, path: nil, code: nil, source: nil, sourcemap: nil, imports: [], dynamic_imports: [], exports: [] @type t :: %__MODULE__{} def new(%__MODULE__{} = output), do: output def new(map) when is_map(map) do %__MODULE__{ type: Map.get(map, :type), name: Map.get(map, :name), file_name: Map.get(map, :file_name), path: Map.get(map, :path), code: Map.get(map, :code), source: Map.get(map, :source), sourcemap: Map.get(map, :sourcemap), imports: Map.get(map, :imports, []), dynamic_imports: Map.get(map, :dynamic_imports, []), exports: Map.get(map, :exports, []) } end end