pkgs-lib.formats: move mkStructuredType to let-block
This commit is contained in:
+31
-31
@@ -58,6 +58,37 @@ let
|
||||
submodule
|
||||
;
|
||||
|
||||
/*
|
||||
Creates a structured value type suitable for serialization formats.
|
||||
|
||||
Parameters:
|
||||
- typeName: String describing the format (e.g. "JSON", "YAML", "XML")
|
||||
|
||||
Returns a type suitable for structured data formats that supports:
|
||||
- Basic types: boolean, integer, float, string, path
|
||||
- Complex types: attribute sets and lists
|
||||
*/
|
||||
mkStructuredType =
|
||||
{
|
||||
typeName,
|
||||
nullable ? true,
|
||||
}:
|
||||
let
|
||||
baseType = oneOf [
|
||||
bool
|
||||
int
|
||||
float
|
||||
str
|
||||
path
|
||||
(attrsOf valueType)
|
||||
(listOf valueType)
|
||||
];
|
||||
valueType = (if nullable then nullOr baseType else baseType) // {
|
||||
description = "${typeName} value";
|
||||
};
|
||||
in
|
||||
valueType;
|
||||
|
||||
# Attributes added accidentally in https://github.com/NixOS/nixpkgs/pull/335232 (2024-08-18)
|
||||
# Deprecated in https://github.com/NixOS/nixpkgs/pull/415666 (2025-06)
|
||||
allowAliases = pkgs.config.allowAliases or false;
|
||||
@@ -126,37 +157,6 @@ optionalAttrs allowAliases aliases
|
||||
|
||||
php = (import ./formats/php/default.nix { inherit lib pkgs; }).format;
|
||||
|
||||
/*
|
||||
Creates a structured value type suitable for serialization formats.
|
||||
|
||||
Parameters:
|
||||
- typeName: String describing the format (e.g. "JSON", "YAML", "XML")
|
||||
|
||||
Returns a type suitable for structured data formats that supports:
|
||||
- Basic types: boolean, integer, float, string, path
|
||||
- Complex types: attribute sets and lists
|
||||
*/
|
||||
mkStructuredType =
|
||||
{
|
||||
typeName,
|
||||
nullable ? true,
|
||||
}:
|
||||
let
|
||||
baseType = oneOf [
|
||||
bool
|
||||
int
|
||||
float
|
||||
str
|
||||
path
|
||||
(attrsOf valueType)
|
||||
(listOf valueType)
|
||||
];
|
||||
valueType = (if nullable then nullOr baseType else baseType) // {
|
||||
description = "${typeName} value";
|
||||
};
|
||||
in
|
||||
valueType;
|
||||
|
||||
json =
|
||||
{ }:
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user