@tylix/orm 0.6.0 → 1.0.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.
- package/LICENSE +21 -0
- package/README.md +40 -15
- package/package.json +33 -6
- package/src/adapters/DatabaseAdapter.d.ts +6 -0
- package/src/adapters/DatabaseAdapter.js +20 -0
- package/src/adapters/MongoAdapter.js +11 -0
- package/src/adapters/MysqlAdapter.js +6 -0
- package/src/adapters/PostgresAdapter.js +8 -1
- package/src/adapters/SqliteAdapter.js +54 -1
- package/src/index.d.ts +3 -1
- package/src/index.js +3 -0
- package/src/instrumentation.d.ts +10 -0
- package/src/instrumentation.js +26 -0
- package/src/model/Model.d.ts +21 -0
- package/src/model/Model.js +39 -4
- package/src/model/observers.js +83 -0
- package/src/model/traits.d.ts +30 -0
- package/src/model/traits.js +61 -0
- package/src/adapters/AdapterFactory.test.js +0 -35
- package/src/adapters/MongoAdapter.test.js +0 -52
- package/src/adapters/MysqlAdapter.test.js +0 -36
- package/src/adapters/PostgresAdapter.test.js +0 -47
- package/src/adapters/SqliteAdapter.test.js +0 -39
- package/src/adapters/query.test.js +0 -60
- package/src/model/Model.paginate.test.js +0 -74
- package/src/model/Model.relations.test.js +0 -86
- package/src/model/Model.test.js +0 -91
- package/src/query/QueryBuilder.test.js +0 -82
- package/src/query/buildSelectSql.test.js +0 -58
- package/tsconfig.json +0 -14
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { test } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { buildSelectSql } from "./buildSelectSql.js";
|
|
4
|
-
|
|
5
|
-
test("builds a plain SELECT with no conditions", () => {
|
|
6
|
-
const { sql, params } = buildSelectSql("posts", {});
|
|
7
|
-
assert.equal(sql, "SELECT * FROM posts");
|
|
8
|
-
assert.deepEqual(params, []);
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
test("builds a WHERE clause with = operator", () => {
|
|
12
|
-
const { sql, params } = buildSelectSql("posts", {
|
|
13
|
-
wheres: [{ field: "status", operator: "=", value: "published" }],
|
|
14
|
-
});
|
|
15
|
-
assert.equal(sql, "SELECT * FROM posts WHERE status = ?");
|
|
16
|
-
assert.deepEqual(params, ["published"]);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test("builds multiple WHERE clauses joined by AND", () => {
|
|
20
|
-
const { sql, params } = buildSelectSql("posts", {
|
|
21
|
-
wheres: [
|
|
22
|
-
{ field: "status", operator: "=", value: "published" },
|
|
23
|
-
{ field: "views", operator: ">", value: 100 },
|
|
24
|
-
],
|
|
25
|
-
});
|
|
26
|
-
assert.equal(sql, "SELECT * FROM posts WHERE status = ? AND views > ?");
|
|
27
|
-
assert.deepEqual(params, ["published", 100]);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test("builds an ORDER BY clause", () => {
|
|
31
|
-
const { sql } = buildSelectSql("posts", {
|
|
32
|
-
orders: [{ field: "created_at", direction: "DESC" }],
|
|
33
|
-
});
|
|
34
|
-
assert.equal(sql, "SELECT * FROM posts ORDER BY created_at DESC");
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test("inlines LIMIT and OFFSET as validated integers, not placeholders", () => {
|
|
38
|
-
const { sql, params } = buildSelectSql("posts", { limitValue: 10, offsetValue: 20 });
|
|
39
|
-
assert.equal(sql, "SELECT * FROM posts LIMIT 10 OFFSET 20");
|
|
40
|
-
assert.deepEqual(params, []);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test("combines where, orderBy, and limit together", () => {
|
|
44
|
-
const { sql, params } = buildSelectSql("posts", {
|
|
45
|
-
wheres: [{ field: "status", operator: "=", value: "published" }],
|
|
46
|
-
orders: [{ field: "created_at", direction: "ASC" }],
|
|
47
|
-
limitValue: 5,
|
|
48
|
-
});
|
|
49
|
-
assert.equal(sql, "SELECT * FROM posts WHERE status = ? ORDER BY created_at ASC LIMIT 5");
|
|
50
|
-
assert.deepEqual(params, ["published"]);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test("throws on an unsupported operator", () => {
|
|
54
|
-
assert.throws(
|
|
55
|
-
() => buildSelectSql("posts", { wheres: [{ field: "x", operator: "LIKE", value: "y" }] }),
|
|
56
|
-
/Unsupported where operator/
|
|
57
|
-
);
|
|
58
|
-
});
|
package/tsconfig.json
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "ESNext",
|
|
5
|
-
"moduleResolution": "Bundler",
|
|
6
|
-
"allowJs": true,
|
|
7
|
-
"checkJs": false,
|
|
8
|
-
"declaration": false,
|
|
9
|
-
"noEmit": true,
|
|
10
|
-
"strict": true,
|
|
11
|
-
"types": ["node"]
|
|
12
|
-
},
|
|
13
|
-
"include": ["src/**/*"]
|
|
14
|
-
}
|