Skip to main content
Version: 3.1.0

Release Notes

v3.1.0 (Initial Release)

February 2026

Initial release of the schematics package, providing types and utilities for code generation in ABP React applications.

Features

API Definition Types

Types for parsing ABP's API definition structure:

import type {
ApiDefinition,
Module,
Controller,
Action,
Type,
PropertyDef,
ParameterInSignature,
ParameterInBody,
TypeDef,
TypeWithEnum,
InterfaceDef,
} from '@abpjs/schematics';
  • ApiDefinition - Root structure with modules and types
  • Module - Module with root path, remote service name, and controllers
  • Controller - Controller with actions and interfaces
  • Action - API endpoint with HTTP method, URL, parameters, and return type
  • Type - Type definition including enums, base types, and properties

Code Generation Models

Classes for representing generated code:

import {
Service,
Method,
Signature,
Body,
Model,
Interface,
Property,
Import,
} from '@abpjs/schematics';

// Create a service with methods
const service = new Service({
name: 'ProductService',
namespace: 'MyApp.Products',
apiName: 'default',
});

// Create an interface model
const model = new Model({
namespace: 'MyApp.Products',
path: '/proxy/products',
});

const productInterface = new Interface({
identifier: 'ProductDto',
namespace: 'MyApp.Products',
ref: 'MyApp.Products.ProductDto',
base: null,
});

Enums

Enums for code generation:

import {
eBindingSourceId,
eMethodModifier,
eImportKeyword,
} from '@abpjs/schematics';

// Parameter binding sources
eBindingSourceId.Body // Request body
eBindingSourceId.Path // URL path parameter
eBindingSourceId.Query // Query string parameter
eBindingSourceId.Model // Model binding

// Method modifiers
eMethodModifier.Public
eMethodModifier.Private
eMethodModifier.Protected

// Import keywords
eImportKeyword.Type
eImportKeyword.Interface

Constants

Pre-defined constants for proxy generation:

import {
PROXY_PATH,
PROXY_CONFIG_PATH,
PROXY_WARNING_PATH,
PROXY_WARNING,
SYSTEM_TYPES,
Exception,
API_DEFINITION_ENDPOINT,
VOLO_REGEX,
VOLO_PACKAGES,
} from '@abpjs/schematics';

// Paths
PROXY_PATH // '/proxy'
PROXY_CONFIG_PATH // '/proxy/generate-proxy.json'
PROXY_WARNING_PATH // '/proxy/README.md'

// .NET to TypeScript type mapping
SYSTEM_TYPES.get('Int32'); // 'number'
SYSTEM_TYPES.get('String'); // 'string'
SYSTEM_TYPES.get('Guid'); // 'string'
SYSTEM_TYPES.get('Bool'); // 'boolean'
SYSTEM_TYPES.get('DateTime'); // 'string'

Configuration Schema

Schema for proxy generation configuration:

import type { GenerateProxySchema, ProxyConfig, Project } from '@abpjs/schematics';

const schema: GenerateProxySchema = {
module: 'MyModule',
'api-name': 'default',
source: 'my-app',
target: 'my-app',
};

Exception Messages

Standardized error messages with placeholders:

import { Exception } from '@abpjs/schematics';

Exception.InvalidModule // '[Invalid Module] Backend module "{0}" does not exist...'
Exception.NoApi // '[API Not Available] Please double-check the URL...'
Exception.NoProject // '[Project Not Found] Either define a default project...'
Exception.FileNotFound // '[File Not Found] There is no file at "{0}" path.'
Exception.InvalidWorkspace // '[Invalid Workspace] The angular.json should be...'

New Exports

Types:

  • ApiDefinition, Module, Controller, Action
  • Type, PropertyDef, TypeDef, TypeWithEnum, InterfaceDef
  • ParameterInSignature, ParameterInBody
  • GenerateProxySchema, ProxyConfig, Project
  • Tree (virtual file system interface)

Classes:

  • Service, ServiceOptions, ServiceGeneratorParams
  • Method, MethodOptions
  • Signature, SignatureOptions
  • Body, BodyOptions
  • Model, ModelOptions
  • Interface, InterfaceOptions
  • Property, PropertyOptions
  • Import, ImportOptions

Enums:

  • eBindingSourceId - Body, Model, Path, Query
  • eMethodModifier - Public, Private, Protected
  • eImportKeyword - Type, Interface

Constants:

  • PROXY_PATH, PROXY_CONFIG_PATH, PROXY_WARNING_PATH, PROXY_WARNING
  • SYSTEM_TYPES - Map of .NET to TypeScript types
  • Exception - Error message templates
  • API_DEFINITION_ENDPOINT
  • VOLO_REGEX, VOLO_PACKAGES

Utilities:

  • Omissible<T, K> - Type utility for optional properties