https://github.com/AirPowerTeam/AirPower-Transformer
🔥🔥🔥AirPower, 一个基于TypeScript的开发工具包, 内置了数据转换、装饰器、时间日期处理、加解密与散列、文件处理、常用枚举和字典、常见数据结构处理等工具。
https://github.com/AirPowerTeam/AirPower-Transformer
airpower library toolkit typescript
Last synced: 7 months ago
JSON representation
🔥🔥🔥AirPower, 一个基于TypeScript的开发工具包, 内置了数据转换、装饰器、时间日期处理、加解密与散列、文件处理、常用枚举和字典、常见数据结构处理等工具。
- Host: GitHub
- URL: https://github.com/AirPowerTeam/AirPower-Transformer
- Owner: HammCn
- License: mit
- Created: 2024-03-02T10:49:28.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-28T07:26:14.000Z (over 1 year ago)
- Last Synced: 2024-11-07T14:44:50.984Z (about 1 year ago)
- Topics: airpower, library, toolkit, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/airpower
- Size: 131 KB
- Stars: 25
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎉 项目介绍
**AirPower-Transformer** 是一个基于 `TypeScript` 的数据转换器,提供了从 `JSON` 对象到 `类实例` 对象之间互相转换的系列装饰器和方法。
# 💻 如何安装
```shell
npm install @airpower/transformer
# or
yarn add @airpower/transformer
# or
cnpm install @airpower/transformer
# or ...
```
# 📖 使用说明
```ts
import { IgnorePrefix, Prefix, Transformer, Type } from '@airpower/transformer'
@Prefix('role____')
class Role extends Transformer {
id!: number
name!: string
}
@Prefix('user_')
class User extends Transformer {
id!: number
name!: string
@IgnorePrefix()
age!: number
@Type(Role)
role!: Role
@Type(Role, true)
roleList: Role[] = []
}
const user = new User()
user.id = 1
user.name = 'Hamm'
user.age = 18
const role = new Role()
role.name = 'Admin'
user.role = role
const roleItem = new Role()
roleItem.name = 'User'
user.roleList.push(roleItem)
const json = user.copy().toJson()
console.warn('json', JSON.stringify(json))
json.name = '???' // 无效
const user2 = User.fromJson(json)
console.warn('user2', user2)
```
# ⏰ 欢迎反馈
如有疑问,可以通过本仓库的 **Issues** 与我们联系,如果你有一些代码贡献,可以通过 **Pull Request** 将代码贡献,为这个项目添砖加瓦。
如果有更多的需求和建议,欢迎通过本仓库的 `Issues` 提出,也欢迎加入 QQ群 555156313 与我们及时反馈。