RPC work
This commit is contained in:
34
packages/common/.gitignore
vendored
Normal file
34
packages/common/.gitignore
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
# dependencies (bun install)
|
||||
node_modules
|
||||
|
||||
# output
|
||||
out
|
||||
dist
|
||||
*.tgz
|
||||
|
||||
# code coverage
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# logs
|
||||
logs
|
||||
_.log
|
||||
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
||||
|
||||
# dotenv environment variable files
|
||||
.env
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.env.local
|
||||
|
||||
# caches
|
||||
.eslintcache
|
||||
.cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# IntelliJ based IDEs
|
||||
.idea
|
||||
|
||||
# Finder (MacOS) folder config
|
||||
.DS_Store
|
||||
14
packages/common/package.json
Normal file
14
packages/common/package.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "@website/common",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"exports": {
|
||||
"./config": "./src/config/index.ts",
|
||||
"./webrpc": "./src/webrpc/index.ts",
|
||||
"./*": "./src/*.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@effect/rpc": "^0.69.2",
|
||||
"effect": "^3.17.13"
|
||||
}
|
||||
}
|
||||
4
packages/common/src/config/CommonConfig.ts
Normal file
4
packages/common/src/config/CommonConfig.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import { Config } from "effect"
|
||||
|
||||
|
||||
export const webRpcHttpPath = Config.succeed("/rpc/web" as const)
|
||||
1
packages/common/src/config/index.ts
Normal file
1
packages/common/src/config/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * as CommonConfig from "./CommonConfig"
|
||||
4
packages/common/src/webrpc/WebRpc.ts
Normal file
4
packages/common/src/webrpc/WebRpc.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import * as WebRpcTest from "./WebRpcTest"
|
||||
|
||||
|
||||
export class WebRpc extends WebRpcTest.WebRpcTest {}
|
||||
11
packages/common/src/webrpc/WebRpcTest.ts
Normal file
11
packages/common/src/webrpc/WebRpcTest.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { Rpc, RpcGroup } from "@effect/rpc"
|
||||
import { Schema } from "effect"
|
||||
|
||||
|
||||
export class PingV1 extends Rpc.make("Test.PingV1", {
|
||||
success: Schema.Literal("pong"),
|
||||
}) {}
|
||||
|
||||
export class WebRpcTest extends RpcGroup.make(
|
||||
PingV1,
|
||||
) {}
|
||||
2
packages/common/src/webrpc/index.ts
Normal file
2
packages/common/src/webrpc/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * as WebRpc from "./WebRpc"
|
||||
export * as WebRpcTest from "./WebRpcTest"
|
||||
32
packages/common/tsconfig.json
Normal file
32
packages/common/tsconfig.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
// Environment setup & latest features
|
||||
"lib": ["ESNext"],
|
||||
"target": "ESNext",
|
||||
"module": "ESNext",
|
||||
"moduleDetection": "force",
|
||||
"jsx": "react-jsx",
|
||||
"allowJs": true,
|
||||
|
||||
// Bundler mode
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
"noEmit": true,
|
||||
|
||||
// Best practices
|
||||
"strict": true,
|
||||
"skipLibCheck": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUncheckedIndexedAccess": true,
|
||||
|
||||
// Some stricter flags (disabled by default)
|
||||
"noUnusedLocals": false,
|
||||
"noUnusedParameters": false,
|
||||
"noPropertyAccessFromIndexSignature": false,
|
||||
|
||||
"plugins": [
|
||||
{ "name": "@effect/language-service" }
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user