@jmlq/logger-plugin-fs 0.1.0-alpha.10 → 0.1.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +433 -111
- package/architecture.md +79 -206
- package/dist/application/factory/create-fs-datasource.factory.d.ts +1 -1
- package/dist/{infrastructure/filesystem → application}/types/filesystem-datasource-options.type.d.ts +2 -2
- package/dist/application/types/index.d.ts +1 -0
- package/dist/application/types/index.js +17 -0
- package/dist/index.d.ts +2 -1
- package/dist/infrastructure/filesystem/types/index.d.ts +0 -1
- package/dist/infrastructure/filesystem/types/index.js +0 -1
- package/package.json +5 -6
- package/install.md +0 -520
- /package/dist/{infrastructure/filesystem → application}/types/filesystem-datasource-options.type.js +0 -0
package/architecture.md
CHANGED
|
@@ -18,9 +18,9 @@ El plugin implementa Clean Architecture con separación clara de responsabilidad
|
|
|
18
18
|
|
|
19
19
|
Utiliza el patrón Ports & Adapters para aislar la lógica de negocio de las implementaciones concretas del filesystem, permitiendo testabilidad y flexibilidad en las implementaciones.
|
|
20
20
|
|
|
21
|
-
###
|
|
21
|
+
### Domain Driven Design (DDD)
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Implementa conceptos de DDD con Value Objects que encapsulan reglas de negocio y comportamientos específicos del dominio de logging y gestión de archivos.
|
|
24
24
|
|
|
25
25
|
### Dependency Inversion
|
|
26
26
|
|
|
@@ -30,196 +30,106 @@ Las capas internas definen interfaces (ports) que las capas externas implementan
|
|
|
30
30
|
|
|
31
31
|
### `/src/domain/` - Capa de Dominio
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Contiene la lógica de negocio pura y las abstracciones fundamentales del plugin.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
#### `/domain/model/`
|
|
36
36
|
|
|
37
|
-
-
|
|
38
|
-
- `/value-objects/` - Objetos de valor inmutables del dominio
|
|
37
|
+
- **[`log-entry.model.ts`](src/domain/model/log-entry.model.ts)**: Modelo de dominio que representa una entrada de log con sus propiedades y comportamientos
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
**Responsabilidad**: Orquesta los casos de uso del plugin y coordina entre dominio e infraestructura.
|
|
43
|
-
|
|
44
|
-
**Contenido**:
|
|
45
|
-
|
|
46
|
-
- `/dto/` - Data Transfer Objects para casos de uso
|
|
47
|
-
- `/factory/` - Factories para creación de componentes
|
|
48
|
-
- `/services/` - Servicios de aplicación que implementan `ILogDatasource`
|
|
49
|
-
- `/use-cases/` - Casos de uso específicos del plugin
|
|
50
|
-
|
|
51
|
-
### `/src/infrastructure/` - Capa de Infraestructura
|
|
52
|
-
|
|
53
|
-
**Responsabilidad**: Implementaciones concretas de los ports del dominio y adaptadores específicos.
|
|
54
|
-
|
|
55
|
-
**Contenido**:
|
|
39
|
+
#### `/domain/value-objects/`
|
|
56
40
|
|
|
57
|
-
-
|
|
58
|
-
-
|
|
41
|
+
- **[`file-path.vo.ts`](src/domain/value-objects/file-path.vo.ts)**: Encapsula una ruta de archivo como objeto inmutable con validaciones
|
|
42
|
+
- **[`file-size.vo.ts`](src/domain/value-objects/file-size.vo.ts)**: Representa el tamaño de archivos con conversiones y comparaciones
|
|
43
|
+
- **[`file-name-pattern.vo.ts`](src/domain/value-objects/file-name-pattern.vo.ts)**: Maneja patrones de nombres con tokens de fecha para generación dinámica
|
|
44
|
+
- **[`file-rotation-policy.vo.ts`](src/domain/value-objects/file-rotation-policy.vo.ts)**: Define las reglas de rotación de archivos según diferentes estrategias
|
|
45
|
+
- **[`log-level.vo.ts`](src/domain/value-objects/log-level.vo.ts)**: Encapsula los niveles de log con lógica de comparación
|
|
59
46
|
|
|
60
|
-
|
|
47
|
+
#### `/domain/ports/`
|
|
61
48
|
|
|
62
|
-
**
|
|
49
|
+
- **[`filesystem-provider.port.ts`](src/domain/ports/filesystem-provider.port.ts)**: Contrato para operaciones del sistema de archivos (stat, mkdir, readdir, etc.)
|
|
50
|
+
- **[`system-clock.port.ts`](src/domain/ports/system-clock.port.ts)**: Abstracción del tiempo del sistema
|
|
63
51
|
|
|
64
|
-
|
|
52
|
+
#### `/domain/ports/file/`
|
|
65
53
|
|
|
66
|
-
-
|
|
54
|
+
- **[`file-path.port.ts`](src/domain/ports/file/file-path.port.ts)**: Contrato para manipulación y normalización de rutas
|
|
55
|
+
- **[`file-rotator.port.ts`](src/domain/ports/file/file-rotator.port.ts)**: Define operaciones de rotación de archivos
|
|
56
|
+
- **[`log-stream-writer.port.ts`](src/domain/ports/file/log-stream-writer.port.ts)**: Abstracción para escritura de streams de logs
|
|
67
57
|
|
|
68
|
-
|
|
58
|
+
#### `/domain/ports/logs/`
|
|
69
59
|
|
|
70
|
-
|
|
60
|
+
- **[`log-datasource.port.ts`](src/domain/ports/logs/log-datasource.port.ts)**: Contrato principal del datasource compatible con @jmlq/logger
|
|
71
61
|
|
|
72
|
-
####
|
|
62
|
+
#### `/domain/ports/logs/find/`
|
|
73
63
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
constructor(props: IFilePathProps);
|
|
77
|
-
get absolutePath(): string;
|
|
78
|
-
get directory(): string;
|
|
79
|
-
get filename(): string;
|
|
80
|
-
get extension(): string;
|
|
81
|
-
get basename(): string;
|
|
82
|
-
equals(other: FilePath): boolean;
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
**Responsabilidad**: Encapsula una ruta de archivo completa como objeto inmutable, garantizando consistencia en la representación de paths a través del sistema.
|
|
87
|
-
|
|
88
|
-
#### FileSize
|
|
89
|
-
|
|
90
|
-
```typescript
|
|
91
|
-
class FileSize {
|
|
92
|
-
constructor(bytes: number);
|
|
93
|
-
get bytes(): number;
|
|
94
|
-
get megabytes(): number;
|
|
95
|
-
isGreaterThan(other: FileSize): boolean;
|
|
96
|
-
equals(other: FileSize): boolean;
|
|
97
|
-
}
|
|
98
|
-
```
|
|
64
|
+
- **[`log-file-line-reader.port.ts`](src/domain/ports/logs/find/log-file-line-reader.port.ts)**: Contrato para lectura línea por línea de archivos de log
|
|
65
|
+
- **[`log-file-numerator.port.ts`](src/domain/ports/logs/find/log-file-numerator.port.ts)**: Abstracción para enumeración de archivos de log
|
|
99
66
|
|
|
100
|
-
|
|
67
|
+
#### `/domain/request/` y `/domain/response/`
|
|
101
68
|
|
|
102
|
-
|
|
69
|
+
- **[`save-log.request.ts`](src/domain/request/save-log.request.ts)**: DTO para solicitudes de guardado de logs
|
|
70
|
+
- **[`log-filter.request.ts`](src/domain/request/log-filter.request.ts)**: Parámetros para filtrado y búsqueda de logs
|
|
71
|
+
- **[`log.response.ts`](src/domain/response/log.response.ts)**: Estructura de respuesta para logs encontrados
|
|
103
72
|
|
|
104
|
-
####
|
|
105
|
-
|
|
106
|
-
```typescript
|
|
107
|
-
class FileNamePattern {
|
|
108
|
-
constructor(pattern: string);
|
|
109
|
-
get pattern(): string;
|
|
110
|
-
hasDateTokens(): boolean;
|
|
111
|
-
getTokens(): string[];
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**Responsabilidad**: Encapsula patrones de nombres de archivo con placeholders para fechas, permitiendo generación dinámica de nombres basados en timestamps.
|
|
116
|
-
|
|
117
|
-
#### RotationPolicy
|
|
118
|
-
|
|
119
|
-
```typescript
|
|
120
|
-
class RotationPolicy {
|
|
121
|
-
constructor(by: FsRotationBy, maxSizeMB?: number, maxFiles?: number);
|
|
122
|
-
get by(): FsRotationBy;
|
|
123
|
-
get maxSizeMB(): number | undefined;
|
|
124
|
-
get maxFiles(): number | undefined;
|
|
125
|
-
shouldRotateBySize(currentSize: FileSize): boolean;
|
|
126
|
-
}
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
**Responsabilidad**: Define las reglas de rotación de archivos, encapsulando la lógica de cuándo y cómo rotar archivos según diferentes estrategias.
|
|
130
|
-
|
|
131
|
-
### Tipos del Sistema
|
|
132
|
-
|
|
133
|
-
#### FsRotationBy
|
|
134
|
-
|
|
135
|
-
```typescript
|
|
136
|
-
type FsRotationBy = "none" | "day" | "size";
|
|
137
|
-
```
|
|
73
|
+
#### `/domain/types/`
|
|
138
74
|
|
|
139
|
-
**
|
|
75
|
+
- **[`fs-rotation-by.type.ts`](src/domain/types/fs-rotation-by.type.ts)**: Define los tipos de rotación disponibles (`"none"`, `"day"`, `"size"`)
|
|
140
76
|
|
|
141
|
-
###
|
|
142
|
-
|
|
143
|
-
#### FsWriterAdapter
|
|
144
|
-
|
|
145
|
-
```typescript
|
|
146
|
-
class FsWriterAdapter implements IStreamWriterPort {
|
|
147
|
-
async write(data: string): Promise<boolean>;
|
|
148
|
-
async open(path: FilePath): Promise<void>;
|
|
149
|
-
async close(): Promise<void>;
|
|
150
|
-
async flush(): Promise<void>;
|
|
151
|
-
isOpen(): boolean;
|
|
152
|
-
getCurrentPath(): FilePath | null;
|
|
153
|
-
}
|
|
154
|
-
```
|
|
77
|
+
### `/src/application/` - Capa de Aplicación
|
|
155
78
|
|
|
156
|
-
|
|
79
|
+
Orquesta los casos de uso del plugin y coordina entre dominio e infraestructura.
|
|
157
80
|
|
|
158
|
-
####
|
|
81
|
+
#### `/application/use-cases/`
|
|
159
82
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
async shouldRotate(
|
|
166
|
-
policy: RotationPolicy,
|
|
167
|
-
currentDate: Date
|
|
168
|
-
): Promise<boolean>;
|
|
169
|
-
}
|
|
170
|
-
```
|
|
83
|
+
- **[`persist-log.use-case.ts`](src/application/use-cases/persist-log.use-case.ts)**: Caso de uso principal que orquesta la persistencia de logs
|
|
84
|
+
- **[`append-log.use-case.ts`](src/application/use-cases/append-log.use-case.ts)**: Maneja la escritura física de logs al archivo actual
|
|
85
|
+
- **[`rotate-if-needed.use-case.ts`](src/application/use-cases/rotate-if-needed.use-case.ts)**: Evalúa y ejecuta rotación de archivos según políticas
|
|
86
|
+
- **[`ensure-directory.use-case.ts`](src/application/use-cases/ensure-directory.use-case.ts)**: Garantiza la existencia del directorio base
|
|
87
|
+
- **[`find-logs-use-case.ts`](src/application/use-cases/find-logs-use-case.ts)**: Implementa búsqueda y filtrado de logs históricos
|
|
171
88
|
|
|
172
|
-
|
|
89
|
+
#### `/application/factory/`
|
|
173
90
|
|
|
174
|
-
|
|
91
|
+
- **[`create-fs-datasource.factory.ts`](src/application/factory/create-fs-datasource.factory.ts)**: Factory principal que ensambla todos los componentes del plugin
|
|
175
92
|
|
|
176
|
-
|
|
177
|
-
class FsProviderAdapter implements IFsProviderPort
|
|
178
|
-
```
|
|
93
|
+
#### `/application/dto/`
|
|
179
94
|
|
|
180
|
-
**
|
|
95
|
+
- **[`rotate-if-needed.request.ts`](src/application/dto/rotate-if-needed.request.ts)**: DTO específico para el caso de uso de rotación
|
|
181
96
|
|
|
182
|
-
####
|
|
97
|
+
#### `/application/types/`
|
|
183
98
|
|
|
184
|
-
|
|
185
|
-
class NodeClockAdapter implements IClockPort
|
|
186
|
-
```
|
|
99
|
+
- **[`filesystem-datasource-options.type.ts`](src/application/types/filesystem-datasource-options.type.ts)**: Opciones de configuración del datasource de filesystem
|
|
187
100
|
|
|
188
|
-
|
|
101
|
+
### `/src/infrastructure/` - Capa de Infraestructura
|
|
189
102
|
|
|
190
|
-
|
|
103
|
+
Implementaciones concretas de los ports del dominio usando tecnologías específicas de Node.js.
|
|
191
104
|
|
|
192
|
-
|
|
193
|
-
class NodeFilePathAdapter implements IFilePathAdapterPort
|
|
194
|
-
```
|
|
105
|
+
#### `/infrastructure/adapters/`
|
|
195
106
|
|
|
196
|
-
**
|
|
107
|
+
- **[`system-file-path.adapter.ts`](src/infrastructure/adapters/system-file-path.adapter.ts)**: Implementación usando el módulo `path` de Node.js
|
|
108
|
+
- **[`filesystem-provider.adapter.ts`](src/infrastructure/adapters/filesystem-provider.adapter.ts)**: Adaptador del módulo `fs` de Node.js
|
|
109
|
+
- **[`system-clock.adapter.ts`](src/infrastructure/adapters/system-clock.adapter.ts)**: Proporciona acceso al tiempo del sistema
|
|
110
|
+
- **[`log-stream-writer.adapter.ts`](src/infrastructure/adapters/log-stream-writer.adapter.ts)**: Maneja WriteStream de Node.js con control de backpressure
|
|
111
|
+
- **[`file-rotator.adapter.ts`](src/infrastructure/adapters/file-rotator.adapter.ts)**: Implementa lógica de rotación y generación de paths basados en fechas
|
|
112
|
+
- **[`fileSystem-datasource.adapter.ts`](src/infrastructure/adapters/fileSystem-datasource.adapter.ts)**: Implementación principal de ILogDatasource
|
|
113
|
+
- **[`filesystem-log-file-enumerator.adapter.ts`](src/infrastructure/adapters/filesystem-log-file-enumerator.adapter.ts)**: Enumera archivos .log en directorios del filesystem
|
|
114
|
+
- **[`filesystem-log-file-line-reader.adapter.ts`](src/infrastructure/adapters/filesystem-log-file-line-reader.adapter.ts)**: Lee archivos línea por línea usando streams
|
|
197
115
|
|
|
198
|
-
|
|
116
|
+
#### `/infrastructure/errors/`
|
|
199
117
|
|
|
200
|
-
|
|
118
|
+
- **[`file-operation.error.ts`](src/infrastructure/errors/file-operation.error.ts)**: Jerarquía de errores específicos para operaciones de filesystem
|
|
201
119
|
|
|
202
|
-
|
|
203
|
-
class FsDatasourceService implements ILogDatasource {
|
|
204
|
-
async save(log: ILogProps): Promise<void>;
|
|
205
|
-
async flush(): Promise<void>;
|
|
206
|
-
async dispose(): Promise<void>;
|
|
207
|
-
}
|
|
208
|
-
```
|
|
120
|
+
#### `/infrastructure/errors/types/`
|
|
209
121
|
|
|
210
|
-
**
|
|
122
|
+
- **[`file-operation-error-options.type.ts`](src/infrastructure/errors/types/file-operation-error-options.type.ts)**: Opciones para errores de operaciones de archivo
|
|
123
|
+
- **[`file-operation.type.ts`](src/infrastructure/errors/types/file-operation.type.ts)**: Tipos de operaciones de archivo para categorización de errores
|
|
124
|
+
- **[`fs-error-scope.type.ts`](src/infrastructure/errors/types/fs-error-scope.type.ts)**: Ámbitos de errores del filesystem
|
|
211
125
|
|
|
212
|
-
|
|
126
|
+
#### `/infrastructure/filesystem/types/`
|
|
213
127
|
|
|
214
|
-
|
|
128
|
+
- **[`filesystem-rotation.type.ts`](src/infrastructure/filesystem/types/filesystem-rotation.type.ts)**: Configuración específica de rotación para filesystem
|
|
215
129
|
|
|
216
|
-
|
|
217
|
-
function createFsDatasource(
|
|
218
|
-
options: IFilesystemDatasourceOptions
|
|
219
|
-
): ILogDatasource;
|
|
220
|
-
```
|
|
130
|
+
### `/src/index.ts`
|
|
221
131
|
|
|
222
|
-
**
|
|
132
|
+
**[`index.ts`](src/index.ts)**: Punto de entrada principal del plugin que expone la API pública
|
|
223
133
|
|
|
224
134
|
## Política de Rotación
|
|
225
135
|
|
|
@@ -227,19 +137,11 @@ function createFsDatasource(
|
|
|
227
137
|
|
|
228
138
|
#### Rotación por Día (`"day"`)
|
|
229
139
|
|
|
230
|
-
La rotación se basa en cambios de fecha. El sistema evalúa si el archivo actual corresponde a la fecha presente
|
|
231
|
-
|
|
232
|
-
1. **Evaluación**: Compara el path actual con el path esperado para la fecha actual
|
|
233
|
-
2. **Decisión**: Si difieren, se requiere rotación
|
|
234
|
-
3. **Proceso**: Cierra el stream actual y abre uno nuevo con el path actualizado
|
|
140
|
+
La rotación se basa en cambios de fecha. El sistema evalúa si el archivo actual corresponde a la fecha presente y rota cuando detecta un cambio de día.
|
|
235
141
|
|
|
236
142
|
#### Rotación por Tamaño (`"size"`)
|
|
237
143
|
|
|
238
|
-
La rotación se activa cuando el archivo supera el límite configurado
|
|
239
|
-
|
|
240
|
-
1. **Evaluación**: Compara el tamaño actual del archivo con `maxSizeMB` usando `FileSize.isGreaterThan()`
|
|
241
|
-
2. **Decisión**: Se rota cuando el tamaño es mayor o igual al límite
|
|
242
|
-
3. **Proceso**: Se crea un nuevo archivo y el anterior se mantiene según `maxFiles`
|
|
144
|
+
La rotación se activa cuando el archivo supera el límite configurado en `maxSizeMB`. Se puede configurar un límite de archivos rotados con `maxFiles`.
|
|
243
145
|
|
|
244
146
|
#### Sin Rotación (`"none"`)
|
|
245
147
|
|
|
@@ -247,62 +149,33 @@ El archivo crece indefinidamente sin intervención del sistema de rotación.
|
|
|
247
149
|
|
|
248
150
|
### Generación de Nombres de Archivos
|
|
249
151
|
|
|
250
|
-
El sistema utiliza `FileNamePattern` para generar nombres dinámicamente:
|
|
251
|
-
|
|
252
|
-
**Placeholders soportados**:
|
|
152
|
+
El sistema utiliza [`FileNamePattern`](src/domain/value-objects/file-name-pattern.vo.ts) para generar nombres dinámicamente con placeholders:
|
|
253
153
|
|
|
254
154
|
- `{yyyy}` - Año de 4 dígitos
|
|
255
155
|
- `{MM}` - Mes con padding (01-12)
|
|
256
156
|
- `{dd}` - Día con padding (01-31)
|
|
257
|
-
- `{HH}` - Hora con padding (00-23)
|
|
258
|
-
- `{mm}` - Minutos con padding (00-59)
|
|
259
|
-
- `{ss}` - Segundos con padding (00-59)
|
|
260
|
-
|
|
261
|
-
**Proceso**:
|
|
262
|
-
|
|
263
|
-
1. `FileRotatorAdapter.buildPathForDate()` toma la fecha actual
|
|
264
|
-
2. Reemplaza cada placeholder con el valor correspondiente de la fecha
|
|
265
|
-
3. Combina con `basePath` usando `NodeFilePathAdapter`
|
|
266
|
-
4. Retorna un `FilePath` completo
|
|
267
|
-
|
|
268
|
-
## Flujo Interno del Datasource
|
|
269
|
-
|
|
270
|
-
### Pipeline de Escritura de Logs
|
|
271
|
-
|
|
272
|
-
```
|
|
273
|
-
ILogProps → ISaveLogDto → PersistLogUseCase → Filesystem
|
|
274
|
-
↓ ↓ ↓ ↓
|
|
275
|
-
[Logger] [Application] [Domain] [Infrastructure]
|
|
276
|
-
```
|
|
277
157
|
|
|
278
|
-
|
|
158
|
+
## Flujo Principal del Datasource
|
|
279
159
|
|
|
280
|
-
|
|
160
|
+
### Pipeline de Escritura
|
|
281
161
|
|
|
282
|
-
|
|
162
|
+
1. **Recepción**: [`FsDatasourceAdapter.save()`](src/infrastructure/adapters/fileSystem-datasource.adapter.ts) recibe el log desde @jmlq/logger
|
|
283
163
|
|
|
284
|
-
|
|
164
|
+
2. **Orquestación**: [`PersistLogUseCase`](src/application/use-cases/persist-log.use-case.ts) coordina el proceso:
|
|
285
165
|
|
|
286
|
-
- Asegura
|
|
287
|
-
- Evalúa
|
|
288
|
-
-
|
|
289
|
-
- Delega escritura (`AppendLogUseCase`)
|
|
166
|
+
- Asegura directorio base ([`EnsureDirectoryUseCase`](src/application/use-cases/ensure-directory.use-case.ts))
|
|
167
|
+
- Evalúa rotación ([`RotateIfNeededUseCase`](src/application/use-cases/rotate-if-needed.use-case.ts))
|
|
168
|
+
- Ejecuta escritura ([`AppendLogUseCase`](src/application/use-cases/append-log.use-case.ts))
|
|
290
169
|
|
|
291
|
-
|
|
170
|
+
3. **Escritura**: [`LogStreamWriterAdapter`](src/infrastructure/adapters/log-stream-writer.adapter.ts) maneja la escritura física usando Node.js WriteStream
|
|
292
171
|
|
|
293
|
-
|
|
294
|
-
- Si requiere rotación, cierra stream actual y abre uno nuevo
|
|
295
|
-
- Ejecuta callback `onRotate` si está configurado
|
|
172
|
+
### Pipeline de Búsqueda
|
|
296
173
|
|
|
297
|
-
|
|
174
|
+
1. **Enumeración**: [`FileSystemLogFileEnumeratorAdapter`](src/infrastructure/adapters/filesystem-log-file-enumerator.adapter.ts) encuentra archivos .log
|
|
298
175
|
|
|
299
|
-
|
|
300
|
-
- Escribe en el stream actual via `FsWriterAdapter`
|
|
176
|
+
2. **Lectura**: [`FileSystemLogFileLineReaderAdapter`](src/infrastructure/adapters/filesystem-log-file-line-reader.adapter.ts) lee líneas de archivos
|
|
301
177
|
|
|
302
|
-
|
|
303
|
-
- Maneja WriteStream de Node.js
|
|
304
|
-
- Controla backpressure y drenaje
|
|
305
|
-
- Gestiona apertura/cierre de archivos
|
|
178
|
+
3. **Filtrado**: [`FindLogsUseCase`](src/application/use-cases/find-logs-use-case.ts) aplica filtros de nivel, fecha y contenido
|
|
306
179
|
|
|
307
180
|
## Dependencias entre Capas
|
|
308
181
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IFilesystemDatasourceOptions } from "../../infrastructure/filesystem";
|
|
2
1
|
import { ILogDatasource } from "../../domain/ports";
|
|
2
|
+
import { IFilesystemDatasourceOptions } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* createFsDatasource
|
|
5
5
|
* -----------------------------------------------------------------------------
|
package/dist/{infrastructure/filesystem → application}/types/filesystem-datasource-options.type.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FilePath } from "
|
|
2
|
-
import { IFileSystemRotationConfig } from "
|
|
1
|
+
import { FilePath } from "../../domain/value-objects";
|
|
2
|
+
import { IFileSystemRotationConfig } from "../../infrastructure/filesystem/types";
|
|
3
3
|
/**
|
|
4
4
|
* Opciones de configuración para la fuente de datos del sistema de archivos.
|
|
5
5
|
* Es el objeto de configuración para un datasource de logs basado en filesystem
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./filesystem-datasource-options.type";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./filesystem-datasource-options.type"), exports);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { FilePath, FileSize, FileRotationPolicy, FileNamePattern, } from "./domain/value-objects";
|
|
2
2
|
export { createFsDatasource } from "./application/factory";
|
|
3
|
-
export { IFilesystemDatasourceOptions
|
|
3
|
+
export { IFilesystemDatasourceOptions } from "./application/types";
|
|
4
|
+
export { IFileSystemRotationConfig } from "./infrastructure/filesystem";
|
|
@@ -14,5 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./filesystem-datasource-options.type"), exports);
|
|
18
17
|
__exportStar(require("./filesystem-rotation.type"), exports);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jmlq/logger-plugin-fs",
|
|
3
3
|
"description": "Filesystem plugin for JMLQ Logger implementing Clean Architecture principles.",
|
|
4
|
-
"version": "0.1.0-alpha.
|
|
4
|
+
"version": "0.1.0-alpha.11",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -25,8 +25,6 @@
|
|
|
25
25
|
"clean-architecture",
|
|
26
26
|
"typescript"
|
|
27
27
|
],
|
|
28
|
-
"author": "MLahuasi",
|
|
29
|
-
"license": "MIT",
|
|
30
28
|
"devDependencies": {
|
|
31
29
|
"@swc/core": "^1.3.95",
|
|
32
30
|
"@swc/jest": "^0.2.29",
|
|
@@ -41,10 +39,11 @@
|
|
|
41
39
|
"files": [
|
|
42
40
|
"dist",
|
|
43
41
|
"README.md",
|
|
44
|
-
"architecture.md"
|
|
45
|
-
"install.md"
|
|
42
|
+
"architecture.md"
|
|
46
43
|
],
|
|
47
44
|
"dependencies": {
|
|
48
45
|
"@jmlq/logger": "^0.1.0-alpha.20"
|
|
49
|
-
}
|
|
46
|
+
},
|
|
47
|
+
"author": "MLahuasi",
|
|
48
|
+
"license": "MIT"
|
|
50
49
|
}
|