@kronor/dtv 4.1.0 → 5.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/README.md +6 -0
- package/bin/dtv.js +24 -0
- package/dist/assets/{index-fwXiEkID.js → index-BCuRRUo9.js} +1 -1
- package/dist/cli/dtv.js +512 -0
- package/dist/cli/dtv.js.map +1 -0
- package/dist/cli/typegen/schemaToTs.js +163 -0
- package/dist/cli/typegen/schemaToTs.js.map +1 -0
- package/dist/index.es.js +39 -34
- package/dist/index.html +1 -1
- package/dist/types/cli/dtv.d.ts +2 -0
- package/dist/types/cli/dtv.d.ts.map +1 -0
- package/dist/types/cli/typegen/schemaToTs.d.ts +13 -0
- package/dist/types/cli/typegen/schemaToTs.d.ts.map +1 -0
- package/dist/types/dsl/columns.d.ts +50 -23
- package/dist/types/dsl/columns.d.ts.map +1 -1
- package/dist/types/dsl/internal/queryForRow.d.ts +42 -0
- package/dist/types/dsl/internal/queryForRow.d.ts.map +1 -0
- package/dist/types/framework/column-definition.d.ts +205 -24
- package/dist/types/framework/column-definition.d.ts.map +1 -1
- package/dist/types/framework/hasura.d.ts +2 -2
- package/dist/types/framework/hasura.d.ts.map +1 -1
- package/dist/types/framework/native-runtime/index.d.ts +2 -2
- package/dist/types/framework/typelevel.d.ts +6 -0
- package/dist/types/framework/typelevel.d.ts.map +1 -0
- package/dist/types/lib/index.d.ts +2 -0
- package/dist/types/lib/index.d.ts.map +1 -1
- package/dist/types/typegen/index.d.ts +27 -0
- package/dist/types/typegen/index.d.ts.map +1 -0
- package/docs/typegen.md +86 -0
- package/package.json +18 -5
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { getNamedType, isEnumType, isInterfaceType, isInputObjectType, isListType, isNonNullType, isObjectType, isScalarType, isUnionType } from 'graphql';
|
|
2
|
+
function safePropKey(key) {
|
|
3
|
+
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(key) ? key : JSON.stringify(key);
|
|
4
|
+
}
|
|
5
|
+
export function unwrapCollectionElementType(fieldType) {
|
|
6
|
+
// fieldType is usually [T!]! or [T!] etc. We want T.
|
|
7
|
+
let t = fieldType;
|
|
8
|
+
while (isNonNullType(t))
|
|
9
|
+
t = t.ofType;
|
|
10
|
+
if (isListType(t)) {
|
|
11
|
+
t = t.ofType;
|
|
12
|
+
while (isNonNullType(t))
|
|
13
|
+
t = t.ofType;
|
|
14
|
+
return getNamedType(t);
|
|
15
|
+
}
|
|
16
|
+
return getNamedType(t);
|
|
17
|
+
}
|
|
18
|
+
export function collectReachableTypes(_schema, roots) {
|
|
19
|
+
const queue = [...roots];
|
|
20
|
+
const seen = new Set();
|
|
21
|
+
const add = (t) => {
|
|
22
|
+
if (t.name.startsWith('__'))
|
|
23
|
+
return;
|
|
24
|
+
if (seen.has(t.name))
|
|
25
|
+
return;
|
|
26
|
+
seen.add(t.name);
|
|
27
|
+
queue.push(t);
|
|
28
|
+
};
|
|
29
|
+
for (const r of roots) {
|
|
30
|
+
if (!r.name.startsWith('__'))
|
|
31
|
+
seen.add(r.name);
|
|
32
|
+
}
|
|
33
|
+
const out = [];
|
|
34
|
+
while (queue.length) {
|
|
35
|
+
const t = queue.shift();
|
|
36
|
+
out.push(t);
|
|
37
|
+
if (isObjectType(t) || isInterfaceType(t)) {
|
|
38
|
+
const fields = t.getFields();
|
|
39
|
+
for (const field of Object.values(fields)) {
|
|
40
|
+
const named = getNamedType(field.type);
|
|
41
|
+
add(named);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else if (isUnionType(t)) {
|
|
45
|
+
for (const possible of t.getTypes())
|
|
46
|
+
add(possible);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return out.sort((a, b) => a.name.localeCompare(b.name));
|
|
50
|
+
}
|
|
51
|
+
export function renderTsFromSchema(types, options) {
|
|
52
|
+
const scalarMap = {
|
|
53
|
+
ID: 'string',
|
|
54
|
+
String: 'string',
|
|
55
|
+
Boolean: 'boolean',
|
|
56
|
+
Int: 'number',
|
|
57
|
+
Float: 'number',
|
|
58
|
+
json: 'any',
|
|
59
|
+
jsonb: 'any',
|
|
60
|
+
date: 'string',
|
|
61
|
+
timestamptz: 'string',
|
|
62
|
+
timestamp: 'string',
|
|
63
|
+
uuid: 'string',
|
|
64
|
+
...(options?.scalars ?? {})
|
|
65
|
+
};
|
|
66
|
+
const renderGraphqlTypeRef = (t) => {
|
|
67
|
+
if (isNonNullType(t))
|
|
68
|
+
return `${renderGraphqlTypeRef(t.ofType)}!`;
|
|
69
|
+
if (isListType(t))
|
|
70
|
+
return `[${renderGraphqlTypeRef(t.ofType)}]`;
|
|
71
|
+
return getNamedType(t).name;
|
|
72
|
+
};
|
|
73
|
+
const renderTypeRef = (t) => {
|
|
74
|
+
if (!isNonNullType(t)) {
|
|
75
|
+
return `${renderTypeRefNonNull(t)} | null`;
|
|
76
|
+
}
|
|
77
|
+
return renderTypeRefNonNull(t.ofType);
|
|
78
|
+
};
|
|
79
|
+
const renderTypeRefNonNull = (t) => {
|
|
80
|
+
if (isNonNullType(t))
|
|
81
|
+
return renderTypeRefNonNull(t.ofType);
|
|
82
|
+
if (isListType(t))
|
|
83
|
+
return `Array<${renderTypeRef(t.ofType)}>`;
|
|
84
|
+
const named = getNamedType(t);
|
|
85
|
+
if (isScalarType(named)) {
|
|
86
|
+
return scalarMap[named.name] ?? 'unknown';
|
|
87
|
+
}
|
|
88
|
+
return named.name;
|
|
89
|
+
};
|
|
90
|
+
const includeGraphqlTypeComments = options?.includeGraphqlTypeComments === true;
|
|
91
|
+
const exportTypes = options?.exportTypes !== false;
|
|
92
|
+
const typePrefix = exportTypes ? 'export type' : 'type';
|
|
93
|
+
const chunks = [];
|
|
94
|
+
chunks.push('/* eslint-disable @typescript-eslint/no-unused-vars */');
|
|
95
|
+
chunks.push('// This file is auto-generated by `dtv typegen`.');
|
|
96
|
+
chunks.push('// Do not edit manually.');
|
|
97
|
+
chunks.push('');
|
|
98
|
+
for (const t of types) {
|
|
99
|
+
const typeName = t.name;
|
|
100
|
+
if (t.name.startsWith('__'))
|
|
101
|
+
continue;
|
|
102
|
+
if (isScalarType(t)) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (isEnumType(t)) {
|
|
106
|
+
const values = t.getValues().map(v => JSON.stringify(v.name)).join(' | ');
|
|
107
|
+
chunks.push(`${typePrefix} ${typeName} = ${values || 'never'};`);
|
|
108
|
+
chunks.push('');
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (isUnionType(t)) {
|
|
112
|
+
const members = t.getTypes().map(m => m.name).join(' | ');
|
|
113
|
+
chunks.push(`${typePrefix} ${typeName} = ${members || 'never'};`);
|
|
114
|
+
chunks.push('');
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (isObjectType(t) || isInterfaceType(t)) {
|
|
118
|
+
const fields = t.getFields();
|
|
119
|
+
const lines = [];
|
|
120
|
+
for (const field of Object.values(fields)) {
|
|
121
|
+
if (field.name.startsWith('__'))
|
|
122
|
+
continue;
|
|
123
|
+
const key = safePropKey(field.name);
|
|
124
|
+
const tsType = renderTypeRef(field.type);
|
|
125
|
+
if (includeGraphqlTypeComments) {
|
|
126
|
+
lines.push(` ${key}: ${tsType}; // GraphQL: ${renderGraphqlTypeRef(field.type)}`);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
lines.push(` ${key}: ${tsType};`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
chunks.push(`${typePrefix} ${typeName} = {`);
|
|
133
|
+
chunks.push(...lines);
|
|
134
|
+
chunks.push('};');
|
|
135
|
+
chunks.push('');
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if (isInputObjectType(t)) {
|
|
139
|
+
// Not expected in reachable output types, but keep deterministic behavior.
|
|
140
|
+
const fields = t.getFields();
|
|
141
|
+
const lines = [];
|
|
142
|
+
for (const field of Object.values(fields)) {
|
|
143
|
+
const key = safePropKey(field.name);
|
|
144
|
+
const tsType = renderTypeRef(field.type);
|
|
145
|
+
if (includeGraphqlTypeComments) {
|
|
146
|
+
lines.push(` ${key}: ${tsType}; // GraphQL: ${renderGraphqlTypeRef(field.type)}`);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
lines.push(` ${key}: ${tsType};`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
chunks.push(`${typePrefix} ${typeName} = {`);
|
|
153
|
+
chunks.push(...lines);
|
|
154
|
+
chunks.push('};');
|
|
155
|
+
chunks.push('');
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
chunks.push(`${typePrefix} ${typeName} = unknown;`);
|
|
159
|
+
chunks.push('');
|
|
160
|
+
}
|
|
161
|
+
return chunks.join('\n');
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=schemaToTs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaToTs.js","sourceRoot":"","sources":["../../../src/cli/typegen/schemaToTs.ts"],"names":[],"mappings":"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"}
|
package/dist/index.es.js
CHANGED
|
@@ -33678,30 +33678,33 @@ const Ll = {
|
|
|
33678
33678
|
autocomplete: (e) => ({ type: "autocomplete", ...e }),
|
|
33679
33679
|
custom: (e, r) => ({ type: "custom", component: e, ...r })
|
|
33680
33680
|
};
|
|
33681
|
-
function IC(
|
|
33681
|
+
function IC() {
|
|
33682
|
+
}
|
|
33683
|
+
function PC(e) {
|
|
33684
|
+
const { rowType: r, ...t } = e;
|
|
33682
33685
|
return {
|
|
33683
33686
|
type: "tableColumn",
|
|
33684
|
-
id:
|
|
33685
|
-
name:
|
|
33686
|
-
data:
|
|
33687
|
-
cellRenderer:
|
|
33687
|
+
id: t.id,
|
|
33688
|
+
name: t.name,
|
|
33689
|
+
data: t.data,
|
|
33690
|
+
cellRenderer: t.cellRenderer
|
|
33688
33691
|
};
|
|
33689
33692
|
}
|
|
33690
|
-
function
|
|
33693
|
+
function DC(e) {
|
|
33691
33694
|
return {
|
|
33692
33695
|
type: "virtualColumn",
|
|
33693
33696
|
id: e.id,
|
|
33694
33697
|
data: e.data
|
|
33695
33698
|
};
|
|
33696
33699
|
}
|
|
33697
|
-
function
|
|
33700
|
+
function RC(e) {
|
|
33698
33701
|
return {
|
|
33699
33702
|
type: "valueQuery",
|
|
33700
33703
|
field: e.field,
|
|
33701
33704
|
...e.path !== void 0 ? { path: e.path } : {}
|
|
33702
33705
|
};
|
|
33703
33706
|
}
|
|
33704
|
-
function
|
|
33707
|
+
function kC(e) {
|
|
33705
33708
|
return {
|
|
33706
33709
|
type: "objectQuery",
|
|
33707
33710
|
field: e.field,
|
|
@@ -33709,7 +33712,7 @@ function RC(e) {
|
|
|
33709
33712
|
...e.path !== void 0 ? { path: e.path } : {}
|
|
33710
33713
|
};
|
|
33711
33714
|
}
|
|
33712
|
-
function
|
|
33715
|
+
function TC(e) {
|
|
33713
33716
|
return {
|
|
33714
33717
|
type: "arrayQuery",
|
|
33715
33718
|
field: e.field,
|
|
@@ -33724,33 +33727,33 @@ function kC(e) {
|
|
|
33724
33727
|
function ko(e, r) {
|
|
33725
33728
|
return { section: e, key: r };
|
|
33726
33729
|
}
|
|
33727
|
-
function
|
|
33730
|
+
function NC(e) {
|
|
33728
33731
|
return ko("cellRenderers", e);
|
|
33729
33732
|
}
|
|
33730
|
-
function
|
|
33733
|
+
function MC(e) {
|
|
33731
33734
|
return ko("noRowsComponents", e);
|
|
33732
33735
|
}
|
|
33733
|
-
function
|
|
33736
|
+
function FC(e) {
|
|
33734
33737
|
return ko("customFilterComponents", e);
|
|
33735
33738
|
}
|
|
33736
|
-
function
|
|
33739
|
+
function AC(e) {
|
|
33737
33740
|
return ko("queryTransforms", e);
|
|
33738
33741
|
}
|
|
33739
|
-
function
|
|
33742
|
+
function _C(e) {
|
|
33740
33743
|
return ko("initialValues", e);
|
|
33741
33744
|
}
|
|
33742
|
-
const
|
|
33745
|
+
const jC = {
|
|
33743
33746
|
and: (...e) => ({ and: e }),
|
|
33744
33747
|
or: (...e) => ({ or: e })
|
|
33745
33748
|
};
|
|
33746
|
-
function
|
|
33749
|
+
function LC(e) {
|
|
33747
33750
|
return {
|
|
33748
33751
|
name: e.name,
|
|
33749
33752
|
label: e.label,
|
|
33750
33753
|
filters: e.filters
|
|
33751
33754
|
};
|
|
33752
33755
|
}
|
|
33753
|
-
function
|
|
33756
|
+
function $C(e) {
|
|
33754
33757
|
return {
|
|
33755
33758
|
id: e.id,
|
|
33756
33759
|
label: e.label,
|
|
@@ -33772,7 +33775,7 @@ function hp(e, r, t) {
|
|
|
33772
33775
|
n.set(s, i);
|
|
33773
33776
|
}
|
|
33774
33777
|
}
|
|
33775
|
-
function
|
|
33778
|
+
function BC(e) {
|
|
33776
33779
|
hp(e.columnDefinitions, (t) => t.id, {
|
|
33777
33780
|
context: `view("${e.id}") columnDefinitions`,
|
|
33778
33781
|
keyName: "id"
|
|
@@ -33783,31 +33786,32 @@ function $C(e) {
|
|
|
33783
33786
|
keyName: "id"
|
|
33784
33787
|
}), e;
|
|
33785
33788
|
}
|
|
33786
|
-
const
|
|
33789
|
+
const zC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
33787
33790
|
__proto__: null,
|
|
33788
33791
|
CellRenderer: zm,
|
|
33789
33792
|
FilterControl: OC,
|
|
33790
33793
|
FilterExpr: Ll,
|
|
33791
|
-
arrayQuery:
|
|
33792
|
-
cellRendererRef:
|
|
33793
|
-
column:
|
|
33794
|
-
customFilterComponentRef:
|
|
33795
|
-
filter:
|
|
33796
|
-
filterField:
|
|
33797
|
-
filterGroup:
|
|
33798
|
-
initialValueRef:
|
|
33799
|
-
noRowsComponentRef:
|
|
33800
|
-
objectQuery:
|
|
33801
|
-
queryTransformRef:
|
|
33794
|
+
arrayQuery: TC,
|
|
33795
|
+
cellRendererRef: NC,
|
|
33796
|
+
column: PC,
|
|
33797
|
+
customFilterComponentRef: FC,
|
|
33798
|
+
filter: $C,
|
|
33799
|
+
filterField: jC,
|
|
33800
|
+
filterGroup: LC,
|
|
33801
|
+
initialValueRef: _C,
|
|
33802
|
+
noRowsComponentRef: MC,
|
|
33803
|
+
objectQuery: kC,
|
|
33804
|
+
queryTransformRef: AC,
|
|
33805
|
+
rowType: IC,
|
|
33802
33806
|
runtimeRef: ko,
|
|
33803
|
-
valueQuery:
|
|
33804
|
-
view:
|
|
33805
|
-
virtualColumn:
|
|
33807
|
+
valueQuery: RC,
|
|
33808
|
+
view: BC,
|
|
33809
|
+
virtualColumn: DC
|
|
33806
33810
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
33807
33811
|
export {
|
|
33808
33812
|
xC as App,
|
|
33809
33813
|
zm as CellRenderer,
|
|
33810
|
-
|
|
33814
|
+
zC as DSL,
|
|
33811
33815
|
OC as FilterControl,
|
|
33812
33816
|
Ll as FilterExpr,
|
|
33813
33817
|
k0 as FilterTransform,
|
|
@@ -33817,5 +33821,6 @@ export {
|
|
|
33817
33821
|
Kc as isFailure,
|
|
33818
33822
|
is as isSuccess,
|
|
33819
33823
|
Rv as renderGraphQLQuery,
|
|
33824
|
+
IC as rowType,
|
|
33820
33825
|
Ti as success
|
|
33821
33826
|
};
|
package/dist/index.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/portal/static/assets/table-views/vite.svg" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
8
|
<title>Filters Demo</title>
|
|
9
|
-
<script type="module" crossorigin src="/portal/static/assets/table-views/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/portal/static/assets/table-views/assets/index-BCuRRUo9.js"></script>
|
|
10
10
|
<link rel="stylesheet" crossorigin href="/portal/static/assets/table-views/assets/index-8FxkZzYn.css">
|
|
11
11
|
</head>
|
|
12
12
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtv.d.ts","sourceRoot":"","sources":["../../../src/cli/dtv.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type GraphQLNamedType, type GraphQLSchema, type GraphQLType } from 'graphql';
|
|
2
|
+
export declare function unwrapCollectionElementType(fieldType: GraphQLType): GraphQLNamedType;
|
|
3
|
+
export declare function collectReachableTypes(_schema: GraphQLSchema, roots: GraphQLNamedType[]): GraphQLNamedType[];
|
|
4
|
+
export declare function renderTsFromSchema(types: GraphQLNamedType[], options?: {
|
|
5
|
+
scalars?: Record<string, string>;
|
|
6
|
+
includeGraphqlTypeComments?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* When true (default), emit `export type ...` declarations.
|
|
9
|
+
* When false, emit local `type ...` declarations.
|
|
10
|
+
*/
|
|
11
|
+
exportTypes?: boolean;
|
|
12
|
+
}): string;
|
|
13
|
+
//# sourceMappingURL=schemaToTs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaToTs.d.ts","sourceRoot":"","sources":["../../../../src/cli/typegen/schemaToTs.ts"],"names":[],"mappings":"AAAA,OAAO,EAUH,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,EACnB,MAAM,SAAS,CAAC;AAMjB,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,WAAW,GAAG,gBAAgB,CAUpF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAiC3G;AAED,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,gBAAgB,EAAE,EACzB,OAAO,CAAC,EAAE;IACN,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,GACF,MAAM,CAqHR"}
|
|
@@ -5,53 +5,80 @@
|
|
|
5
5
|
* and provide a concise, ergonomic way to build column definitions while
|
|
6
6
|
* retaining full type safety.
|
|
7
7
|
*/
|
|
8
|
-
import { type FieldQuery, type TableColumnDefinition, type VirtualColumnDefinition, type CellRenderer, type Query, type OrderByConfig, type ValueQuery, type ObjectQuery, type ArrayQuery } from "../framework/column-definition";
|
|
8
|
+
import { type FieldQuery, type DataFromFieldQueriesSafe, type DataFromFieldQueriesForRowSafe, type FieldQueryForRowSafe, type TableColumnDefinition, type VirtualColumnDefinition, type CellRenderer, type Query, type OrderByConfig, type ValueQuery, type ObjectQuery, type ArrayQuery } from "../framework/column-definition";
|
|
9
9
|
import type { HasuraCondition } from '../framework/graphql';
|
|
10
|
+
/**
|
|
11
|
+
* Produces a phantom value used for type inference.
|
|
12
|
+
*
|
|
13
|
+
* Typical usage:
|
|
14
|
+
*
|
|
15
|
+
* column({
|
|
16
|
+
* rowType: rowType<MyFullRow>(),
|
|
17
|
+
* ...
|
|
18
|
+
* })
|
|
19
|
+
*/
|
|
20
|
+
export declare function rowType<Row>(): Row;
|
|
10
21
|
/**
|
|
11
22
|
* Creates a renderable table column definition.
|
|
12
|
-
* Convenience wrapper
|
|
23
|
+
* Convenience wrapper around the underlying TableColumnDefinition type.
|
|
13
24
|
*/
|
|
14
|
-
export declare function column(args: {
|
|
25
|
+
export declare function column<Row, const FieldQueries extends readonly FieldQuery[]>(args: {
|
|
26
|
+
rowType: Row;
|
|
27
|
+
id: string;
|
|
28
|
+
name: string;
|
|
29
|
+
data: FieldQueries & readonly FieldQueryForRowSafe<Row>[];
|
|
30
|
+
cellRenderer: CellRenderer<DataFromFieldQueriesForRowSafe<Row, FieldQueries>>;
|
|
31
|
+
}): TableColumnDefinition<FieldQueries, DataFromFieldQueriesForRowSafe<Row, FieldQueries>>;
|
|
32
|
+
export declare function column<const FieldQueries extends readonly FieldQuery[]>(args: {
|
|
33
|
+
rowType?: never;
|
|
15
34
|
id: string;
|
|
16
35
|
name: string;
|
|
17
|
-
data:
|
|
18
|
-
cellRenderer: CellRenderer
|
|
19
|
-
}): TableColumnDefinition
|
|
36
|
+
data: FieldQueries;
|
|
37
|
+
cellRenderer: CellRenderer<DataFromFieldQueriesSafe<FieldQueries>>;
|
|
38
|
+
}): TableColumnDefinition<FieldQueries>;
|
|
20
39
|
/**
|
|
21
|
-
* Creates a data-only virtual column definition. Convenience wrapper
|
|
22
|
-
*
|
|
40
|
+
* Creates a data-only virtual column definition. Convenience wrapper around
|
|
41
|
+
* the underlying VirtualColumnDefinition type.
|
|
23
42
|
*/
|
|
24
|
-
export declare function virtualColumn(args: {
|
|
43
|
+
export declare function virtualColumn<const FieldQueries extends readonly FieldQuery[]>(args: {
|
|
25
44
|
id: string;
|
|
26
|
-
data:
|
|
27
|
-
}): VirtualColumnDefinition
|
|
45
|
+
data: FieldQueries;
|
|
46
|
+
}): VirtualColumnDefinition<FieldQueries>;
|
|
28
47
|
/**
|
|
29
48
|
* Creates a ValueQuery (scalar field) definition.
|
|
30
49
|
*/
|
|
31
|
-
export declare function valueQuery(args: {
|
|
32
|
-
field:
|
|
50
|
+
export declare function valueQuery<const Field extends string>(args: {
|
|
51
|
+
field: Field;
|
|
33
52
|
path?: string;
|
|
34
|
-
}): ValueQuery
|
|
53
|
+
}): ValueQuery & {
|
|
54
|
+
field: Field;
|
|
55
|
+
};
|
|
35
56
|
/**
|
|
36
57
|
* Creates an ObjectQuery (nested object) with a selection set.
|
|
37
58
|
* selectionSet must contain only Query variants (value/object/array queries).
|
|
38
59
|
*/
|
|
39
|
-
export declare function objectQuery(args: {
|
|
40
|
-
field:
|
|
41
|
-
selectionSet:
|
|
60
|
+
export declare function objectQuery<const Field extends string, const SelectionSet extends readonly Query[]>(args: {
|
|
61
|
+
field: Field;
|
|
62
|
+
selectionSet: SelectionSet;
|
|
42
63
|
path?: string;
|
|
43
|
-
}): ObjectQuery
|
|
64
|
+
}): ObjectQuery & {
|
|
65
|
+
field: Field;
|
|
66
|
+
selectionSet: SelectionSet;
|
|
67
|
+
};
|
|
44
68
|
/**
|
|
45
69
|
* Creates an ArrayQuery (list) with a selection set and optional ordering/limit.
|
|
46
70
|
*/
|
|
47
|
-
export declare function arrayQuery(args: {
|
|
48
|
-
field:
|
|
49
|
-
selectionSet:
|
|
71
|
+
export declare function arrayQuery<const Field extends string, const SelectionSet extends readonly Query[]>(args: {
|
|
72
|
+
field: Field;
|
|
73
|
+
selectionSet: SelectionSet;
|
|
50
74
|
path?: string;
|
|
51
75
|
orderBy?: OrderByConfig | OrderByConfig[];
|
|
52
76
|
distinctOn?: string[];
|
|
53
77
|
limit?: number;
|
|
54
78
|
where?: HasuraCondition;
|
|
55
|
-
}): ArrayQuery
|
|
56
|
-
|
|
79
|
+
}): ArrayQuery & {
|
|
80
|
+
field: Field;
|
|
81
|
+
selectionSet: SelectionSet;
|
|
82
|
+
};
|
|
83
|
+
export type { Query } from "../framework/column-definition";
|
|
57
84
|
//# sourceMappingURL=columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/dsl/columns.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACH,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,UAAU,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/dsl/columns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ArrayQuery, ArrayQueryForRow, ObjectQueryForRow, QueryForRowSafe, ValueQueryForRow } from '../../framework/column-definition';
|
|
2
|
+
type NonNullish<T> = Exclude<T, null | undefined>;
|
|
3
|
+
type ElemOf<T> = T extends ReadonlyArray<infer E> ? E : never;
|
|
4
|
+
type ArrayFieldKey<Row> = ArrayQueryForRow<Row> extends {
|
|
5
|
+
field: infer F;
|
|
6
|
+
} ? Extract<F, string> : never;
|
|
7
|
+
type ObjectFieldKey<Row> = ObjectQueryForRow<Row> extends {
|
|
8
|
+
field: infer F;
|
|
9
|
+
} ? Extract<F, string> : never;
|
|
10
|
+
export type QueryBuilder<Row> = {
|
|
11
|
+
value: <K extends keyof Row & string>(field: K, args?: {
|
|
12
|
+
path?: string;
|
|
13
|
+
}) => ValueQueryForRow<Row> & {
|
|
14
|
+
field: K;
|
|
15
|
+
};
|
|
16
|
+
object: <K extends ObjectFieldKey<Row> & keyof Row & string, const SelectionSet extends readonly QueryForRowSafe<NonNullish<Row[K]>>[]>(field: K, buildSelection: (q: QueryBuilder<NonNullish<Row[K]>>) => SelectionSet, args?: {
|
|
17
|
+
path?: string;
|
|
18
|
+
}) => ObjectQueryForRow<Row> & {
|
|
19
|
+
field: K;
|
|
20
|
+
selectionSet: SelectionSet;
|
|
21
|
+
};
|
|
22
|
+
array: <K extends ArrayFieldKey<Row> & keyof Row & string, const SelectionSet extends readonly QueryForRowSafe<NonNullish<ElemOf<NonNullish<Row[K]>>>>[]>(field: K, buildSelection: (q: QueryBuilder<NonNullish<ElemOf<NonNullish<Row[K]>>>>) => SelectionSet, args?: {
|
|
23
|
+
path?: string;
|
|
24
|
+
orderBy?: ArrayQuery['orderBy'];
|
|
25
|
+
distinctOn?: ArrayQuery['distinctOn'];
|
|
26
|
+
limit?: number;
|
|
27
|
+
where?: ArrayQuery['where'];
|
|
28
|
+
}) => ArrayQueryForRow<Row> & {
|
|
29
|
+
field: K;
|
|
30
|
+
selectionSet: SelectionSet;
|
|
31
|
+
};
|
|
32
|
+
selection: <SelectionRow>() => QueryBuilder<SelectionRow>;
|
|
33
|
+
__row: Row;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Internal typed query builder scoped to a Row type.
|
|
37
|
+
*
|
|
38
|
+
* Not exported via the public DSL surface (yet).
|
|
39
|
+
*/
|
|
40
|
+
export declare function queryForRow<Row>(): QueryBuilder<Row>;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=queryForRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryForRow.d.ts","sourceRoot":"","sources":["../../../../src/dsl/internal/queryForRow.ts"],"names":[],"mappings":"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"}
|