- Notifications
You must be signed in to change notification settings - Fork64
Cell is a Serverless First, componentized, platform-independent progressive application framework based on TypeScript. Cell 是基于 TypeScript 的 Serverless First、组件化、平台无关的渐进式应用框架。
License
NotificationsYou must be signed in to change notification settings
cellbang/cell
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
English |简体中文
Cell is aServerless First,Component-based, andPlatform-independent progressive application framework based on TypeScript.
- Zero Configuration: Out of the box, reduces configuration complexity.
- Based on TypeScript: Provides strong type support, enhancing development efficiency.
- AI Support: Provides AI basic abstraction and multi-vendor model service interface adaptation.
- Serverless First: Optimizes Serverless application development.
- Cross-Platform: Platform agnostic, flexible deployment.
- Full-Stack Support: Front and back-end integration, compatible with various front-end frameworks.
- Microservices Architecture: Supports building and managing microservices.
- Component-based: Modular design, easy to extend and maintain.
- Plugin-based Tools: Command line tools support plugins, enhancing functionality.
- Dependency Injection: Simplifies dependency management between components.
- Aspect-Oriented Programming (AOP): Implements modularization of cross-cutting concerns.
- Integrated ORM: Uses decorators for transaction management, simplifying database operations.
- Authentication and Authorization: Supports OIDC authentication and OAuth2 authorization.
- State Management: Uses rxjs for managing application state.
- Multiple Interface Styles: Supports both REST and RPC interfaces.
# Install command line toolnpm install -g @celljs/cli# Initialize projectcell init -o project-namecd project-name# Enter project root directory# Run projectcell serve# Deploy projectcell deploy -m scf# Deploy to Tencent Cloud Functions (SCF)cell deploy -mfc# Deploy to Alibaba Cloud Function Compute (FC)cell deploy -m lambda# Deploy to AWS Lambda
- Introduction
- Create the first application
- Command line tools
- Controller
- Database operations
- Microservice
- Authentication and authorization
- Cloud Platform Adaptation
- Dependency injection
- Component design
- Front-end architecture
- React development
- Front and back-end integrated development
// Class object injection@Component()exportclassA{}@Component()exportclassB{ @Autowired()protecteda:A;}// Configuration property injection@Component()exportclassC{ @Value('foo')// Support EL expression syntax, such as @Value('obj.xxx'), @Value('arr[1]') etc.protectedfoo:string;}
import{Controller,Get,Param,Delete,Put,Post,Body}from'@celljs/mvc/lib/node';import{Transactional,OrmContext}from'@celljs/typeorm/lib/node';import{User}from'./entity';@Controller('users')exportclassUserController{ @Get() @Transactional({readOnly:true})list():Promise<User[]>{constrepo=OrmContext.getRepository(User);returnrepo.find();} @Get(':id') @Transactional({readOnly:true})get(@Param('id')id:number):Promise<User|undefined>{constrepo=OrmContext.getRepository(User);returnrepo.findOne(id);} @Delete(':id') @Transactional()asyncremove(@Param('id')id:number):Promise<void>{constrepo=OrmContext.getRepository(User);awaitrepo.delete(id);} @Put() @Transactional()asyncmodify(@Body()user:User):Promise<void>{constrepo=OrmContext.getRepository(User);awaitrepo.update(user.id,user);} @Post() @Transactional()create(@Body()user:User):Promise<User>{constrepo=OrmContext.getRepository(User);returnrepo.save(user);}}
About
Cell is a Serverless First, componentized, platform-independent progressive application framework based on TypeScript. Cell 是基于 TypeScript 的 Serverless First、组件化、平台无关的渐进式应用框架。