Skip to content

Commit

Permalink
binary manipulation
Browse files Browse the repository at this point in the history
  • Loading branch information
shigma committed Apr 27, 2024
1 parent e2852b8 commit c8f8b9c
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 14 deletions.
59 changes: 55 additions & 4 deletions zh-CN/api/utils/misc.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

这一节介绍了其他未被归类的内置工具函数。

## 字符串操作
## 字符串操作 {#string}

### capitalize(source)

Expand Down Expand Up @@ -36,7 +36,7 @@

如果输入的是字符串,则将字符串转换成 snake_case;如果是数组或对象,则递归地将对象中的每个(可枚举)的键转换成 snake_case;其他情况不受影响。

## 集合操作
## 集合操作 {#set}

### contain(array1, array2)

Expand Down Expand Up @@ -70,7 +70,7 @@

求两个集合的并集。

## 对象操作
## 对象操作 {#object}

### is(type, value)

Expand Down Expand Up @@ -133,7 +133,58 @@

将对象的每个键进行过滤,返回新的对象。

## 日期操作
## 二进制数据 {#binary}

### Binary.is(source)

- **source:** `any` 要判断的值
- 返回值: `boolean`

判断一个值是否为 `ArrayBufferLike`

### Binary.isSource(source)

- **source:** `any` 要判断的值
- 返回值: `boolean`

判断一个值是否为 `ArrayBufferLike``ArrayBufferView`

### Binary.fromSource(source)

- **source:** `ArrayBufferLike | ArrayBufferView` 要转换的值
- 返回值: `ArrayBufferLike`

将可能的 `ArrayBufferView` 转换成 `ArrayBuffer`

### Binary.toBase64(source)

- **source:** `ArrayBufferLike` 要转换的值
- 返回值: `string`

将二进制数据转换成 base64 字符串。

### Binary.fromBase64(source)

- **source:** `string` 要转换的值
- 返回值: `ArrayBuffer`

将 base64 字符串转换成二进制数据。

### Binary.toHex(source)

- **source:** `ArrayBufferLike` 要转换的值
- 返回值: `string`

将二进制数据转换成十六进制字符串。

### Binary.fromHex(source)

- **source:** `string` 要转换的值
- 返回值: `ArrayBuffer`

将十六进制字符串转换成二进制数据。

## 时间与日期 {#time}

### 静态属性

Expand Down
12 changes: 2 additions & 10 deletions zh-CN/guide/database/selection.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,7 @@ ctx.database
// 返回的数据包含 foo, bar 两个属性
ctx.database
.join(['foo', 'bar'], (foo, bar) => $.eq(foo.id, bar.id))
.execute()
```

普通的 `.orderBy()``.where()` 方法不支持字段中带有 `.` 符号。因此在使用连接查询时,你需要使用[求值表达式](#求值表达式)

```ts
ctx.database
.join(['foo', 'bar'], (foo, bar) => $.eq(foo.id, bar.id))
.orderBy(row => row.foo.id)
.orderBy('foo.id') // orderBy 可以使用 'a.b' 的形式
.execute()
```

Expand All @@ -160,6 +152,6 @@ ctx.database
// 返回的数据包含 t1, t2 两个属性
ctx.database
.join({ t1: 'foo', t2: 'bar' }, row => $.eq(row.t1.id, row.t2.id))
.orderBy(row => row.t1.id)
.orderBy('t1.id') // orderBy 可以使用 'a.b' 的形式
.execute()
```

0 comments on commit c8f8b9c

Please sign in to comment.