@arcaelas/dynamite 1.0.1 → 1.0.2
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/build/index.d.ts +130 -0
- package/build/index.js +1 -1
- package/build/index.js.map +4 -4
- package/package.json +2 -2
- package/tsconfig.json +5 -5
- package/build/__tests__/crud.spec.d.ts +0 -1
- package/build/__tests__/crud.spec.js +0 -123
- package/build/__tests__/crud.spec.js.map +0 -1
- package/build/__tests__/decorators.spec.d.ts +0 -1
- package/build/__tests__/decorators.spec.js +0 -183
- package/build/__tests__/decorators.spec.js.map +0 -1
- package/build/__tests__/instance-crud.spec.d.ts +0 -1
- package/build/__tests__/instance-crud.spec.js +0 -82
- package/build/__tests__/instance-crud.spec.js.map +0 -1
- package/build/src/core/table.d.ts +0 -17
- package/build/src/core/table.js +0 -223
- package/build/src/core/table.js.map +0 -1
- package/build/src/core/wrapper.d.ts +0 -47
- package/build/src/core/wrapper.js +0 -57
- package/build/src/core/wrapper.js.map +0 -1
- package/build/src/decorators/created_at.d.ts +0 -4
- package/build/src/decorators/created_at.js +0 -22
- package/build/src/decorators/created_at.js.map +0 -1
- package/build/src/decorators/default.d.ts +0 -1
- package/build/src/decorators/default.js +0 -55
- package/build/src/decorators/default.js.map +0 -1
- package/build/src/decorators/index.d.ts +0 -1
- package/build/src/decorators/index.js +0 -24
- package/build/src/decorators/index.js.map +0 -1
- package/build/src/decorators/index_sort.d.ts +0 -1
- package/build/src/decorators/index_sort.js +0 -27
- package/build/src/decorators/index_sort.js.map +0 -1
- package/build/src/decorators/mutate.d.ts +0 -2
- package/build/src/decorators/mutate.js +0 -53
- package/build/src/decorators/mutate.js.map +0 -1
- package/build/src/decorators/name.d.ts +0 -1
- package/build/src/decorators/name.js +0 -41
- package/build/src/decorators/name.js.map +0 -1
- package/build/src/decorators/not_null.d.ts +0 -4
- package/build/src/decorators/not_null.js +0 -28
- package/build/src/decorators/not_null.js.map +0 -1
- package/build/src/decorators/primary_key.d.ts +0 -7
- package/build/src/decorators/primary_key.js +0 -30
- package/build/src/decorators/primary_key.js.map +0 -1
- package/build/src/decorators/updated_at.d.ts +0 -4
- package/build/src/decorators/updated_at.js +0 -23
- package/build/src/decorators/updated_at.js.map +0 -1
- package/build/src/decorators/validate.d.ts +0 -1
- package/build/src/decorators/validate.js +0 -54
- package/build/src/decorators/validate.js.map +0 -1
- package/build/src/index.d.ts +0 -11
- package/build/src/index.js +0 -31
- package/build/src/index.js.map +0 -1
- package/build/src/utils/naming.d.ts +0 -1
- package/build/src/utils/naming.js +0 -18
- package/build/src/utils/naming.js.map +0 -1
- package/build/tests/crud.spec.d.ts +0 -1
- package/build/tests/crud.spec.js +0 -123
- package/build/tests/crud.spec.js.map +0 -1
- package/build/tests/decorators.spec.d.ts +0 -1
- package/build/tests/decorators.spec.js +0 -183
- package/build/tests/decorators.spec.js.map +0 -1
- package/build/tests/instance-crud.spec.d.ts +0 -1
- package/build/tests/instance-crud.spec.js +0 -82
- package/build/tests/instance-crud.spec.js.map +0 -1
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* __tests__/decorators.spec.ts
|
|
3
|
-
* -----------------------------------------------------------
|
|
4
|
-
* Suite para verificar todos los decoradores Dinamite ORM.
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
23
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
24
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
25
|
-
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;
|
|
26
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
27
|
-
};
|
|
28
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
-
var ownKeys = function(o) {
|
|
30
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
-
var ar = [];
|
|
32
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
-
return ar;
|
|
34
|
-
};
|
|
35
|
-
return ownKeys(o);
|
|
36
|
-
};
|
|
37
|
-
return function (mod) {
|
|
38
|
-
if (mod && mod.__esModule) return mod;
|
|
39
|
-
var result = {};
|
|
40
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
-
__setModuleDefault(result, mod);
|
|
42
|
-
return result;
|
|
43
|
-
};
|
|
44
|
-
})();
|
|
45
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
46
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
47
|
-
};
|
|
48
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
49
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
50
|
-
};
|
|
51
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
const wrapper_1 = __importStar(require("../src/core/wrapper"));
|
|
53
|
-
const created_at_1 = __importDefault(require("../src/decorators/created_at"));
|
|
54
|
-
const default_1 = __importDefault(require("../src/decorators/default"));
|
|
55
|
-
const index_1 = __importDefault(require("../src/decorators/index"));
|
|
56
|
-
const index_sort_1 = __importDefault(require("../src/decorators/index_sort"));
|
|
57
|
-
const mutate_1 = __importDefault(require("../src/decorators/mutate"));
|
|
58
|
-
const name_1 = __importDefault(require("../src/decorators/name"));
|
|
59
|
-
const not_null_1 = __importDefault(require("../src/decorators/not_null"));
|
|
60
|
-
const primary_key_1 = __importDefault(require("../src/decorators/primary_key"));
|
|
61
|
-
const updated_at_1 = __importDefault(require("../src/decorators/updated_at"));
|
|
62
|
-
const validate_1 = __importDefault(require("../src/decorators/validate"));
|
|
63
|
-
describe("Decoradores Dinamite ORM", () => {
|
|
64
|
-
beforeEach(() => wrapper_1.default.clear());
|
|
65
|
-
/* ---------------------------------------------------------- */
|
|
66
|
-
it("nombre de tabla por defecto (snake_plural) cuando no se usa @Name", () => {
|
|
67
|
-
class Book {
|
|
68
|
-
}
|
|
69
|
-
__decorate([
|
|
70
|
-
(0, not_null_1.default)(),
|
|
71
|
-
__metadata("design:type", String)
|
|
72
|
-
], Book.prototype, "title", void 0);
|
|
73
|
-
const meta = wrapper_1.default.get(Book);
|
|
74
|
-
expect(meta.name).toBe("books"); // Book → books
|
|
75
|
-
});
|
|
76
|
-
/* ---------------------------------------------------------- */
|
|
77
|
-
it("@Name (clase y propiedad)", () => {
|
|
78
|
-
let User = class User {
|
|
79
|
-
};
|
|
80
|
-
__decorate([
|
|
81
|
-
(0, name_1.default)("correo"),
|
|
82
|
-
__metadata("design:type", String)
|
|
83
|
-
], User.prototype, "email", void 0);
|
|
84
|
-
User = __decorate([
|
|
85
|
-
(0, name_1.default)("usuarios")
|
|
86
|
-
], User);
|
|
87
|
-
const meta = wrapper_1.default.get(User);
|
|
88
|
-
expect(meta.name).toBe("usuarios");
|
|
89
|
-
expect(meta.columns.get("email").name).toBe("correo");
|
|
90
|
-
});
|
|
91
|
-
/* ---------------------------------------------------------- */
|
|
92
|
-
it("@Index + @IndexSort (PK + SK)", () => {
|
|
93
|
-
class Post {
|
|
94
|
-
}
|
|
95
|
-
__decorate([
|
|
96
|
-
(0, index_1.default)() // Partition Key
|
|
97
|
-
,
|
|
98
|
-
__metadata("design:type", String)
|
|
99
|
-
], Post.prototype, "slug", void 0);
|
|
100
|
-
__decorate([
|
|
101
|
-
(0, index_sort_1.default)() // Sort Key
|
|
102
|
-
,
|
|
103
|
-
__metadata("design:type", String)
|
|
104
|
-
], Post.prototype, "created", void 0);
|
|
105
|
-
const meta = wrapper_1.default.get(Post);
|
|
106
|
-
const pkCol = meta.columns.get("slug");
|
|
107
|
-
const skCol = meta.columns.get("created");
|
|
108
|
-
expect(pkCol.index).toBe(true);
|
|
109
|
-
expect(skCol.indexSort).toBe(true);
|
|
110
|
-
});
|
|
111
|
-
/* ---------------------------------------------------------- */
|
|
112
|
-
it("@PrimaryKey (combinado)", () => {
|
|
113
|
-
class Comment {
|
|
114
|
-
}
|
|
115
|
-
__decorate([
|
|
116
|
-
(0, primary_key_1.default)(),
|
|
117
|
-
__metadata("design:type", String)
|
|
118
|
-
], Comment.prototype, "id", void 0);
|
|
119
|
-
const meta = wrapper_1.default.get(Comment);
|
|
120
|
-
const col = meta.columns.get("id");
|
|
121
|
-
expect(col.index).toBe(true);
|
|
122
|
-
expect(col.indexSort).toBe(true);
|
|
123
|
-
});
|
|
124
|
-
/* ---------------------------------------------------------- */
|
|
125
|
-
it("@Default + @Mutate + @Validate pipeline", () => {
|
|
126
|
-
let Model = class Model {
|
|
127
|
-
};
|
|
128
|
-
__decorate([
|
|
129
|
-
(0, default_1.default)(() => 10),
|
|
130
|
-
(0, mutate_1.default)((v) => v * 2),
|
|
131
|
-
(0, validate_1.default)((v) => (v >= 20 ? true : "menor a 20")),
|
|
132
|
-
__metadata("design:type", Number)
|
|
133
|
-
], Model.prototype, "score", void 0);
|
|
134
|
-
Model = __decorate([
|
|
135
|
-
(0, name_1.default)("tests")
|
|
136
|
-
], Model);
|
|
137
|
-
const m = new Model();
|
|
138
|
-
m.score = undefined; // dispara pipeline
|
|
139
|
-
expect(m.score).toBe(20);
|
|
140
|
-
expect(m[wrapper_1.STORE].score).toBe(20);
|
|
141
|
-
expect(() => {
|
|
142
|
-
m.score = 5;
|
|
143
|
-
}).toThrow("menor a 20");
|
|
144
|
-
});
|
|
145
|
-
/* ---------------------------------------------------------- */
|
|
146
|
-
it("@NotNull rechaza null/undefined/cadena vacía", () => {
|
|
147
|
-
class File {
|
|
148
|
-
}
|
|
149
|
-
__decorate([
|
|
150
|
-
(0, not_null_1.default)(),
|
|
151
|
-
__metadata("design:type", String)
|
|
152
|
-
], File.prototype, "path", void 0);
|
|
153
|
-
const f = new File();
|
|
154
|
-
expect(() => (f.path = null)).toThrow();
|
|
155
|
-
expect(() => (f.path = " ")).toThrow();
|
|
156
|
-
f.path = "/tmp/file";
|
|
157
|
-
expect(f.path).toBe("/tmp/file");
|
|
158
|
-
});
|
|
159
|
-
/* ---------------------------------------------------------- */
|
|
160
|
-
it("@CreatedAt y @UpdatedAt gestionan timestamps", () => {
|
|
161
|
-
class Audit {
|
|
162
|
-
}
|
|
163
|
-
__decorate([
|
|
164
|
-
(0, created_at_1.default)(),
|
|
165
|
-
__metadata("design:type", String)
|
|
166
|
-
], Audit.prototype, "created", void 0);
|
|
167
|
-
__decorate([
|
|
168
|
-
(0, updated_at_1.default)(),
|
|
169
|
-
__metadata("design:type", String)
|
|
170
|
-
], Audit.prototype, "updated", void 0);
|
|
171
|
-
const a = new Audit();
|
|
172
|
-
a.created = undefined;
|
|
173
|
-
a.updated = undefined;
|
|
174
|
-
const firstCreated = a.created;
|
|
175
|
-
const firstUpdated = a.updated;
|
|
176
|
-
return new Promise((r) => setTimeout(r, 10)).then(() => {
|
|
177
|
-
a.updated = undefined;
|
|
178
|
-
expect(a.created).toBe(firstCreated);
|
|
179
|
-
expect(a.updated).not.toBe(firstUpdated);
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
});
|
|
183
|
-
//# sourceMappingURL=decorators.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.spec.js","sourceRoot":"","sources":["../../tests/decorators.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
/* __tests__/instance-crud.spec.ts
|
|
13
|
-
* ------------------------------------------------------------------
|
|
14
|
-
* CRUD usando métodos de **instancia** de Dinamite ORM con DynamoDB Local.
|
|
15
|
-
* Se asume que DynamoDB Local está corriendo en http://localhost:7007.
|
|
16
|
-
* ------------------------------------------------------------------ */
|
|
17
|
-
const src_1 = require("../src");
|
|
18
|
-
// ---------- conexión DynamoDB Local ----------
|
|
19
|
-
beforeAll(() => (0, src_1.connect)({
|
|
20
|
-
region: "local",
|
|
21
|
-
endpoint: "http://localhost:7007",
|
|
22
|
-
credentials: { accessKeyId: "x", secretAccessKey: "x" },
|
|
23
|
-
}));
|
|
24
|
-
// ---------- Modelo de prueba ----------
|
|
25
|
-
let User = class User extends src_1.Table {
|
|
26
|
-
};
|
|
27
|
-
__decorate([
|
|
28
|
-
(0, src_1.PrimaryKey)(),
|
|
29
|
-
__metadata("design:type", String)
|
|
30
|
-
], User.prototype, "id", void 0);
|
|
31
|
-
__decorate([
|
|
32
|
-
(0, src_1.NotNull)() // ← registra la columna en el wrapper
|
|
33
|
-
,
|
|
34
|
-
__metadata("design:type", String)
|
|
35
|
-
], User.prototype, "email", void 0);
|
|
36
|
-
__decorate([
|
|
37
|
-
(0, src_1.CreatedAt)(),
|
|
38
|
-
__metadata("design:type", String)
|
|
39
|
-
], User.prototype, "created", void 0);
|
|
40
|
-
__decorate([
|
|
41
|
-
(0, src_1.UpdatedAt)(),
|
|
42
|
-
__metadata("design:type", String)
|
|
43
|
-
], User.prototype, "updated", void 0);
|
|
44
|
-
User = __decorate([
|
|
45
|
-
(0, src_1.Name)("users")
|
|
46
|
-
], User);
|
|
47
|
-
describe("CRUD Dinamite ORM – instancia", () => {
|
|
48
|
-
it("where() antes de existir la tabla → []", async () => {
|
|
49
|
-
const rows = await User.where();
|
|
50
|
-
expect(rows).toEqual([]);
|
|
51
|
-
});
|
|
52
|
-
it("save() → crea, update() → modifica, destroy() → elimina", async () => {
|
|
53
|
-
/* ---------- save (create) ---------- */
|
|
54
|
-
const u = new User({ id: "u1", email: "a@b.com" });
|
|
55
|
-
await u.save();
|
|
56
|
-
let rows = await User.where();
|
|
57
|
-
expect(rows).toHaveLength(1);
|
|
58
|
-
expect(rows[0].email).toBe("a@b.com");
|
|
59
|
-
const firstCreated = rows[0].created;
|
|
60
|
-
const firstUpdated = rows[0].updated;
|
|
61
|
-
/* ---------- update ---------- */
|
|
62
|
-
await u.update({ email: "c@d.com" });
|
|
63
|
-
rows = await User.where();
|
|
64
|
-
expect(rows[0].email).toBe("c@d.com");
|
|
65
|
-
expect(rows[0].updated).not.toBe(firstUpdated);
|
|
66
|
-
expect(rows[0].created).toBe(firstCreated);
|
|
67
|
-
/* ---------- destroy ---------- */
|
|
68
|
-
await u.destroy();
|
|
69
|
-
rows = await User.where();
|
|
70
|
-
expect(rows).toEqual([]);
|
|
71
|
-
});
|
|
72
|
-
it("la tabla realmente contiene el ítem mientras existe", async () => {
|
|
73
|
-
const u = new User({ id: "u2", email: "real@test.com" });
|
|
74
|
-
await u.save();
|
|
75
|
-
let rows = await User.where();
|
|
76
|
-
expect(rows.map((x) => x.id)).toContain("u2");
|
|
77
|
-
await u.destroy();
|
|
78
|
-
rows = await User.where();
|
|
79
|
-
expect(rows.map((x) => x.id)).not.toContain("u2");
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
//# sourceMappingURL=instance-crud.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instance-crud.spec.js","sourceRoot":"","sources":["../../tests/instance-crud.spec.ts"],"names":[],"mappings":"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"}
|