Current section

Files

Jump to
Raw

mix.exs

defmodule LatticeStripe.MixProject do
use Mix.Project
@version "0.2.0"
@source_url "https://github.com/szTheory/lattice_stripe"
def project do
[
app: :lattice_stripe,
version: @version,
elixir: "~> 1.15",
start_permanent: Mix.env() == :prod,
elixirc_paths: elixirc_paths(Mix.env()),
deps: deps(),
name: "LatticeStripe",
description: "A production-grade, idiomatic Elixir SDK for the Stripe API",
source_url: @source_url,
docs: [
main: "getting-started",
source_url: @source_url,
source_ref: "v#{@version}",
# logo: "assets/logo.png", # Add when logo asset is created
extras: [
"guides/getting-started.md",
"guides/client-configuration.md",
"guides/payments.md",
"guides/checkout.md",
"guides/webhooks.md",
"guides/error-handling.md",
"guides/testing.md",
"guides/telemetry.md",
"guides/extending-lattice-stripe.md",
"guides/cheatsheet.cheatmd",
"CHANGELOG.md"
],
groups_for_extras: [
Guides: Path.wildcard("guides/*.{md,cheatmd}"),
Changelog: ["CHANGELOG.md"]
],
groups_for_modules: [
Core: [
LatticeStripe,
LatticeStripe.Client,
LatticeStripe.Config,
LatticeStripe.Error,
LatticeStripe.Response,
LatticeStripe.List
],
Payments: [
LatticeStripe.PaymentIntent,
LatticeStripe.Customer,
LatticeStripe.PaymentMethod,
LatticeStripe.SetupIntent,
LatticeStripe.Refund
],
Checkout: [
LatticeStripe.Checkout.Session,
LatticeStripe.Checkout.LineItem
],
Webhooks: [
LatticeStripe.Webhook,
LatticeStripe.Webhook.Plug,
LatticeStripe.Event
],
"Telemetry & Testing": [
LatticeStripe.Telemetry,
LatticeStripe.Testing
],
Internals: [
LatticeStripe.Transport,
LatticeStripe.Transport.Finch,
LatticeStripe.Json,
LatticeStripe.Json.Jason,
LatticeStripe.RetryStrategy,
LatticeStripe.RetryStrategy.Default,
LatticeStripe.FormEncoder,
LatticeStripe.Request,
LatticeStripe.Resource
]
]
],
package: package(),
aliases: aliases()
]
end
def application do
[
extra_applications: [:logger]
]
end
def cli do
[preferred_envs: [ci: :test]]
end
defp deps do
[
# Runtime dependencies
{:finch, "~> 0.19"},
{:jason, "~> 1.4"},
{:telemetry, "~> 1.0"},
{:nimble_options, "~> 1.0"},
{:plug_crypto, "~> 2.0"},
{:plug, "~> 1.16", optional: true},
# Dev/test dependencies
{:mox, "~> 1.2", only: :test},
{:ex_doc, "~> 0.34", only: [:dev, :test], runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:mix_audit, "~> 2.1", only: [:dev, :test], runtime: false}
]
end
defp package do
[
name: "lattice_stripe",
description: "A production-grade, idiomatic Elixir SDK for the Stripe API",
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md",
"HexDocs" => "https://hexdocs.pm/lattice_stripe"
},
files: ["lib", "mix.exs", "README.md", "CHANGELOG.md", "LICENSE"]
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
defp aliases do
[
ci: [
"format --check-formatted",
"compile --warnings-as-errors",
"credo --strict",
"test",
"docs --warnings-as-errors"
]
]
end
end