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 typesModule- Module with root path, remote service name, and controllersController- Controller with actions and interfacesAction- API endpoint with HTTP method, URL, parameters, and return typeType- 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,ActionType,PropertyDef,TypeDef,TypeWithEnum,InterfaceDefParameterInSignature,ParameterInBodyGenerateProxySchema,ProxyConfig,ProjectTree(virtual file system interface)
Classes:
Service,ServiceOptions,ServiceGeneratorParamsMethod,MethodOptionsSignature,SignatureOptionsBody,BodyOptionsModel,ModelOptionsInterface,InterfaceOptionsProperty,PropertyOptionsImport,ImportOptions
Enums:
eBindingSourceId- Body, Model, Path, QueryeMethodModifier- Public, Private, ProtectedeImportKeyword- Type, Interface
Constants:
PROXY_PATH,PROXY_CONFIG_PATH,PROXY_WARNING_PATH,PROXY_WARNINGSYSTEM_TYPES- Map of .NET to TypeScript typesException- Error message templatesAPI_DEFINITION_ENDPOINTVOLO_REGEX,VOLO_PACKAGES
Utilities:
Omissible<T, K>- Type utility for optional properties