An open API service indexing awesome lists of open source software.

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的开发工具包, 内置了数据转换、装饰器、时间日期处理、加解密与散列、文件处理、常用枚举和字典、常见数据结构处理等工具。

Awesome Lists containing this project

README

          




Github /
Gitee /
NPM

# 🎉 项目介绍

**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 与我们及时反馈。