Skip to content

Commit 83ce22e

Browse files
committed
feat: rewrite api, new type exports
1 parent c287a01 commit 83ce22e

34 files changed

+165
-182
lines changed

examples/with-fastify/src/api/users/users.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export function userController(
3434
{ schema: userBodySchema },
3535
async (request, reply) => {
3636
const { username, age } = request.body
37-
const newUser = service.addUser(username, age)
37+
const newUser = await service.addUser(username, age)
3838
if (!newUser) return reply.status(400).send('Username exist')
3939
return newUser
4040
}

examples/with-fastify/src/api/users/users.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { User, Users } from '../../dto/users.dto.js'
2-
import type { Steno } from '@stenodb/fastify'
2+
import type { AsyncProvider } from '@stenodb/fastify'
33
import type { FastifyInstance } from 'fastify'
44

55
export class UserService {
6-
#users: Steno.NodeProvider<Users>
6+
#users: AsyncProvider<Users>
77

88
constructor(private readonly fastify: FastifyInstance) {
99
this.#users = this.fastify.steno.get<Users>('users')!

examples/with-fastify/src/dto/users.dto.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Exclude, Type } from 'class-transformer'
2-
import { IsNumber, IsString, Length } from 'class-validator'
2+
import { IsNumber, IsOptional, IsString, Length } from 'class-validator'
33
import { Post } from './posts.dto.js'
44

55
export class Users {
@@ -13,6 +13,7 @@ export class Users {
1313

1414
export class User {
1515
@Exclude({ toPlainOnly: true })
16+
@IsOptional()
1617
@IsNumber()
1718
userId: number
1819

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { BrowserStorage } from './WebStorage.js'
2-
import type { Steno } from '../types.js'
2+
import type { ClassEntity } from '@stenodb/utils'
33

44
export class LocalStorage<T> extends BrowserStorage<T> {
5-
constructor(name: string, entity: Steno.Entity<T>, initialData?: T) {
5+
constructor(name: string, entity: ClassEntity<T>, initialData?: T) {
66
super(name, localStorage, entity, initialData)
77
}
88
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { BrowserStorage } from './WebStorage.js'
2-
import type { Steno } from '../types.js'
2+
import type { ClassEntity } from '@stenodb/utils'
33

44
export class SessionStorage<T> extends BrowserStorage<T> {
5-
constructor(name: string, entity: Steno.Entity<T>, initialData?: T) {
5+
constructor(name: string, entity: ClassEntity<T>, initialData?: T) {
66
super(name, sessionStorage, entity, initialData)
77
}
88
}

packages/browser/src/adapter/WebStorage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { dataTransformer, entityTransformer } from '@stenodb/utils'
2-
import type { Steno } from '../types.js'
32
import type { BaseLogger } from '@stenodb/logger'
3+
import type { ClassEntity } from '@stenodb/utils'
44
import type { DataTransformer, EntityTransformer } from '@stenodb/utils'
55

66
export class BrowserStorage<T> {
@@ -17,7 +17,7 @@ export class BrowserStorage<T> {
1717
constructor(
1818
name: string,
1919
storage: Storage,
20-
entity: Steno.Entity<T>,
20+
entity: ClassEntity<T>,
2121
initialData?: T
2222
) {
2323
this.name = name

packages/browser/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export * from './adapter/LocalStorage.js'
22
export * from './adapter/SessionStorage.js'
33
export * from './provider/BrowserProvider.js'
4+
export * from './provider/StorageProvider.js'
45
export * from './types.js'

packages/browser/src/provider/BrowserProvider.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
import { StorageProvider } from './StorageProvider.js'
2-
import type { Steno } from '../types.js'
2+
import type { BrowserProviderOptions, BrowserStorageAdapter } from '../types.js'
33

44
export class BrowserProvider {
5-
#options: Steno.BrowserProviderOptions
5+
#options: BrowserProviderOptions
66

7-
constructor(options: Steno.BrowserProviderOptions = {}) {
7+
constructor(options: BrowserProviderOptions = {}) {
88
this.#options = options
99
}
1010

11-
private registerAdapterModules<T>(adapter: Steno.BrowserAdapter<T>) {
11+
private registerAdapterModules<T>(adapter: BrowserStorageAdapter<T>): void {
1212
if (!this.#options?.logger) return
1313
const logger = this.#options.logger(adapter.name)
1414
adapter.registerLogger(logger)
1515
}
1616

17-
create<T>(adapter: Steno.BrowserAdapter<T>): StorageProvider<T> {
17+
create<T>(adapter: BrowserStorageAdapter<T>): StorageProvider<T> {
1818
this.registerAdapterModules(adapter)
1919
return new StorageProvider(adapter)
2020
}

packages/browser/src/provider/StorageProvider.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import type { Steno } from '../types.js'
1+
import type { BrowserStorageAdapter } from '../types.js'
22

33
export class StorageProvider<T> {
4-
#adapter: Steno.BrowserAdapter<T>
4+
#adapter: BrowserStorageAdapter<T>
55

6-
constructor(adapter: Steno.BrowserAdapter<T>) {
6+
constructor(adapter: BrowserStorageAdapter<T>) {
77
this.#adapter = adapter
88
}
99

packages/browser/src/types.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
import type { LocalStorage } from './adapter/LocalStorage.js'
22
import type { SessionStorage } from './adapter/SessionStorage.js'
3-
import type { StorageProvider } from './provider/StorageProvider.js'
43
import type { CreateLogger } from '@stenodb/logger'
5-
import type { ClassEntity } from '@stenodb/utils'
64

7-
export namespace Steno {
8-
export type Entity<T> = ClassEntity<T>
9-
export type BrowserAdapter<T> = LocalStorage<T> | SessionStorage<T>
10-
export type BrowserProvider<T> = StorageProvider<T>
5+
export type BrowserStorageAdapter<T> = LocalStorage<T> | SessionStorage<T>
116

12-
export interface BrowserProviderOptions {
13-
logger?: CreateLogger
14-
}
7+
export interface BrowserProviderOptions {
8+
logger?: CreateLogger
159
}

0 commit comments

Comments
 (0)