1.0.1 • Published 2 years ago
@rosejs/api v1.0.1
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 |
---|
@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]