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