Skip to content

Commit 47e29ea

Browse files
committed
feat(utils): add image download & lint
1 parent 43be5f4 commit 47e29ea

File tree

11 files changed

+1544
-1249
lines changed

11 files changed

+1544
-1249
lines changed

Diff for: package.json

+8-7
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@
2222
"typecheck": "tsc --noEmit"
2323
},
2424
"devDependencies": {
25-
"@antfu/eslint-config": "^0.34.0",
26-
"@types/node": "^18.11.18",
25+
"@antfu/eslint-config": "^0.38.2",
26+
"@types/html2canvas": "^1.0.0",
27+
"@types/node": "^18.15.11",
2728
"@yunlefun/vueuse": "workspace:*",
28-
"bumpp": "^8.2.1",
29-
"eslint": "^8.31.0",
29+
"bumpp": "^9.1.0",
30+
"eslint": "^8.37.0",
3031
"typescript": "^4.8.3",
31-
"unbuild": "^1.0.2",
32-
"vite": "^4.0.4",
33-
"vitest": "^0.26.3"
32+
"unbuild": "^1.2.0",
33+
"vite": "^4.2.1",
34+
"vitest": "^0.29.8"
3435
}
3536
}

Diff for: packages/utils/build.config.ts

+3
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@ export default defineBuildConfig({
99
rollup: {
1010
emitCJS: true,
1111
},
12+
externals: [
13+
'html2canvas',
14+
],
1215
})

Diff for: packages/utils/package.json

+3
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,8 @@
5050
"release": "bumpp && npm publish",
5151
"test": "vitest",
5252
"typecheck": "tsc --noEmit"
53+
},
54+
"peerDependencies": {
55+
"html2canvas": "*"
5356
}
5457
}

Diff for: packages/utils/src/image/html2canvas.ts

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import html2canvas from 'html2canvas'
2+
3+
/**
4+
* screenshot to base64
5+
* @param container
6+
* @returns
7+
*/
8+
export async function screenShotToBase64(containerEl: HTMLElement): Promise<string | void> {
9+
return new Promise((resolve) => {
10+
html2canvas(containerEl, {
11+
height: containerEl.clientHeight - 2,
12+
useCORS: true,
13+
}).then((canvas) => {
14+
const base64 = canvas.toDataURL()
15+
resolve(base64)
16+
}).catch(() => {
17+
resolve()
18+
})
19+
})
20+
}

Diff for: packages/utils/src/image/index.ts

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
export * from './html2canvas'
2+
3+
export function getImagesOptions(images: Record<string, string>) {
4+
return Object.entries(images).map(([_key, image]) => ({ src: image }))
5+
}
6+
7+
/**
8+
* 将 DataUrl 下载为图片
9+
* @param dataUrl
10+
*/
11+
export function downloadDataUrlAsImage(dataUrl: string, filename: string) {
12+
const link = document.createElement('a')
13+
link.href = dataUrl
14+
link.download = filename
15+
link.click()
16+
}

Diff for: packages/utils/src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export * from './types'
22
export * from './wx'
3+
export * from './image'

Diff for: packages/utils/src/wx/helpers.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
* 是否在微信浏览器环境
33
* @returns
44
*/
5-
export const isInWxBrowser = () => {
5+
export function isInWxBrowser() {
66
return /MicroMessenger/.test(navigator.userAgent)
77
}

Diff for: packages/utils/src/wx/jsApi/share.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export interface RegisterWxShareOptions extends WxShareInfo {
3535
* @param options
3636
* @returns
3737
*/
38-
export const registerWxShare = (shareOptions: RegisterWxShareOptions) => {
38+
export function registerWxShare(shareOptions: RegisterWxShareOptions) {
3939
const wx = window.wx
4040

4141
// 需在用户可能点击分享按钮前就先调用

Diff for: packages/utils/src/wx/register.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export interface WxInitOptions {
1313
* @param options
1414
* @returns
1515
*/
16-
export const createWx = (options: WxInitOptions) => {
16+
export function createWx(options: WxInitOptions) {
1717
if (!isClient)
1818
return
1919

Diff for: packages/vueuse/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
"@yunlefun/utils": "workspace:*"
6060
},
6161
"devDependencies": {
62-
"@vueuse/core": "^9.10.0",
63-
"vue": "^3.2.45"
62+
"@vueuse/core": "^9.13.0",
63+
"vue": "^3.2.47"
6464
}
6565
}

0 commit comments

Comments
 (0)