-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.d.ts
156 lines (128 loc) · 4.11 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
import Sqlite from 'better-sqlite3'
declare interface ResultadoOperación {
ok: boolean
documentos: number
}
declare interface OpcionesCliente {
dir: string
nombre: string
WAL?: boolean
verbose?: any
}
type DocumentoType<T extends {}> = T & Documento<T>
declare class Documento<TEsquema> {
/**
* La id del documento, normalmente es una string
*/
public _id: TEsquema._id | string
constructor(data: object, db: uwuDB<TEsquema>)
/**
* Elimina el documento actual
*/
eliminar(): ResultadoOperación
/**
* Guarda los cambios en el objeto del documento
*/
guardar(): DocumentoType<TEsquema>
}
declare class Esquema {
public rawModel: object
private properties: string[]
private values: string[]
private types: object
constructor(obj: object)
}
declare class uwuDB<TEsquema> {
/**
* El esquema de la db
*/
public Esquema: Esquema
/**
* El nombre de la db
*/
public nombre: string
/**
* Crea una nueva db
* @param nombre - El nombre de la db
* @param esquema - El esquema de la db
* @param client - El cliente de uwudb
*/
constructor(nombre: string, esquema: Esquema, client: uwuCliente)
/**
* Establece un nuevo objeto dentro de la db
* @param obj - El objeto a insertar en la db
*/
public establecer(obj: Partial<TEsquema>): DocumentoType<TEsquema>
/**
* Busca un doc con la Búsqueda propuesta
* @param Búsqueda - Busca un doc con las propiedades puestas aquí
*/
public buscarUno(Búsqueda: Partial<TEsquema>): DocumentoType<TEsquema>
/**
* Busca varios documentos a la vez
* @param Búsqueda - La Búsqueda de lo que estas buscando, si no se pone se darán todos los docs de toda la tabla
* @param limite - El limite de documentos que quieres obtener, si no se pone nada te dará todos los docs con esa Búsqueda
*/
public buscar(Búsqueda?: Partial<TEsquema>, limite?: number): DocumentoType<TEsquema>[]
/**
* Actualiza **un** documento
* @param Búsqueda - El filtro para encontrar el documento a actualizar
* @param obj - Los nuevos datos de el documento
*/
public actualizarUno(Búsqueda: Partial<TEsquema>, obj: Partial<TEsquema>): DocumentoType<TEsquema>
/**
* Elimina un documento
* @param Filtro - El filtro para encontrar el documento
*/
public eliminarUno(Filtro: Partial<TEsquema>): ResultadoOperación
/**
* Elimina varios documentos con el mismo filtro
* @param Filtro - El filtro para eliminar varios documentos, dejalo vació para eliminar todos los documentos de esta DB
*/
public eliminarVarios(Filtro: Partial<TEsquema>): ResultadoOperación
/**
* Eliminar un documento por su _id
* @param _id La ID de un documento
*/
public eliminarPorId(_id: any): Promise<ResultadoOperación>
}
declare class uwuCliente {
/**
* Las opciones del cliente ingresadas en el constructor
*/
public OpcionesCliente: OpcionesCliente
/**
* Todas las dbs creadas en un array
*/
public Databases: uwuDB<any>[]
/**
* La DB de sqlite para que hagan request específicos
*/
public db: Sqlite.Database
/**
* Crea al cliente de uwudb, en el que puedes crear una db
* @param OpcionesCliente - Las opciones del cliente
*/
constructor(OpcionesCliente: OpcionesCliente)
/**
* Crea una nueva db
* @param nombre - El nombre de la nueva db
* @param esquema - El esquema de la db
*/
public crearDB<TEsquema>(nombre: string, esquema: Esquema): uwuDB<TEsquema>
/**
* Elimina una DB (Tabla) de uwudb
* @param nombre - El nombre de la base de datos a borrar
*/
public eliminarDB(nombre: string): boolean
}
/**
* Valida una _id, el valor único para identificar documentos de uwudb
* @param _id - La _id para validar
*/
declare function validarID(_id: string): boolean
/**
* Formatea un array en string para convertirlo a un array
* @param array - El array dentro de una string
*/
declare function formatArray(array: string): any[]