1.0.1 • Published 2 years ago

@rosejs/api v1.0.1

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
2 years ago

API Rose framework

Api que nos permitira tener coneccion con el core de @rosejs

¿Que es una API ?

Una API(Interfas de programación de aplicaciones) es una froma de conectar dos componentes entre si, mediante un conunto de definiciones y protocolos,

Api te permitirá comunicarte con workers de @rosejs

facil de usar!

Primero tienes que generar un paquete carpeta donde definas las funciones que dispone el worker y luego darle esas funciones habilidades al api para poder comunicarse soporta async y sync

//index.ts
import Api, { JobsOptions } from "@rosejs/api"

import dotenv from 'dotenv'

import * as T from './types'

import { Response, Paginate } from '@rosejs/core'

export { T }

dotenv.config()

export const api = new Api<T.Endpoint>('aleatorio')

export const findOne = async (params: T.FindOne, opts?: JobsOptions): Promise<Response<T.Model>> => {

  const { statusCode, data, message } = await api.add(params, 'findOne', opts)

  return { statusCode, data, message }
}

export const update = async (params: T.Update, opts?: JobsOptions): Promise<Response<T.Model>> => {

  const { statusCode, data, message } = await api.add(params, 'update', opts)

  return { statusCode, data, message }
}

export const count = async (params: T.Count, opts?: JobsOptions): Promise<Response<number>> => {

  const { statusCode, data, message } = await api.add(params, 'count', opts)

  return { statusCode, data, message }
}

export const view = async (params: T.View, opts?: JobsOptions): Promise<Response<Paginate<T.Model>>> => {

  const { statusCode, data, message } = await api.add(params, 'view', opts)

  return { statusCode, data, message }
}

export const create = async (params: T.Create, opts?: JobsOptions): Promise<Response<T.Model[]>> => {

  const { statusCode, data, message } = await api.add(params, 'create', opts)

  return { statusCode, data, message }
}

export const destroy = async (params: T.Destroy, opts?: JobsOptions): Promise<Response<number>> => {

  const { statusCode, data, message } = await api.add(params, 'destroy', opts)

  return { statusCode, data, message }
}

export default { count, destroy, create, view, findOne, update, T }
//types.ts
export interface Model {
    pk: string

    name: string
    description: string

    createdAt: string
    updatedAt: string
    deletedAt: string
}

export interface Count {
    search?: string
}

export interface View {
    offset?: number
    limit?: number

    pks?: string[]
    search?: string
}

export interface FindOne {
    id: string
}

export interface Update {
    pk: string

    name?: string,
    description?: string,
}

export interface Create {

    products: {
        name: string
        description?: string
    }[]

    store: string,

}

export interface Destroy {
    pks?: string[]
    idShares?: string[]
    stores?: string[]
}

export const endpoint = ['create', 'update', 'destroy', 'findOne', 'view', 'count'] as const

export type Endpoint = typeof endpoint[number]

Maintainers

Javier Avila
javierdeveoper
@njavilas2015

Email contact

njavilas@insertmendoza.com.ar

Open Collective Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

1.0.1

2 years ago

1.0.0

2 years ago