npm.io
0.4.1 • Published yesterday

@nova-lang/schema

Licence
MIT
Version
0.4.1
Deps
0
Size
26 kB
Vulns
0
Weekly
0

@nova-lang/schema

Nova schema library — type definitions, validation helpers, and code generation templates.

Install

npm install @nova-lang/schema

Usage

@use "nova/schema"

Modules

Types (types.nv)

Foundational type definitions — Int8 through Int64, UInt8 through UInt64, Float32/64, String, Char, Bool, Bytes, Date, DateTime, UUID, JSON, Any, Void, Never, Null, Array, Map, Record, Tuple, Union, Intersection, Optional.

Validation (validation.nv)
Function Description
validate-required(value, fieldName) Check value is not empty
validate-min(value, min, fieldName) Check minimum value
validate-max(value, max, fieldName) Check maximum value
validate-range(value, min, max, fieldName) Check value range
validate-length(value, minLen, maxLen, fieldName) Check string/array length
validate-email(value, fieldName) Validate email format
validate-url(value, fieldName) Validate URL format
validate-pattern(value, pattern, fieldName) Match regex pattern
validate-one-of(value, options, fieldName) Check value in options
validate-type(value, expectedType, fieldName) Validate value type
validate-schema(value, schemaName) Validate against schema
API (api.nv)
Function Description
api-endpoint(method, path, desc) Define API endpoint
api-request(body) Define request body
api-response(status, body) Define response
api-section(title) Group endpoints
Code Generation (codegen.nv)
Function Description
codegen-go(schemaName, fields) Generate Go types
codegen-typescript(schemaName, fields) Generate TypeScript types
codegen-python(schemaName, fields) Generate Python types
codegen-rust(schemaName, fields) Generate Rust types
codegen-java(schemaName, fields) Generate Java types
codegen-protobuf(schemaName, fields) Generate Protobuf definitions
codegen-json-schema(schemaName, fields) Generate JSON Schema
Database (db.nv)
Function Description
db-table(name, @body) Define table schema
db-column(name, type, constraints) Define column
db-index(name, table, columns) Define index
db-foreign-key(column, ref-table, ref-column) Define foreign key
db-relation(name, type, from, to) Define relation
db-migration(version, desc, @body) Define migration
db-query(sql, params) Define SQL query
db-seed(table, data) Define seed data
GraphQL (graphql.nv)
Function Description
gql-schema(name, @body) Define GraphQL schema
gql-type(name, kind, @body) Define type/input/interface
gql-field(name, type, args) Define field
gql-input(name, @body) Define input type
gql-enum(name, values) Define enum
gql-union(name, types) Define union
gql-interface(name, @body) Define interface
gql-query(name, @body) Define query
gql-mutation(name, @body) Define mutation
gql-subscription(name, @body) Define subscription
gql-directive(name, locations, args) Define directive
gRPC (grpc.nv)
Function Description
grpc-service(name, @body) Define gRPC service
grpc-rpc(name, input, output, stream) Define RPC method
grpc-message(name, @body) Define message
grpc-field(name, type, tag) Define field
grpc-enum(name, values) Define enum
grpc-oneof(name, @body) Define oneof
grpc-map(name, key-type, value-type) Define map field
grpc-option(name, value) Set protobuf option
grpc-package(name) Set protobuf package
grpc-import(path) Import protobuf file
OpenAPI (openapi.nv)
Function Description
openapi-spec(title, version, @body) Define OpenAPI spec
openapi-path(path, method, @body) Define API path
openapi-parameter(name, type, location, required) Define parameter
openapi-response(status, desc, @body) Define response
openapi-request-body(content-type, @body) Define request body
openapi-schema(name, @body) Define schema
openapi-property(name, type, required) Define property
openapi-tag(name, desc) Define tag
openapi-security(scheme, type) Define security scheme
openapi-server(url, desc) Define server

License

MIT

Keywords