Packages

OpenAPI code generation for Gleam — parse specs, generate types, routes, clients, and React Query/SWR hooks

Current section

Files

Jump to
nori src nori@components.erl
Raw

src/nori@components.erl

-module(nori@components).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/nori/components.gleam").
-export([new/0, add_schema/3, add_response/3, add_parameter/3, add_example/3, add_request_body/3, add_header/3, add_security_scheme/3, add_link/3, add_callback/3, add_path_item/3, is_empty/1, schema_ref/1, response_ref/1, parameter_ref/1, example_ref/1, request_body_ref/1, header_ref/1, security_scheme_ref/1, link_ref/1, callback_ref/1, path_item_ref/1]).
-export_type([components/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Components container for OpenAPI specifications.\n"
"\n"
" Holds reusable components that can be referenced from other parts of the spec.\n"
).
-type components() :: {components,
gleam@dict:dict(binary(), nori@schema:schema()),
gleam@dict:dict(binary(), nori@reference:ref(nori@response:response())),
gleam@dict:dict(binary(), nori@reference:ref(nori@parameter:parameter())),
gleam@dict:dict(binary(), nori@reference:ref(nori@parameter:example())),
gleam@dict:dict(binary(), nori@reference:ref(nori@request_body:request_body())),
gleam@dict:dict(binary(), nori@reference:ref(nori@parameter:header())),
gleam@dict:dict(binary(), nori@reference:ref(nori@security:security_scheme())),
gleam@dict:dict(binary(), nori@reference:ref(nori@response:link())),
gleam@dict:dict(binary(), nori@reference:ref(gleam@dict:dict(binary(), nori@reference:ref(nori@operation:path_item())))),
gleam@dict:dict(binary(), nori@reference:ref(nori@operation:path_item())),
gleam@dict:dict(binary(), gleam@json:json())}.
-file("src/nori/components.gleam", 44).
?DOC(" Creates an empty `Components` object.\n").
-spec new() -> components().
new() ->
{components,
maps:new(),
maps:new(),
maps:new(),
maps:new(),
maps:new(),
maps:new(),
maps:new(),
maps:new(),
maps:new(),
maps:new(),
maps:new()}.
-file("src/nori/components.gleam", 61).
?DOC(" Adds a schema to the components.\n").
-spec add_schema(components(), binary(), nori@schema:schema()) -> components().
add_schema(Components, Name, Schema) ->
{components,
gleam@dict:insert(erlang:element(2, Components), Name, Schema),
erlang:element(3, Components),
erlang:element(4, Components),
erlang:element(5, Components),
erlang:element(6, Components),
erlang:element(7, Components),
erlang:element(8, Components),
erlang:element(9, Components),
erlang:element(10, Components),
erlang:element(11, Components),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 73).
?DOC(" Adds a response to the components.\n").
-spec add_response(components(), binary(), nori@response:response()) -> components().
add_response(Components, Name, Response) ->
{components,
erlang:element(2, Components),
gleam@dict:insert(
erlang:element(3, Components),
Name,
{inline, Response}
),
erlang:element(4, Components),
erlang:element(5, Components),
erlang:element(6, Components),
erlang:element(7, Components),
erlang:element(8, Components),
erlang:element(9, Components),
erlang:element(10, Components),
erlang:element(11, Components),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 89).
?DOC(" Adds a parameter to the components.\n").
-spec add_parameter(components(), binary(), nori@parameter:parameter()) -> components().
add_parameter(Components, Name, Parameter) ->
{components,
erlang:element(2, Components),
erlang:element(3, Components),
gleam@dict:insert(
erlang:element(4, Components),
Name,
{inline, Parameter}
),
erlang:element(5, Components),
erlang:element(6, Components),
erlang:element(7, Components),
erlang:element(8, Components),
erlang:element(9, Components),
erlang:element(10, Components),
erlang:element(11, Components),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 105).
?DOC(" Adds an example to the components.\n").
-spec add_example(components(), binary(), nori@parameter:example()) -> components().
add_example(Components, Name, Example) ->
{components,
erlang:element(2, Components),
erlang:element(3, Components),
erlang:element(4, Components),
gleam@dict:insert(
erlang:element(5, Components),
Name,
{inline, Example}
),
erlang:element(6, Components),
erlang:element(7, Components),
erlang:element(8, Components),
erlang:element(9, Components),
erlang:element(10, Components),
erlang:element(11, Components),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 117).
?DOC(" Adds a request body to the components.\n").
-spec add_request_body(components(), binary(), nori@request_body:request_body()) -> components().
add_request_body(Components, Name, Request_body) ->
{components,
erlang:element(2, Components),
erlang:element(3, Components),
erlang:element(4, Components),
erlang:element(5, Components),
gleam@dict:insert(
erlang:element(6, Components),
Name,
{inline, Request_body}
),
erlang:element(7, Components),
erlang:element(8, Components),
erlang:element(9, Components),
erlang:element(10, Components),
erlang:element(11, Components),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 133).
?DOC(" Adds a header to the components.\n").
-spec add_header(components(), binary(), nori@parameter:header()) -> components().
add_header(Components, Name, Header) ->
{components,
erlang:element(2, Components),
erlang:element(3, Components),
erlang:element(4, Components),
erlang:element(5, Components),
erlang:element(6, Components),
gleam@dict:insert(erlang:element(7, Components), Name, {inline, Header}),
erlang:element(8, Components),
erlang:element(9, Components),
erlang:element(10, Components),
erlang:element(11, Components),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 145).
?DOC(" Adds a security scheme to the components.\n").
-spec add_security_scheme(
components(),
binary(),
nori@security:security_scheme()
) -> components().
add_security_scheme(Components, Name, Scheme) ->
{components,
erlang:element(2, Components),
erlang:element(3, Components),
erlang:element(4, Components),
erlang:element(5, Components),
erlang:element(6, Components),
erlang:element(7, Components),
gleam@dict:insert(erlang:element(8, Components), Name, {inline, Scheme}),
erlang:element(9, Components),
erlang:element(10, Components),
erlang:element(11, Components),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 161).
?DOC(" Adds a link to the components.\n").
-spec add_link(components(), binary(), nori@response:link()) -> components().
add_link(Components, Name, Link) ->
{components,
erlang:element(2, Components),
erlang:element(3, Components),
erlang:element(4, Components),
erlang:element(5, Components),
erlang:element(6, Components),
erlang:element(7, Components),
erlang:element(8, Components),
gleam@dict:insert(erlang:element(9, Components), Name, {inline, Link}),
erlang:element(10, Components),
erlang:element(11, Components),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 169).
?DOC(" Adds a callback to the components.\n").
-spec add_callback(
components(),
binary(),
gleam@dict:dict(binary(), nori@reference:ref(nori@operation:path_item()))
) -> components().
add_callback(Components, Name, Callback) ->
{components,
erlang:element(2, Components),
erlang:element(3, Components),
erlang:element(4, Components),
erlang:element(5, Components),
erlang:element(6, Components),
erlang:element(7, Components),
erlang:element(8, Components),
erlang:element(9, Components),
gleam@dict:insert(
erlang:element(10, Components),
Name,
{inline, Callback}
),
erlang:element(11, Components),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 185).
?DOC(" Adds a path item to the components.\n").
-spec add_path_item(components(), binary(), nori@operation:path_item()) -> components().
add_path_item(Components, Name, Path_item) ->
{components,
erlang:element(2, Components),
erlang:element(3, Components),
erlang:element(4, Components),
erlang:element(5, Components),
erlang:element(6, Components),
erlang:element(7, Components),
erlang:element(8, Components),
erlang:element(9, Components),
erlang:element(10, Components),
gleam@dict:insert(
erlang:element(11, Components),
Name,
{inline, Path_item}
),
erlang:element(12, Components)}.
-file("src/nori/components.gleam", 201).
?DOC(" Checks if the components object is empty (all maps are empty).\n").
-spec is_empty(components()) -> boolean().
is_empty(Components) ->
((((((((gleam@dict:is_empty(erlang:element(2, Components)) andalso gleam@dict:is_empty(
erlang:element(3, Components)
))
andalso gleam@dict:is_empty(erlang:element(4, Components)))
andalso gleam@dict:is_empty(erlang:element(5, Components)))
andalso gleam@dict:is_empty(erlang:element(6, Components)))
andalso gleam@dict:is_empty(erlang:element(7, Components)))
andalso gleam@dict:is_empty(erlang:element(8, Components)))
andalso gleam@dict:is_empty(erlang:element(9, Components)))
andalso gleam@dict:is_empty(erlang:element(10, Components)))
andalso gleam@dict:is_empty(erlang:element(11, Components)).
-file("src/nori/components.gleam", 215).
?DOC(" Creates a reference string for a component schema.\n").
-spec schema_ref(binary()) -> binary().
schema_ref(Name) ->
<<"#/components/schemas/"/utf8, Name/binary>>.
-file("src/nori/components.gleam", 220).
?DOC(" Creates a reference string for a component response.\n").
-spec response_ref(binary()) -> binary().
response_ref(Name) ->
<<"#/components/responses/"/utf8, Name/binary>>.
-file("src/nori/components.gleam", 225).
?DOC(" Creates a reference string for a component parameter.\n").
-spec parameter_ref(binary()) -> binary().
parameter_ref(Name) ->
<<"#/components/parameters/"/utf8, Name/binary>>.
-file("src/nori/components.gleam", 230).
?DOC(" Creates a reference string for a component example.\n").
-spec example_ref(binary()) -> binary().
example_ref(Name) ->
<<"#/components/examples/"/utf8, Name/binary>>.
-file("src/nori/components.gleam", 235).
?DOC(" Creates a reference string for a component request body.\n").
-spec request_body_ref(binary()) -> binary().
request_body_ref(Name) ->
<<"#/components/requestBodies/"/utf8, Name/binary>>.
-file("src/nori/components.gleam", 240).
?DOC(" Creates a reference string for a component header.\n").
-spec header_ref(binary()) -> binary().
header_ref(Name) ->
<<"#/components/headers/"/utf8, Name/binary>>.
-file("src/nori/components.gleam", 245).
?DOC(" Creates a reference string for a component security scheme.\n").
-spec security_scheme_ref(binary()) -> binary().
security_scheme_ref(Name) ->
<<"#/components/securitySchemes/"/utf8, Name/binary>>.
-file("src/nori/components.gleam", 250).
?DOC(" Creates a reference string for a component link.\n").
-spec link_ref(binary()) -> binary().
link_ref(Name) ->
<<"#/components/links/"/utf8, Name/binary>>.
-file("src/nori/components.gleam", 255).
?DOC(" Creates a reference string for a component callback.\n").
-spec callback_ref(binary()) -> binary().
callback_ref(Name) ->
<<"#/components/callbacks/"/utf8, Name/binary>>.
-file("src/nori/components.gleam", 260).
?DOC(" Creates a reference string for a component path item.\n").
-spec path_item_ref(binary()) -> binary().
path_item_ref(Name) ->
<<"#/components/pathItems/"/utf8, Name/binary>>.