接口
This commit is contained in:
parent
f383d89b70
commit
de14b1e1f0
@ -6,6 +6,7 @@
|
||||
"license": "GPLv3",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"preinstall": "npx -y only-allow pnpm",
|
||||
"build": "cross-env NODE_ENV=production rspack build",
|
||||
"dev": "cross-env NODE_ENV=development rspack",
|
||||
"format": "prettier --write .",
|
||||
|
@ -22,6 +22,9 @@
|
||||
"lint": "eslint .",
|
||||
"test": "vitest run"
|
||||
},
|
||||
"dependencies": {
|
||||
"eventemitter3": "~5.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.12.0",
|
||||
"@rslib/core": "^0.0.16",
|
||||
@ -34,4 +37,4 @@
|
||||
"vitest": "^2.1.4"
|
||||
},
|
||||
"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 { squared } from '../src/index';
|
||||
|
||||
test('squared', () => {
|
||||
expect(squared(2)).toBe(4);
|
||||
expect(squared(12)).toBe(144);
|
||||
expect(4).toBe(4);
|
||||
});
|
||||
|
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