@remix-run/data-table 0.0.0 → 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/LICENSE +21 -0
- package/README.md +298 -2
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/lib/adapter.d.ts +180 -0
- package/dist/lib/adapter.d.ts.map +1 -0
- package/dist/lib/adapter.js +1 -0
- package/dist/lib/database.d.ts +361 -0
- package/dist/lib/database.d.ts.map +1 -0
- package/dist/lib/database.js +1368 -0
- package/dist/lib/errors.d.ts +50 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +67 -0
- package/dist/lib/inflection.d.ts +3 -0
- package/dist/lib/inflection.d.ts.map +1 -0
- package/dist/lib/inflection.js +56 -0
- package/dist/lib/operators.d.ts +151 -0
- package/dist/lib/operators.d.ts.map +1 -0
- package/dist/lib/operators.js +218 -0
- package/dist/lib/references.d.ts +42 -0
- package/dist/lib/references.d.ts.map +1 -0
- package/dist/lib/references.js +33 -0
- package/dist/lib/sql.d.ts +28 -0
- package/dist/lib/sql.d.ts.map +1 -0
- package/dist/lib/sql.js +51 -0
- package/dist/lib/table.d.ts +254 -0
- package/dist/lib/table.d.ts.map +1 -0
- package/dist/lib/table.js +496 -0
- package/dist/lib/types.d.ts +4 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +1 -0
- package/package.json +41 -7
- package/src/index.ts +115 -0
- package/src/lib/adapter.ts +209 -0
- package/src/lib/database.ts +2458 -0
- package/src/lib/errors.ts +109 -0
- package/src/lib/inflection.ts +69 -0
- package/src/lib/operators.ts +433 -0
- package/src/lib/references.ts +79 -0
- package/src/lib/sql.ts +67 -0
- package/src/lib/table.ts +981 -0
- package/src/lib/types.ts +3 -0
package/src/lib/sql.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parameterized SQL payload with positional `?` placeholders.
|
|
3
|
+
*/
|
|
4
|
+
export type SqlStatement = {
|
|
5
|
+
text: string
|
|
6
|
+
values: unknown[]
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Tagged-template helper for building parameterized SQL statements.
|
|
11
|
+
* @param strings Template string parts.
|
|
12
|
+
* @param values Interpolated values or nested `SqlStatement` values.
|
|
13
|
+
* @returns A normalized SQL statement.
|
|
14
|
+
*/
|
|
15
|
+
export function sql(strings: TemplateStringsArray, ...values: unknown[]): SqlStatement {
|
|
16
|
+
let text = ''
|
|
17
|
+
let parameters: unknown[] = []
|
|
18
|
+
let index = 0
|
|
19
|
+
|
|
20
|
+
while (index < strings.length) {
|
|
21
|
+
text += strings[index]
|
|
22
|
+
|
|
23
|
+
if (index < values.length) {
|
|
24
|
+
let value = values[index]
|
|
25
|
+
|
|
26
|
+
if (isSqlStatement(value)) {
|
|
27
|
+
text += value.text
|
|
28
|
+
parameters.push(...value.values)
|
|
29
|
+
} else {
|
|
30
|
+
text += '?'
|
|
31
|
+
parameters.push(value)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
index += 1
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
text,
|
|
40
|
+
values: parameters,
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Returns `true` when a value matches the `SqlStatement` shape.
|
|
46
|
+
* @param value Value to inspect.
|
|
47
|
+
* @returns Whether the value is a SQL statement object.
|
|
48
|
+
*/
|
|
49
|
+
export function isSqlStatement(value: unknown): value is SqlStatement {
|
|
50
|
+
if (typeof value !== 'object' || value === null) {
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
let statement = value as { text?: unknown; values?: unknown }
|
|
55
|
+
|
|
56
|
+
return typeof statement.text === 'string' && Array.isArray(statement.values)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Creates a SQL statement from raw text and values.
|
|
61
|
+
* @param text SQL text containing `?` placeholders.
|
|
62
|
+
* @param values Placeholder values.
|
|
63
|
+
* @returns A normalized SQL statement.
|
|
64
|
+
*/
|
|
65
|
+
export function rawSql(text: string, values: unknown[] = []): SqlStatement {
|
|
66
|
+
return { text, values }
|
|
67
|
+
}
|