@arcaelas/dynamite 1.0.29 → 2.1.0

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.
Files changed (130) hide show
  1. package/README.md +13 -13
  2. package/{src → build/cjs}/@types/index.d.ts +26 -1
  3. package/build/cjs/@types/index.js.map +1 -0
  4. package/{src → build/cjs}/core/client.d.ts +22 -19
  5. package/build/cjs/core/client.js +384 -0
  6. package/build/cjs/core/client.js.map +1 -0
  7. package/build/cjs/core/decorator.d.ts +38 -0
  8. package/build/cjs/core/decorator.js +38 -0
  9. package/build/cjs/core/decorator.js.map +1 -0
  10. package/build/cjs/core/table.d.ts +55 -0
  11. package/build/cjs/core/table.js +851 -0
  12. package/build/cjs/core/table.js.map +1 -0
  13. package/build/cjs/decorators/indexes.d.ts +20 -0
  14. package/build/cjs/decorators/indexes.js +45 -0
  15. package/build/cjs/decorators/indexes.js.map +1 -0
  16. package/{src → build/cjs}/decorators/relations.d.ts +8 -7
  17. package/{src → build/cjs}/decorators/relations.js +9 -8
  18. package/build/cjs/decorators/relations.js.map +1 -0
  19. package/build/cjs/decorators/timestamps.d.ts +20 -0
  20. package/build/cjs/decorators/timestamps.js +34 -0
  21. package/build/cjs/decorators/timestamps.js.map +1 -0
  22. package/build/cjs/decorators/transforms.d.ts +41 -0
  23. package/build/cjs/decorators/transforms.js +98 -0
  24. package/build/cjs/decorators/transforms.js.map +1 -0
  25. package/{src → build/cjs}/index.d.ts +5 -3
  26. package/{src → build/cjs}/index.js +7 -6
  27. package/build/cjs/index.js.map +1 -0
  28. package/build/cjs/package.json +1 -0
  29. package/build/cjs/test/basic.d.ts +1 -0
  30. package/build/cjs/test/basic.js +248 -0
  31. package/build/cjs/test/basic.js.map +1 -0
  32. package/build/cjs/test/bulk.d.ts +1 -0
  33. package/build/cjs/test/bulk.js +108 -0
  34. package/build/cjs/test/bulk.js.map +1 -0
  35. package/build/cjs/test/contracts.d.ts +1 -0
  36. package/build/cjs/test/contracts.js +343 -0
  37. package/build/cjs/test/contracts.js.map +1 -0
  38. package/build/cjs/test/filters.d.ts +1 -0
  39. package/build/cjs/test/filters.js +190 -0
  40. package/build/cjs/test/filters.js.map +1 -0
  41. package/build/cjs/test/index.js +36 -0
  42. package/build/cjs/test/index.js.map +1 -0
  43. package/build/cjs/test/query_scan.d.ts +1 -0
  44. package/build/cjs/test/query_scan.js +195 -0
  45. package/build/cjs/test/query_scan.js.map +1 -0
  46. package/build/cjs/test/relations.d.ts +1 -0
  47. package/build/cjs/test/relations.js +246 -0
  48. package/build/cjs/test/relations.js.map +1 -0
  49. package/build/cjs/test/transactions.d.ts +1 -0
  50. package/build/cjs/test/transactions.js +145 -0
  51. package/build/cjs/test/transactions.js.map +1 -0
  52. package/{src → build/cjs}/utils/relations.js +1 -8
  53. package/build/cjs/utils/relations.js.map +1 -0
  54. package/build/cjs/utils/ulid.d.ts +10 -0
  55. package/build/cjs/utils/ulid.js +55 -0
  56. package/build/cjs/utils/ulid.js.map +1 -0
  57. package/build/esm/@types/index.d.ts +213 -0
  58. package/build/esm/@types/index.js +8 -0
  59. package/build/esm/@types/index.js.map +1 -0
  60. package/build/esm/core/client.d.ts +96 -0
  61. package/build/esm/core/client.js +375 -0
  62. package/build/esm/core/client.js.map +1 -0
  63. package/build/esm/core/decorator.d.ts +38 -0
  64. package/build/esm/core/decorator.js +34 -0
  65. package/build/esm/core/decorator.js.map +1 -0
  66. package/build/esm/core/table.d.ts +55 -0
  67. package/build/esm/core/table.js +848 -0
  68. package/build/esm/core/table.js.map +1 -0
  69. package/build/esm/decorators/indexes.d.ts +20 -0
  70. package/build/esm/decorators/indexes.js +42 -0
  71. package/build/esm/decorators/indexes.js.map +1 -0
  72. package/build/esm/decorators/relations.d.ts +75 -0
  73. package/build/esm/decorators/relations.js +112 -0
  74. package/build/esm/decorators/relations.js.map +1 -0
  75. package/build/esm/decorators/timestamps.d.ts +20 -0
  76. package/build/esm/decorators/timestamps.js +31 -0
  77. package/build/esm/decorators/timestamps.js.map +1 -0
  78. package/build/esm/decorators/transforms.d.ts +41 -0
  79. package/build/esm/decorators/transforms.js +92 -0
  80. package/build/esm/decorators/transforms.js.map +1 -0
  81. package/build/esm/index.d.ts +17 -0
  82. package/build/esm/index.js +24 -0
  83. package/build/esm/index.js.map +1 -0
  84. package/build/esm/package.json +1 -0
  85. package/build/esm/test/basic.d.ts +1 -0
  86. package/build/esm/test/basic.js +245 -0
  87. package/build/esm/test/basic.js.map +1 -0
  88. package/build/esm/test/bulk.d.ts +1 -0
  89. package/build/esm/test/bulk.js +105 -0
  90. package/build/esm/test/bulk.js.map +1 -0
  91. package/build/esm/test/contracts.d.ts +1 -0
  92. package/build/esm/test/contracts.js +340 -0
  93. package/build/esm/test/contracts.js.map +1 -0
  94. package/build/esm/test/filters.d.ts +1 -0
  95. package/build/esm/test/filters.js +187 -0
  96. package/build/esm/test/filters.js.map +1 -0
  97. package/build/esm/test/index.d.ts +1 -0
  98. package/build/esm/test/index.js +31 -0
  99. package/build/esm/test/index.js.map +1 -0
  100. package/build/esm/test/query_scan.d.ts +1 -0
  101. package/build/esm/test/query_scan.js +192 -0
  102. package/build/esm/test/query_scan.js.map +1 -0
  103. package/build/esm/test/relations.d.ts +1 -0
  104. package/build/esm/test/relations.js +243 -0
  105. package/build/esm/test/relations.js.map +1 -0
  106. package/build/esm/test/transactions.d.ts +1 -0
  107. package/build/esm/test/transactions.js +142 -0
  108. package/build/esm/test/transactions.js.map +1 -0
  109. package/build/esm/utils/relations.d.ts +42 -0
  110. package/build/esm/utils/relations.js +207 -0
  111. package/build/esm/utils/relations.js.map +1 -0
  112. package/build/esm/utils/ulid.d.ts +10 -0
  113. package/build/esm/utils/ulid.js +52 -0
  114. package/build/esm/utils/ulid.js.map +1 -0
  115. package/package.json +31 -9
  116. package/src/core/client.js +0 -296
  117. package/src/core/decorator.d.ts +0 -29
  118. package/src/core/decorator.js +0 -103
  119. package/src/core/table.d.ts +0 -81
  120. package/src/core/table.js +0 -892
  121. package/src/decorators/indexes.d.ts +0 -38
  122. package/src/decorators/indexes.js +0 -59
  123. package/src/decorators/timestamps.d.ts +0 -54
  124. package/src/decorators/timestamps.js +0 -72
  125. package/src/decorators/transforms.d.ts +0 -99
  126. package/src/decorators/transforms.js +0 -166
  127. package/src/index.test.js +0 -37
  128. /package/{src → build/cjs}/@types/index.js +0 -0
  129. /package/{src/index.test.d.ts → build/cjs/test/index.d.ts} +0 -0
  130. /package/{src → build/cjs}/utils/relations.d.ts +0 -0
