Skip to content

Commit c13ee1b

Browse files
authored
fix(web): enable allowSyntheticDefaultImports for web ide (#826)
1 parent 06adbd0 commit c13ee1b

File tree

13 files changed

+142
-124
lines changed

13 files changed

+142
-124
lines changed

docs/examples/alipay-pay.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ title: 支付宝支付云函数
77
创建 `aliPay` 云函数,添加依赖 alipay-sdk ,编写以下代码:
88

99
```ts
10-
import cloud from "@/cloud-sdk";
10+
import cloud from "@lafjs/cloud";
1111
import alipay from "alipay-sdk";
1212
const AlipayFormData = require("alipay-sdk/lib/form").default;
1313

docs/examples/send-mail.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ title: 发送邮件
99
创建 `sendmail` 云函数,添加依赖 `nodemailer`,编写以下代码:
1010

1111
```ts
12-
import * as nodemailer from 'nodemailer'
12+
import from 'nodemailer'
1313

1414
// 邮件服务器配置
1515
const transportConfig = {

docs/examples/wechat-pay.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ notify_url 也可以写一个 laf 云函数来接受支付结果的通知。
1414
创建 `wx-pay` 云函数,添加依赖 [wxpay-v3](https://github.com/yangfuhe/node-wxpay),编写以下代码:
1515

1616
```ts
17-
import cloud from "@/cloud-sdk";
17+
import cloud from "@lafjs/cloud";
1818
const Payment = require("wxpay-v3");
1919

2020
exports.main = async function (ctx: any) {
@@ -52,4 +52,4 @@ uI205SwTsTaT70/vF90AwQ==
5252
`;
5353
return key;
5454
}
55-
```
55+
```

docs/guide/db/index.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ title: 云数据库介绍
3434

3535
### 在云函数中访问数据库
3636

37-
云函数需要使用 `@/cloud-sdk` 来获取数据库访问器。
37+
云函数需要使用 `@lafjs/cloud` 来获取数据库访问器。
3838

3939
```js
40-
import cloud from "@/cloud-sdk";
40+
import cloud from "@lafjs/cloud";
4141

4242
// 数据库对象
4343
const db = cloud.database();

docs/guide/function/depend.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ title: 依赖管理
3434

3535
```typescript
3636
import cloud from '@lafjs/cloud'
37-
import * as moment from 'moment'
37+
import moment from 'moment'
3838

3939
export async function main(ctx: FunctionContext) {
4040
const momentVersion = moment.version

docs/guide/function/index.md

+45-51
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ title: 云函数入门
4646

4747
使用浏览器或者 PostMan 等工具访问该地址,即可得到 `hello laf`字符串。
4848
::: warning
49-
暂不能设置云函数url化的path
49+
暂不能设置云函数 url 化的 path
5050
:::
5151

5252
### 通过 SDK 访问云函数
@@ -103,7 +103,7 @@ console.log(ret); // hello laf
103103
| `ctx.response` | HTTP 响应,和`express``Response`实例保持一致 |
104104
| `ctx.socket` | [WebSocket](https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket) 实例 |
105105
| `ctx.files` | 上传的文件 ([File](https://developer.mozilla.org/zh-CN/docs/Web/API/File) 对象数组) |
106-
| `ctx.env` | 自定义的环境变量 ([env](env.md)) |
106+
| `ctx.env` | 自定义的环境变量 ([env](env.md)) |
107107

108108
下面的例子可以读取用户传递的 Query 参数`username`
109109

@@ -194,8 +194,8 @@ ctx.response.status(403); // 发送403状态码
194194
下面的例子使用了 Node.js 内置的包 `crypto`,来对密码进行哈希:
195195

196196
```ts
197-
import cloud from "@/cloud-sdk";
198-
import * as crypto from "crypto";
197+
import cloud from "@lafjs/cloud";
198+
import crypto from "crypto";
199199

200200
exports.main = async function (ctx) {
201201
const { password } = await ctx.body;
@@ -214,8 +214,8 @@ exports.main = async function (ctx) {
214214
在使用 npm 包之前,需要在 _依赖管理_ 处安装对应的包。
215215

216216
```ts
217-
import cloud from "@/cloud-sdk";
218-
import * as dayjs from "dayjs";
217+
import cloud from "@lafjs/cloud";
218+
import dayjs from "dayjs";
219219

220220
exports.main = function () {
221221
return dayjs().format();
@@ -234,18 +234,18 @@ exports.main = function () {
234234

235235
刚刚编写的一些云函数都是比较基础的一些功能,但并没有和 Laf 的其他功能连接起来。
236236

237-
在云函数上,Laf 提供了云 SDK `@/cloud-sdk` 让云函数支持访问网络、数据库、对象存储等。
237+
在云函数上,Laf 提供了云 SDK `@lafjs/cloud` 让云函数支持访问网络、数据库、对象存储等。
238238

239239
::: warning
240-
`@/cloud-sdk` 是一个专有的模块,只能在云函数上使用,不支持通过 npm 安装到其他位置。
240+
`@lafjs/cloud` 是一个专有的模块,只能在云函数上使用,不支持通过 npm 安装到其他位置。
241241
:::
242242

243243
### 导入 SDK
244244

245245
SDK 的所有内容通过它的默认导出来访问。
246246

247247
```js
248-
import cloud from "@/cloud-sdk";
248+
import cloud from "@lafjs/cloud";
249249
```
250250

251251
### 发送网络请求
@@ -255,7 +255,7 @@ import cloud from "@/cloud-sdk";
255255
该接口是对 `axios` 请求库的封装,其调用方法与 `axios` 完全一致。
256256

257257
```ts
258-
import cloud from "@/cloud-sdk";
258+
import cloud from "@lafjs/cloud";
259259

260260
exports.main = async function (ctx) {
261261
const ret = await cloud.fetch({
@@ -279,7 +279,7 @@ exports.main = async function (ctx) {
279279
下面的例子可以获取数据库中的用户信息:
280280

281281
```ts
282-
import cloud from "@/cloud-sdk";
282+
import cloud from "@lafjs/cloud";
283283

284284
exports.main = async function (ctx) {
285285
const { username } = ctx.body;
@@ -299,32 +299,29 @@ exports.main = async function (ctx) {
299299
下方例子演示了创建用户成功后为用户发送邀请邮件(`send_mail`函数需自行实现):
300300

301301
```ts
302-
import cloud from "@/cloud-sdk";
302+
import cloud from "@lafjs/cloud";
303303

304304
// invoke方法模型
305305

306306
exports.main = async function (ctx) {
307-
const { username } = ctx.body;
307+
const { username } = ctx.body;
308308
// 数据库操作
309309
const db = cloud.database();
310310
const ret = await db.collection("users").add({
311-
name: 'jack',
312-
password: '*******'
311+
name: "jack",
312+
password: "*******",
313313
});
314314
if (ret?.ok) {
315-
await cloud.invoke(
316-
'send_mail',
317-
{
318-
...ctx, // 如果函数内部需要使用ctx中的某些属性,可按此方法传入
319-
body: {
320-
title: 'xxx',
321-
content: 'xxx',
322-
date: 'xxx'
323-
}
324-
}
325-
)
315+
await cloud.invoke("send_mail", {
316+
...ctx, // 如果函数内部需要使用ctx中的某些属性,可按此方法传入
317+
body: {
318+
title: "xxx",
319+
content: "xxx",
320+
date: "xxx",
321+
},
322+
});
326323
}
327-
324+
328325
console.log(ret);
329326
return ret.ok;
330327
};
@@ -339,31 +336,28 @@ const { username } = ctx.body;
339336
> 本例仅做`emit`示例使用,业务开发中可直接使用触发器监听`DatabaseChange:users#add`事件实现此功能。[查看详情](trigger.md)
340337
341338
```ts
342-
import cloud from "@/cloud-sdk";
339+
import cloud from "@lafjs/cloud";
343340

344341
// invoke方法模型
345342
// invoke<T>(name: string, ctx: FunctionContext): Promise<T>
346343

347344
exports.main = async function (ctx) {
348-
const { username } = ctx.body;
345+
const { username } = ctx.body;
349346
// 数据库操作
350347
const db = cloud.database();
351348
const ret = await db.collection("users").add({
352-
name: 'jack',
353-
password: '*******'
349+
name: "jack",
350+
password: "*******",
354351
});
355352
if (ret?.ok) {
356-
await cloud.emit(
357-
'user_created',
358-
{
359-
...ctx, // 如果函数内部需要使用ctx中的某些属性,可按此方法传入
360-
body: {
361-
id: ret?.insertId
362-
}
363-
}
364-
)
353+
await cloud.emit("user_created", {
354+
...ctx, // 如果函数内部需要使用ctx中的某些属性,可按此方法传入
355+
body: {
356+
id: ret?.insertId,
357+
},
358+
});
365359
}
366-
360+
367361
console.log(ret);
368362
return ret.ok;
369363
};
@@ -386,7 +380,7 @@ const { username } = ctx.body;
386380
> 注意:出于演示目的,对 password 以明文方式查询,并未做 hash 处理考虑,不建议实际开发过程中如此使用。
387381
388382
```ts
389-
import cloud from "@/cloud-sdk";
383+
import cloud from "@lafjs/cloud";
390384

391385
exports.main = async function (ctx) {
392386
const { username, password } = ctx.body;
@@ -422,24 +416,24 @@ exports.main = async function (ctx) {
422416

423417
::: info
424418
云函数全局内存单例对象,可跨多次调用、不同云函数之间共享数据
425-
`cloud.shared`是JS中标准的Map对象,可参照MDN文档学习使用[Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)
419+
`cloud.shared`是 JS 中标准的 Map 对象,可参照 MDN 文档学习使用[Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)
426420

427421
使用场景:
428422

429423
1. 可将一些全局配置初始化到 shared 中,如微信开发信息、短信发送配置
430424
2. 可共享一些常用方法,如 checkPermission 等,以提升云函数性能
431-
3. 可做热数据的缓存。如:缓存微信access_token。(建议少量使用,此对象是在 node vm 堆中分配,因为 node vm 堆内存限制)
432-
:::
425+
3. 可做热数据的缓存。如:缓存微信 access_token。(建议少量使用,此对象是在 node vm 堆中分配,因为 node vm 堆内存限制)
426+
:::
433427

434428
```ts
435-
import cloud from "@/cloud-sdk";
429+
import cloud from "@lafjs/cloud";
436430

437431
exports.main = async function (ctx) {
438-
await cloud.shared.set(key, val) // 设置一个缓存
439-
await cloud.shared.get(key) // 获取缓存的值
440-
await cloud.shared.has(key) // 判断缓存是否存在
441-
await cloud.shared.delete(key) // 删除缓存
442-
await cloud.shared.clear() // 清空所有缓存
432+
await cloud.shared.set(key, val); // 设置一个缓存
433+
await cloud.shared.get(key); // 获取缓存的值
434+
await cloud.shared.has(key); // 判断缓存是否存在
435+
await cloud.shared.delete(key); // 删除缓存
436+
await cloud.shared.clear(); // 清空所有缓存
443437
// ... 其他方法可访问上方MDN的Map文档查看
444438
};
445439
```

docs/guide/function/websocket.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ title: 云函数处理 WebSocket 长连接
44

55
# {{ $frontmatter.title }}
66

7-
87
## WebSocket 触发器
98

109
提示:在使用 WebSocket 之前一定要建立触发器,详见触发器章节
@@ -35,7 +34,7 @@ exports.main = async function (ctx) {
3534
以下是通过云函数向所有 WebSocket 连接发送消息示例:
3635

3736
```ts
38-
import cloud from "@/cloud-sdk";
37+
import cloud from "@lafjs/cloud";
3938

4039
exports.main = async function (ctx) {
4140
const sockets: Set<WebSocket> = cloud.sockets;
@@ -58,7 +57,7 @@ wss.onopen = (socket) => {
5857
};
5958

6059
wss.onmessage = (res) => {
61-
console.log("收到了新的信息......")
60+
console.log("收到了新的信息......");
6261
console.log(res.data);
6362
};
6463

docs/guide/oss/get-sts.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ title: 生成云存储临时令牌(STS)
99
创建云函数 `get-oss-sts`,添加如下代码:
1010

1111
```ts
12-
import cloud from "@/cloud-sdk";
12+
import cloud from "@lafjs/cloud";
1313
import { STSClient, AssumeRoleCommand } from "@aws-sdk/client-sts";
1414

1515
exports.main = async function (ctx: FunctionContext) {

0 commit comments

Comments
 (0)