@m4rctr3y/reutjs 0.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.
package/dist/utils.js ADDED
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Build query string from query options
3
+ */
4
+ export function buildQueryString(options) {
5
+ const params = [];
6
+ // Select columns
7
+ if (options.select && options.select.length > 0) {
8
+ params.push(`select=${encodeURIComponent(options.select.join(','))}`);
9
+ }
10
+ // Eager load relationships
11
+ if (options.with && options.with.length > 0) {
12
+ params.push(`with=${encodeURIComponent(options.with.join(','))}`);
13
+ }
14
+ // Manual joins
15
+ if (options.joins && options.joins.length > 0) {
16
+ const joinStrings = options.joins.map(join => formatJoin(join));
17
+ params.push(`join=${encodeURIComponent(joinStrings.join('|'))}`);
18
+ }
19
+ // Where conditions
20
+ if (options.where) {
21
+ for (const [key, value] of Object.entries(options.where)) {
22
+ if (value === null || value === undefined) {
23
+ continue;
24
+ }
25
+ // Check if it's a relationship filter (contains dot)
26
+ if (key.includes('.')) {
27
+ // Relationship filter: user.name=John
28
+ params.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
29
+ }
30
+ else if (typeof value === 'object' && !Array.isArray(value)) {
31
+ // Operator-based filter: { eq: 'value', gt: 10 }
32
+ for (const [op, val] of Object.entries(value)) {
33
+ if (val !== null && val !== undefined) {
34
+ const operator = op;
35
+ if (Array.isArray(val)) {
36
+ // Handle array values for 'in' and 'nin' operators
37
+ params.push(`${encodeURIComponent(key)}.${operator}=${encodeURIComponent(val.join(','))}`);
38
+ }
39
+ else {
40
+ params.push(`${encodeURIComponent(key)}.${operator}=${encodeURIComponent(String(val))}`);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ else {
46
+ // Simple equality filter
47
+ if (Array.isArray(value)) {
48
+ params.push(`${encodeURIComponent(key)}.in=${encodeURIComponent(value.join(','))}`);
49
+ }
50
+ else {
51
+ params.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ // Pagination
57
+ if (options.page !== undefined) {
58
+ params.push(`page=${options.page}`);
59
+ }
60
+ if (options.limit !== undefined) {
61
+ params.push(`limit=${options.limit}`);
62
+ }
63
+ if (options.offset !== undefined) {
64
+ params.push(`offset=${options.offset}`);
65
+ }
66
+ // Ordering
67
+ if (options.orderBy) {
68
+ params.push(`orderBy=${encodeURIComponent(options.orderBy)}`);
69
+ if (options.order) {
70
+ params.push(`order=${options.order}`);
71
+ }
72
+ }
73
+ return params.length > 0 ? `?${params.join('&')}` : '';
74
+ }
75
+ /**
76
+ * Format join configuration to string
77
+ * Format: table:local_col=ref_col:type:alias
78
+ */
79
+ function formatJoin(join) {
80
+ const parts = [
81
+ join.table,
82
+ join.localColumn,
83
+ join.refColumn,
84
+ join.type || 'INNER',
85
+ join.alias || join.table.toLowerCase()
86
+ ];
87
+ return parts.join(':');
88
+ }
89
+ /**
90
+ * Parse response data
91
+ */
92
+ export function parseResponse(data) {
93
+ // If the response has a 'results' property, it's a paginated response
94
+ // Otherwise, return the data as-is
95
+ return data;
96
+ }
97
+ /**
98
+ * Check if response is an error
99
+ */
100
+ export function isErrorResponse(data) {
101
+ return data && (data.error || data.message);
102
+ }
103
+ /**
104
+ * Extract error message from response
105
+ */
106
+ export function extractErrorMessage(data) {
107
+ if (data.error) {
108
+ return data.error;
109
+ }
110
+ if (data.message) {
111
+ return data.message;
112
+ }
113
+ return 'Unknown error occurred';
114
+ }
115
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,iBAAiB;IACjB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,UAAU,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,QAAQ,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,eAAe;IACf,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,qDAAqD;YACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,sCAAsC;gBACtC,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,iDAAiD;gBACjD,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBACtC,MAAM,QAAQ,GAAG,EAAmB,CAAC;wBACrC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;4BACvB,mDAAmD;4BACnD,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;wBAC7F,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;wBAC3F,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,yBAAyB;gBACzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa;IACb,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW;IACX,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAgB;IAClC,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,KAAK;QACV,IAAI,CAAC,WAAW;QAChB,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,IAAI,IAAI,OAAO;QACpB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;KACvC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAI,IAAS;IACxC,sEAAsE;IACtE,mCAAmC;IACnC,OAAO,IAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAS;IACvC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAS;IAC3C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,OAAO,wBAAwB,CAAC;AAClC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@m4rctr3y/reutjs",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript/JavaScript client library for Reut backend API. Provides a type-safe, fluent API similar to Supabase's JavaScript client.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "dev": "tsc --watch",
11
+ "prepublishOnly": "npm run build"
12
+ },
13
+ "keywords": [
14
+ "reut",
15
+ "api",
16
+ "client",
17
+ "typescript",
18
+ "query-builder",
19
+ "rest",
20
+ "database",
21
+ "orm"
22
+ ],
23
+ "author": "",
24
+ "license": "MIT",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/m4rcTr3y/reutjs.git"
28
+ },
29
+ "bugs": {
30
+ "url": "https://github.com/m4rcTr3y/reutjs/issues"
31
+ },
32
+ "homepage": "https://github.com/m4rcTr3y/reutjs#readme",
33
+ "dependencies": {
34
+ "axios": "^1.6.0"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^20.10.0",
38
+ "typescript": "^5.3.0"
39
+ },
40
+ "peerDependencies": {
41
+ "axios": "^1.6.0"
42
+ },
43
+ "files": [
44
+ "dist",
45
+ "README.md"
46
+ ],
47
+ "engines": {
48
+ "node": ">=18.0.0"
49
+ }
50
+ }
51
+