From b99c28ab4675dba00b6ff80588495a5c3a2f0b32 Mon Sep 17 00:00:00 2001
From: James Berry <69924001+jlalmes@users.noreply.github.com>
Date: Tue, 4 Oct 2022 17:44:41 +0100
Subject: [PATCH] v0.1.0-alpha.4 (#1)
---
.eslintrc.js | 41 +
.github/FUNDING.yml | 1 +
.github/workflows/test.yml | 19 +
.gitignore | 3 +
.npmignore | 5 +
.npmrc | 2 +
.vscode/extensions.json | 7 +
.vscode/settings.json | 18 +
README.md | 94 +-
RELEASE.md | 4 +
assets/trpc-chrome-graph.png | Bin 0 -> 670082 bytes
assets/trpc-chrome-readme.png | Bin 0 -> 340775 bytes
assets/trpc-chrome.svg | 24 +
examples/with-plasmo/.gitignore | 42 +
examples/with-plasmo/README.md | 11 +
examples/with-plasmo/assets/icon.png | Bin 0 -> 15193 bytes
examples/with-plasmo/package.json | 31 +
examples/with-plasmo/popup.tsx | 29 +
examples/with-plasmo/src/background.ts | 15 +
examples/with-plasmo/src/popup.tsx | 43 +
examples/with-plasmo/tsconfig.json | 12 +
jest.config.js | 13 +
package-lock.json | 32064 +++++++++++++++++++++++
package.json | 64 +
prettier.config.js | 15 +
src/adapter/errors.ts | 27 +
src/adapter/index.ts | 198 +
src/link/index.ts | 92 +
src/types.ts | 20 +
test/__setup.ts | 66 +
test/webext.test.ts | 139 +
tsconfig.build.json | 4 +
tsconfig.eslint.json | 5 +
tsconfig.json | 20 +
34 files changed, 33125 insertions(+), 3 deletions(-)
create mode 100644 .eslintrc.js
create mode 100644 .github/FUNDING.yml
create mode 100644 .github/workflows/test.yml
create mode 100644 .gitignore
create mode 100644 .npmignore
create mode 100644 .npmrc
create mode 100644 .vscode/extensions.json
create mode 100644 .vscode/settings.json
create mode 100644 RELEASE.md
create mode 100644 assets/trpc-chrome-graph.png
create mode 100644 assets/trpc-chrome-readme.png
create mode 100644 assets/trpc-chrome.svg
create mode 100644 examples/with-plasmo/.gitignore
create mode 100644 examples/with-plasmo/README.md
create mode 100644 examples/with-plasmo/assets/icon.png
create mode 100644 examples/with-plasmo/package.json
create mode 100644 examples/with-plasmo/popup.tsx
create mode 100644 examples/with-plasmo/src/background.ts
create mode 100644 examples/with-plasmo/src/popup.tsx
create mode 100644 examples/with-plasmo/tsconfig.json
create mode 100644 jest.config.js
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 prettier.config.js
create mode 100644 src/adapter/errors.ts
create mode 100644 src/adapter/index.ts
create mode 100644 src/link/index.ts
create mode 100644 src/types.ts
create mode 100644 test/__setup.ts
create mode 100644 test/webext.test.ts
create mode 100644 tsconfig.build.json
create mode 100644 tsconfig.eslint.json
create mode 100644 tsconfig.json
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..763c6b1
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,41 @@
+// @ts-check
+
+/** @type {import('eslint').Linter.Config} */
+module.exports = {
+ root: true,
+ extends: [
+ 'eslint:recommended',
+ 'plugin:import/recommended',
+ 'plugin:import/typescript',
+ 'plugin:@typescript-eslint/recommended',
+ 'plugin:@typescript-eslint/recommended-requiring-type-checking',
+ 'plugin:promise/recommended',
+ 'plugin:prettier/recommended',
+ ],
+ parser: '@typescript-eslint/parser',
+ parserOptions: {
+ ecmaFeatures: { jsx: false },
+ ecmaVersion: 'latest',
+ sourceType: 'module',
+ project: './tsconfig.eslint.json',
+ tsconfigRootDir: __dirname,
+ },
+ env: {
+ node: true,
+ },
+ rules: {
+ '@typescript-eslint/no-misused-promises': ['error', { checksVoidReturn: false }],
+ '@typescript-eslint/no-unsafe-argument': 'warn',
+ '@typescript-eslint/no-unsafe-assignment': 'warn',
+ '@typescript-eslint/no-unsafe-call': 'warn',
+ '@typescript-eslint/no-unsafe-member-access': 'warn',
+ '@typescript-eslint/no-unsafe-return': 'warn',
+ '@typescript-eslint/unbound-method': 'off',
+ },
+ overrides: [
+ {
+ files: ['*.js', '*.jsx', '*.mjs', '*.cjs'],
+ rules: {},
+ },
+ ],
+};
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..b3d9b71
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+github: jlalmes
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..f4d7ae7
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,19 @@
+name: Test
+on: [push]
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repo
+ uses: actions/checkout@v2
+
+ - name: Setup node
+ uses: actions/setup-node@v3
+ with:
+ node-version: 16
+
+ - name: Install dependencies
+ run: npm ci
+
+ - name: Run tests
+ run: npm test
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6acc570
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+node_modules
+dist
+.DS_Store
\ No newline at end of file
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..2ca7a33
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,5 @@
+*
+!dist/**/*
+!package.json
+!package-lock.json
+!LICENSE
\ No newline at end of file
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..40fd242
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1,2 @@
+sign-git-tag=false
+message="trpc-chrome v%s"
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..c8a824a
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,7 @@
+{
+ "recommendations": [
+ "dbaeumer.vscode-eslint",
+ "esbenp.prettier-vscode",
+ "yzhang.markdown-all-in-one",
+ ]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..0d4c01f
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,18 @@
+{
+ "typescript.tsdk": "node_modules/typescript/lib",
+ "editor.tabSize": 2,
+ "editor.formatOnSave": true,
+ "editor.codeActionsOnSave": {
+ "source.fixAll.eslint": true
+ },
+ "workbench.colorCustomizations": {
+ "titleBar.activeBackground": "#1a73e8",
+ "titleBar.inactiveBackground": "#5a98e9"
+ },
+ "[javascript]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[jsonc]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ }
+}
diff --git a/README.md b/README.md
index 063eb44..c16d71c 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,103 @@
-# trpc-chrome
+![trpc-chrome](assets/trpc-chrome-readme.png)
-### **[Chrome Extension](https://developer.chrome.com/docs/extensions/mv3/) adapter for [tRPC](https://trpc.io/)** 🧩
+
+
trpc-chrome
+
+
+
+
+
+
+
+## **[Chrome extension](https://developer.chrome.com/docs/extensions/mv3/) support for [tRPC](https://trpc.io/)** 🧩
- Easy communication for web extensions.
- Typesafe messaging between content & background scripts.
- Ready for Manifest V3.
+### Roadmap 🚘
+
+- Reconnect on background script reload. (maybe?)
+- Add example with client(content) & handler(background).
+- Add example with vice-versa handler(content) & client(background).
+
+## Usage
+
+**1. Install `trpc-chrome`.**
+
+```bash
+# npm
+npm install trpc-chrome
+# yarn
+yarn add trpc-chrome
+```
+
+**2. Add a `chromeLink` to the client in your content script.**
+
+```typescript
+// content.ts
+import { createTRPCClient } from '@trpc/client';
+import { chromeLink } from 'trpc-chrome';
+
+import type { AppRouter } from './appRouter';
+
+const port = chrome.runtime.connect(chrome.runtime.id);
+
+export const chromeClient = createTRPCClient({
+ links: [/* 👉 */ chromeLink({ port })],
+});
+```
+
+**3. Add `createChromeHandler` in your background script.**
+
+```typescript
+// background.ts
+import { createChromeHandler } from 'trpc-chrome';
+
+import { appRouter } from './appRouter';
+
+createChromeHandler({ router: appRouter /* 👈 */ });
+```
+
+## Requirements
+
+Peer dependencies:
+
+- [`tRPC`](https://github.com/trpc/trpc) Server v10 (`@trpc/server@next`) must be installed.
+- [`tRPC`](https://github.com/trpc/trpc) Server v10 (`@trpc/server@next`) must be installed.
+
+## Example
+
+Please see [full example here](examples/with-plasmo).
+
+_For advanced use-cases, please find examples in our [complete test suite](test)._
+
+## Types
+
+#### ChromeLinkOptions
+
+Please see [full typings here](src/link.ts).
+
+| Property | Type | Description | Required |
+| -------- | --------------------- | ---------------------------------------------------------------- | -------- |
+| `port` | `chrome.runtime.Port` | An open web extension port between content & background scripts. | `true` |
+
+#### CreateChromeHandlerOptions
+
+Please see [full typings here](src/handler.ts).
+
+| Property | Type | Description | Required |
+| --------------- | ---------- | ------------------------------------------------------ | -------- |
+| `router` | `Router` | Your application tRPC router. | `true` |
+| `createContext` | `Function` | Passes contextual (`ctx`) data to procedure resolvers. | `false` |
+| `onError` | `Function` | Called if error occurs inside handler. | `false` |
+
+---
+
## License
Distributed under the MIT License. See LICENSE for more information.
## Contact
-James Berry - Follow me on Twitter [@jlalmes](https://twitter.com/jlalmes) 💚
+James Berry - Follow me on Twitter [@jlalmes](https://twitter.com/jlalmes) 💙
diff --git a/RELEASE.md b/RELEASE.md
new file mode 100644
index 0000000..3fab6a7
--- /dev/null
+++ b/RELEASE.md
@@ -0,0 +1,4 @@
+npm run test
+npm version {{version}}
+npm run build
+npm publish {{--tag alpha}}
diff --git a/assets/trpc-chrome-graph.png b/assets/trpc-chrome-graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..18cda6de7574b0237df1e4a2e74498e07a2778f4
GIT binary patch
literal 670082
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