@@ -0,0 +1,245 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Dynamite, Table, PrimaryKey, Default, Get, Set, NotNull, Name, CreatedAt, UpdatedAt, DeleteAt, HasMany, BelongsTo, } from "../index.js";
11
+ // -- Modelos con naming aislado --
12
+ let User = class User extends Table {
13
+ };
14
+ __decorate([
15
+ PrimaryKey(),
16
+ __metadata("design:type", Object)
17
+ ], User.prototype, "id", void 0);
18
+ __decorate([
19
+ NotNull('Name is required'),
20
+ __metadata("design:type", String)
21
+ ], User.prototype, "name", void 0);
22
+ __decorate([
23
+ Default(''),
24
+ __metadata("design:type", String)
25
+ ], User.prototype, "email", void 0);
26
+ __decorate([
27
+ Set((next) => typeof next === 'number' ? next : 0),
28
+ Default(() => 0),
29
+ __metadata("design:type", Object)
30
+ ], User.prototype, "score", void 0);
31
+ __decorate([
32
+ Get((v) => v?.toUpperCase()),
33
+ Default(''),
34
+ __metadata("design:type", Object)
35
+ ], User.prototype, "role", void 0);
36
+ __decorate([
37
+ CreatedAt(),
38
+ __metadata("design:type", Object)
39
+ ], User.prototype, "created_at", void 0);
40
+ __decorate([
41
+ UpdatedAt(),
42
+ __metadata("design:type", Object)
43
+ ], User.prototype, "updated_at", void 0);
44
+ __decorate([
45
+ DeleteAt(),
46
+ __metadata("design:type", Object)
47
+ ], User.prototype, "deleted_at", void 0);
48
+ __decorate([
49
+ HasMany(() => Task, 'user_id', 'id'),
50
+ __metadata("design:type", Object)
51
+ ], User.prototype, "tasks", void 0);
52
+ User = __decorate([
53
+ Name('test_basic_users')
54
+ ], User);
55
+ let Task = class Task extends Table {
56
+ };
57
+ __decorate([
58
+ PrimaryKey(),
59
+ __metadata("design:type", Object)
60
+ ], Task.prototype, "id", void 0);
61
+ __decorate([
62
+ NotNull(),
63
+ __metadata("design:type", String)
64
+ ], Task.prototype, "title", void 0);
65
+ __decorate([
66
+ Default(''),
67
+ __metadata("design:type", String)
68
+ ], Task.prototype, "user_id", void 0);
69
+ __decorate([
70
+ Default(() => false),
71
+ __metadata("design:type", Object)
72
+ ], Task.prototype, "done", void 0);
73
+ __decorate([
74
+ BelongsTo(() => User, 'id', 'user_id'),
75
+ __metadata("design:type", Object)
76
+ ], Task.prototype, "user", void 0);
77
+ Task = __decorate([
78
+ Name('test_basic_tasks')
79
+ ], Task);
80
+ // -- Helpers --
81
+ let passed = 0;
82
+ let failed = 0;
83
+ function assert(label, condition, detail) {
84
+ if (condition) {
85
+ console.log(` OK ${label}`);
86
+ passed++;
87
+ }
88
+ else {
89
+ console.error(` FAIL ${label}${detail ? ` -- ${detail}` : ''}`);
90
+ failed++;
91
+ }
92
+ }
93
+ // -- Test --
94
+ export default async function basic() {
95
+ console.log('\n=== BASIC ===\n');
96
+ const dynamite = new Dynamite({
97
+ tables: [User, Task],
98
+ region: 'local',
99
+ endpoint: 'http://localhost:8000',
100
+ credentials: { accessKeyId: 'local', secretAccessKey: 'local' },
101
+ });
102
+ await dynamite.connect();
103
+ await dynamite.sync();
104
+ console.log(' Connected + synced\n');
105
+ // -- Decoradores y pipelines --
106
+ console.log('-- Decoradores --');
107
+ const u1 = await User.create({ name: 'Daniel', email: 'dan@test.com', role: 'admin' });
108
+ assert('@Default genera id', typeof u1.id === 'string' && u1.id.length > 0);
109
+ assert('@Default genera score = 0', u1.score === 0);
110
+ assert('@Get transforma role a uppercase', u1.role === 'ADMIN');
111
+ assert('@CreatedAt genera timestamp', typeof u1.created_at === 'string' && u1.created_at.length > 0);
112
+ assert('@UpdatedAt genera timestamp', typeof u1.updated_at === 'string');
113
+ assert('__isPersisted es true', u1.__isPersisted === true);
114
+ // @NotNull lanza en campo omitido
115
+ let not_null_threw = false;
116
+ try {
117
+ await User.create({});
118
+ }
119
+ catch {
120
+ not_null_threw = true;
121
+ }
122
+ assert('@NotNull lanza en campo omitido', not_null_threw);
123
+ // @NotNull lanza en string vacio
124
+ let not_null_empty = false;
125
+ try {
126
+ await User.create({ name: '' });
127
+ }
128
+ catch {
129
+ not_null_empty = true;
130
+ }
131
+ assert('@NotNull lanza en string vacio', not_null_empty);
132
+ // @Set transforma valor
133
+ const u2 = await User.create({ name: 'Test', score: 'invalid' });
134
+ assert('@Set transforma non-number a 0', u2.score === 0);
135
+ // -- CRUD --
136
+ console.log('\n-- CRUD --');
137
+ // where por PK (Query)
138
+ const found = await User.where({ id: u1.id });
139
+ assert('where por PK retorna 1', found.length === 1);
140
+ assert('where por PK retorna el correcto', found[0]?.id === u1.id);
141
+ // where por campo (Scan)
142
+ const by_name = await User.where({ name: 'Daniel' });
143
+ assert('where por campo retorna resultado', by_name.length >= 1);
144
+ // where con operador
145
+ const by_op = await User.where('name', '$eq', 'Daniel');
146
+ assert('where con operador $eq', by_op.length >= 1);
147
+ // first / last
148
+ const first = await User.first({ id: u1.id });
149
+ assert('first retorna instancia', first?.id === u1.id);
150
+ const last = await User.last();
151
+ assert('last retorna instancia', last !== undefined);
152
+ // update estatico por PK
153
+ await User.update({ email: 'updated@test.com' }, { id: u1.id });
154
+ const updated = await User.first({ id: u1.id });
155
+ assert('update estatico por PK', updated?.email === 'updated@test.com');
156
+ // update de instancia
157
+ const prev_updated_at = updated.updated_at;
158
+ await new Promise(r => setTimeout(r, 50));
159
+ await updated.update({ email: 'instance@test.com' });
160
+ const after_update = await User.first({ id: u1.id });
161
+ assert('update de instancia cambia valor', after_update?.email === 'instance@test.com');
162
+ // save (nuevo)
163
+ const u3 = new User({ name: 'SaveTest' });
164
+ await u3.save();
165
+ assert('save crea registro nuevo', u3.__isPersisted === true);
166
+ const saved = await User.first({ id: u3.id });
167
+ assert('save persiste en DB', saved?.name === 'SaveTest');
168
+ // save (existente)
169
+ u3.email = 'saved@test.com';
170
+ await u3.save();
171
+ const re_saved = await User.first({ id: u3.id });
172
+ assert('save actualiza existente', re_saved?.email === 'saved@test.com');
173
+ // delete por PK
174
+ const u4 = await User.create({ name: 'ToDelete' });
175
+ await User.delete({ id: u4.id });
176
+ const deleted = await User.first({ id: u4.id });
177
+ assert('delete por PK elimina', deleted === undefined);
178
+ // -- Increment / Decrement --
179
+ console.log('\n-- Increment / Decrement --');
180
+ await User.increment('score', 10, { id: u1.id });
181
+ const inc = await User.first({ id: u1.id });
182
+ assert('increment estatico +10', inc?.score === 10);
183
+ await User.decrement('score', 3, { id: u1.id });
184
+ const dec = await User.first({ id: u1.id });
185
+ assert('decrement estatico -3', dec?.score === 7);
186
+ const inst = (await User.first({ id: u1.id }));
187
+ await inst.increment('score', 5);
188
+ assert('increment instancia +5 (memoria)', inst.score === 12);
189
+ const db_check = await User.first({ id: u1.id });
190
+ assert('increment instancia +5 (DB)', db_check?.score === 12);
191
+ // -- Soft delete --
192
+ console.log('\n-- Soft Delete --');
193
+ const u5 = await User.create({ name: 'SoftDel' });
194
+ await u5.destroy();
195
+ const soft = await User.where({ id: u5.id });
196
+ assert('destroy excluye de where', soft.length === 0);
197
+ const with_trashed = await User.where({ id: u5.id }, { _includeTrashed: true });
198
+ assert('_includeTrashed lo incluye', with_trashed.length === 1);
199
+ await u5.forceDestroy();
200
+ const force = await User.where({ id: u5.id }, { _includeTrashed: true });
201
+ assert('forceDestroy elimina definitivamente', force.length === 0);
202
+ // -- Relaciones --
203
+ console.log('\n-- Relaciones --');
204
+ const t1 = await Task.create({ title: 'Task 1', user_id: u1.id });
205
+ const t2 = await Task.create({ title: 'Task 2', user_id: u1.id });
206
+ const with_tasks = await User.where({ id: u1.id }, { include: { tasks: true } });
207
+ assert('HasMany carga relacion', with_tasks[0]?.tasks?.length === 2);
208
+ const with_user = await Task.where({ id: t1.id }, { include: { user: true } });
209
+ assert('BelongsTo carga relacion', with_user[0]?.user?.id === u1.id);
210
+ // -- Transacciones --
211
+ console.log('\n-- Transacciones --');
212
+ let tx_user;
213
+ await dynamite.tx(async (tx) => {
214
+ tx_user = await User.create({ name: 'TxUser', email: 'tx@test.com' }, tx);
215
+ assert('tx: instancia tiene id antes del commit', typeof tx_user.id === 'string');
216
+ assert('tx: __isPersisted es false antes del commit', tx_user.__isPersisted === false);
217
+ });
218
+ assert('tx: __isPersisted es true despues del commit', tx_user.__isPersisted === true);
219
+ const tx_found = await User.first({ id: tx_user.id });
220
+ assert('tx: registro existe en DB', tx_found?.name === 'TxUser');
221
+ // tx fallida
222
+ let tx_failed_user;
223
+ try {
224
+ await dynamite.tx(async (tx) => {
225
+ tx_failed_user = await User.create({ name: 'TxFail' }, tx);
226
+ throw new Error('Rollback');
227
+ });
228
+ }
229
+ catch { }
230
+ assert('tx fallida: __isPersisted sigue false', tx_failed_user.__isPersisted === false);
231
+ // -- Validacion de campos en where --
232
+ console.log('\n-- Validacion --');
233
+ let unknown_threw = false;
234
+ try {
235
+ await User.where({ nonexistent: 'value' });
236
+ }
237
+ catch {
238
+ unknown_threw = true;
239
+ }
240
+ assert('where lanza en campo inexistente', unknown_threw);
241
+ // -- Resumen --
242
+ console.log(`\n=== Resultado: ${passed} passed, ${failed} failed ===\n`);
243
+ return failed;
244
+ }
245
+ //# sourceMappingURL=basic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/test/basic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function bulk(): Promise<number>;
@@ -0,0 +1,105 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Dynamite, Table, PrimaryKey, Default, Name, } from "../index.js";
11
+ let Log = class Log extends Table {
12
+ };
13
+ __decorate([
14
+ PrimaryKey(),
15
+ __metadata("design:type", Object)
16
+ ], Log.prototype, "id", void 0);
17
+ __decorate([
18
+ Default(''),
19
+ __metadata("design:type", String)
20
+ ], Log.prototype, "level", void 0);
21
+ __decorate([
22
+ Default(''),
23
+ __metadata("design:type", String)
24
+ ], Log.prototype, "message", void 0);
25
+ __decorate([
26
+ Default(() => 0),
27
+ __metadata("design:type", Object)
28
+ ], Log.prototype, "code", void 0);
29
+ Log = __decorate([
30
+ Name('test_bulk_logs')
31
+ ], Log);
32
+ let passed = 0;
33
+ let failed = 0;
34
+ function assert(label, condition, detail) {
35
+ if (condition) {
36
+ console.log(` OK ${label}`);
37
+ passed++;
38
+ }
39
+ else {
40
+ console.error(` FAIL ${label}${detail ? ` -- ${detail}` : ''}`);
41
+ failed++;
42
+ }
43
+ }
44
+ export default async function bulk() {
45
+ console.log('\n=== BULK (3000 registros) ===\n');
46
+ const dynamite = new Dynamite({
47
+ tables: [Log],
48
+ region: 'local',
49
+ endpoint: 'http://localhost:8000',
50
+ credentials: { accessKeyId: 'local', secretAccessKey: 'local' },
51
+ });
52
+ await dynamite.connect();
53
+ await dynamite.sync();
54
+ const TOTAL = 3000;
55
+ const CHUNK = 100;
56
+ const levels = ['info', 'warn', 'error', 'debug'];
57
+ // -- Creacion masiva en chunks paralelos --
58
+ console.log(` Creando ${TOTAL} registros en chunks de ${CHUNK}...`);
59
+ const start = Date.now();
60
+ for (let i = 0; i < TOTAL; i += CHUNK) {
61
+ const batch = [];
62
+ for (let j = 0; j < CHUNK && i + j < TOTAL; j++) {
63
+ const idx = i + j;
64
+ batch.push(Log.create({
65
+ level: levels[idx % 4],
66
+ message: `Log entry ${idx}`,
67
+ code: idx,
68
+ }));
69
+ }
70
+ await Promise.all(batch);
71
+ }
72
+ const create_time = Date.now() - start;
73
+ console.log(` ${TOTAL} registros creados en ${create_time}ms (${(create_time / TOTAL).toFixed(2)}ms/reg)\n`);
74
+ assert('creacion completada', true);
75
+ // -- Count total --
76
+ const count_start = Date.now();
77
+ const all = await Log.where({});
78
+ const count_time = Date.now() - count_start;
79
+ console.log(` Scan total: ${all.length} registros en ${count_time}ms`);
80
+ assert('count total = 3000', all.length === TOTAL);
81
+ // -- Filtro por level --
82
+ const filter_start = Date.now();
83
+ const errors = await Log.where({ level: 'error' });
84
+ const filter_time = Date.now() - filter_start;
85
+ console.log(` Filtro level=error: ${errors.length} registros en ${filter_time}ms`);
86
+ assert('filtro level=error = 750', errors.length === 750);
87
+ // -- Filtro por rango de code --
88
+ const range_start = Date.now();
89
+ const range = await Log.where({ code: { $gte: 1000, $lt: 1100 } });
90
+ const range_time = Date.now() - range_start;
91
+ console.log(` Filtro code 1000-1099: ${range.length} registros en ${range_time}ms`);
92
+ assert('rango code 1000-1099 = 100', range.length === 100);
93
+ // -- Paginacion sobre 3000 --
94
+ const page = await Log.where({}, { order: { code: 'ASC' }, limit: 10, offset: 500 });
95
+ assert('paginacion offset=500 limit=10', page.length === 10);
96
+ assert('paginacion: primer item code=500', page[0].code === 500);
97
+ // -- First / Last sobre 3000 --
98
+ const first = await Log.first({}, { order: { code: 'ASC' } });
99
+ assert('first code=0', first?.code === 0);
100
+ const last = await Log.last({});
101
+ assert('last retorna un registro', last !== undefined);
102
+ console.log(`\n Bulk: ${passed} passed, ${failed} failed`);
103
+ return failed;
104
+ }
105
+ //# sourceMappingURL=bulk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../../src/test/bulk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function contracts(): Promise<number>;