diff --git a/package.json b/package.json index c2a1858..2945215 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "workspaces": [ - "apps/*" + "apps/*", + "packages/*" ], "resolutions": { "react-native": "patch:react-native@npm%3A0.81.4#~/.yarn/patches/react-native+0.81.4.patch", diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 0000000..fb9fe3e --- /dev/null +++ b/packages/shared/package.json @@ -0,0 +1,14 @@ +{ + "name": "@solelog/shared", + "version": "0.0.0", + "private": true, + "type": "module", + "main": "./src/index.ts", + "types": "./src/index.ts", + "exports": { + ".": "./src/index.ts" + }, + "dependencies": { + "zod": "^3.23.8" + } +} diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts new file mode 100644 index 0000000..55bd6b0 --- /dev/null +++ b/packages/shared/src/index.ts @@ -0,0 +1,18 @@ +import { z } from 'zod'; + +export const HealthResponse = z.object({ + status: z.literal('ok'), +}); +export type HealthResponse = z.infer; + +export const PublicUser = z.object({ + id: z.string(), + email: z.string().email(), + name: z.string(), +}); +export type PublicUser = z.infer; + +export const MeResponse = z.object({ + user: PublicUser, +}); +export type MeResponse = z.infer; diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json new file mode 100644 index 0000000..09611fd --- /dev/null +++ b/packages/shared/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "declaration": true, + "skipLibCheck": true, + "esModuleInterop": true, + "verbatimModuleSyntax": true + }, + "include": ["src"] +} diff --git a/yarn.lock b/yarn.lock index 61c3316..7fabe47 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6933,6 +6933,14 @@ __metadata: languageName: node linkType: hard +"@solelog/shared@workspace:packages/shared": + version: 0.0.0-use.local + resolution: "@solelog/shared@workspace:packages/shared" + dependencies: + zod: "npm:^3.23.8" + languageName: unknown + linkType: soft + "@standard-schema/spec@npm:^1.0.0, @standard-schema/spec@npm:^1.1.0": version: 1.1.0 resolution: "@standard-schema/spec@npm:1.1.0" @@ -20643,7 +20651,7 @@ __metadata: languageName: node linkType: hard -"zod@npm:^3.25.76": +"zod@npm:^3.23.8, zod@npm:^3.25.76": version: 3.25.76 resolution: "zod@npm:3.25.76" checksum: 10c0/5718ec35e3c40b600316c5b4c5e4976f7fee68151bc8f8d90ec18a469be9571f072e1bbaace10f1e85cf8892ea12d90821b200e980ab46916a6166a4260a983c