接口
This commit is contained in:
parent
f383d89b70
commit
de14b1e1f0
@ -6,6 +6,7 @@
|
|||||||
"license": "GPLv3",
|
"license": "GPLv3",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"preinstall": "npx -y only-allow pnpm",
|
||||||
"build": "cross-env NODE_ENV=production rspack build",
|
"build": "cross-env NODE_ENV=production rspack build",
|
||||||
"dev": "cross-env NODE_ENV=development rspack",
|
"dev": "cross-env NODE_ENV=development rspack",
|
||||||
"format": "prettier --write .",
|
"format": "prettier --write .",
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
"test": "vitest run"
|
"test": "vitest run"
|
||||||
},
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"eventemitter3": "~5.0.1"
|
||||||
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.12.0",
|
"@eslint/js": "^9.12.0",
|
||||||
"@rslib/core": "^0.0.16",
|
"@rslib/core": "^0.0.16",
|
||||||
@ -34,4 +37,4 @@
|
|||||||
"vitest": "^2.1.4"
|
"vitest": "^2.1.4"
|
||||||
},
|
},
|
||||||
"private": true
|
"private": true
|
||||||
}
|
}
|
0
packages/messages/src/client.ts
Normal file
0
packages/messages/src/client.ts
Normal file
@ -1 +1,3 @@
|
|||||||
export const squared = (n: number): number => n * n;
|
|
||||||
|
|
||||||
|
|
||||||
|
37
packages/messages/src/server.ts
Normal file
37
packages/messages/src/server.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import EventEmitter from 'eventemitter3';
|
||||||
|
|
||||||
|
export class Server {
|
||||||
|
private EE: EventEmitter;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
this.EE = new EventEmitter();
|
||||||
|
}
|
||||||
|
|
||||||
|
onConnect(callback: (con: Connect) => void) {
|
||||||
|
this.EE.on('connect', callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Connect {
|
||||||
|
postMessage: (message: unknown) => void;
|
||||||
|
onMessage: (callback: (message: unknown) => void) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class ChromeServer {
|
||||||
|
|
||||||
|
private EE: EventEmitter;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
chrome.runtime.onConnect.addListener((port) => {
|
||||||
|
this.EE.emit('connect', {
|
||||||
|
postMessage: (message: unknown) => port.postMessage(message),
|
||||||
|
onMessage: (callback: (message: unknown) => void) =>
|
||||||
|
port.onMessage.addListener(callback),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onConnect(callback: (con: Connect) => void) {
|
||||||
|
this.EE.on('connect', callback);
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,5 @@
|
|||||||
import { expect, test } from 'vitest';
|
import { expect, test } from 'vitest';
|
||||||
import { squared } from '../src/index';
|
|
||||||
|
|
||||||
test('squared', () => {
|
test('squared', () => {
|
||||||
expect(squared(2)).toBe(4);
|
expect(4).toBe(4);
|
||||||
expect(squared(12)).toBe(144);
|
|
||||||
});
|
});
|
||||||
|
912
pnpm-lock.yaml
generated
912
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
2
pnpm-workspace.yaml
Normal file
2
pnpm-workspace.yaml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
packages:
|
||||||
|
- "packages/*"
|
Loading…
x
Reference in New Issue
Block a user