@cedarjs/gqlorm 3.1.2-next.0 → 3.1.2-next.128
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/cjs/generator/graphqlGenerator.d.ts +6 -0
- package/dist/cjs/generator/graphqlGenerator.d.ts.map +1 -1
- package/dist/cjs/generator/graphqlGenerator.js +14 -5
- package/dist/cjs/parser/queryParser.js +1 -0
- package/dist/cjs/queryBuilder.d.ts +8 -0
- package/dist/cjs/queryBuilder.d.ts.map +1 -1
- package/dist/cjs/queryBuilder.js +15 -2
- package/dist/cjs/setup.d.ts +39 -0
- package/dist/cjs/setup.d.ts.map +1 -0
- package/dist/cjs/setup.js +31 -0
- package/dist/generator/graphqlGenerator.d.ts +6 -0
- package/dist/generator/graphqlGenerator.d.ts.map +1 -1
- package/dist/generator/graphqlGenerator.js +15 -5
- package/dist/live/types.js +1 -0
- package/dist/parser/queryParser.js +1 -0
- package/dist/queryBuilder.d.ts +8 -0
- package/dist/queryBuilder.d.ts.map +1 -1
- package/dist/queryBuilder.js +17 -2
- package/dist/setup.d.ts +39 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +7 -0
- package/package.json +17 -9
|
@@ -15,6 +15,12 @@ export interface GraphQLQuery {
|
|
|
15
15
|
export declare class GraphQLGenerator {
|
|
16
16
|
#private;
|
|
17
17
|
constructor(schema?: ModelSchema);
|
|
18
|
+
/**
|
|
19
|
+
* Update the model schema used for automatic field selection.
|
|
20
|
+
* Pass `undefined` to revert to the id-only fallback.
|
|
21
|
+
* Safe to call multiple times — last call wins.
|
|
22
|
+
*/
|
|
23
|
+
setSchema(schema: ModelSchema | undefined): void;
|
|
18
24
|
/**
|
|
19
25
|
* Generate GraphQL query from AST
|
|
20
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/graphqlGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAOV,QAAQ,EAKT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOrD,qBAAa,oBAAqB,SAAQ,KAAK;IAGpC,OAAO,CAAC,EAAE,GAAG;gBADpB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,GAAG,YAAA;CAKvB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC;AAED,qBAAa,gBAAgB;;gBASf,MAAM,CAAC,EAAE,WAAW;IAIhC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY;CAodtC;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"graphqlGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/graphqlGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAOV,QAAQ,EAKT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOrD,qBAAa,oBAAqB,SAAQ,KAAK;IAGpC,OAAO,CAAC,EAAE,GAAG;gBADpB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,GAAG,YAAA;CAKvB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC;AAED,qBAAa,gBAAgB;;gBASf,MAAM,CAAC,EAAE,WAAW;IAIhC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI;IAIhD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY;CAodtC;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAA"}
|
|
@@ -30,6 +30,7 @@ class GraphQLGenerateError extends Error {
|
|
|
30
30
|
this.context = context;
|
|
31
31
|
this.name = "GraphQLGenerateError";
|
|
32
32
|
}
|
|
33
|
+
context;
|
|
33
34
|
}
|
|
34
35
|
class GraphQLGenerator {
|
|
35
36
|
#variableCounter = 0;
|
|
@@ -42,6 +43,14 @@ class GraphQLGenerator {
|
|
|
42
43
|
constructor(schema) {
|
|
43
44
|
this.#schema = schema;
|
|
44
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Update the model schema used for automatic field selection.
|
|
48
|
+
* Pass `undefined` to revert to the id-only fallback.
|
|
49
|
+
* Safe to call multiple times — last call wins.
|
|
50
|
+
*/
|
|
51
|
+
setSchema(schema) {
|
|
52
|
+
this.#schema = schema;
|
|
53
|
+
}
|
|
45
54
|
/**
|
|
46
55
|
* Generate GraphQL query from AST
|
|
47
56
|
*/
|
|
@@ -56,6 +65,9 @@ class GraphQLGenerator {
|
|
|
56
65
|
const variableDefinitions = this.#generateVariableDefinitions();
|
|
57
66
|
query += `(${variableDefinitions})`;
|
|
58
67
|
}
|
|
68
|
+
if (ast.isLive) {
|
|
69
|
+
query += " @live";
|
|
70
|
+
}
|
|
59
71
|
query += ` {
|
|
60
72
|
${queryBody}
|
|
61
73
|
}`;
|
|
@@ -85,7 +97,7 @@ ${queryBody}
|
|
|
85
97
|
* Generate main query body
|
|
86
98
|
*/
|
|
87
99
|
#generateQueryBody(ast) {
|
|
88
|
-
const { model, operation, args
|
|
100
|
+
const { model, operation, args } = ast;
|
|
89
101
|
const fieldName = this.#getGraphQLFieldName(model, operation);
|
|
90
102
|
let query = ` ${fieldName}`;
|
|
91
103
|
if (args) {
|
|
@@ -94,9 +106,6 @@ ${queryBody}
|
|
|
94
106
|
query += `(${argsString})`;
|
|
95
107
|
}
|
|
96
108
|
}
|
|
97
|
-
if (isLive) {
|
|
98
|
-
query += " @live";
|
|
99
|
-
}
|
|
100
109
|
const fields = this.#generateFieldSelection(args, model);
|
|
101
110
|
query += ` {
|
|
102
111
|
${fields}
|
|
@@ -295,7 +304,7 @@ ${fields}
|
|
|
295
304
|
const fields = this.#schema[model];
|
|
296
305
|
return fields.map((field) => ` ${field}`).join("\n");
|
|
297
306
|
}
|
|
298
|
-
return " id
|
|
307
|
+
return " id";
|
|
299
308
|
}
|
|
300
309
|
/**
|
|
301
310
|
* Generate fields from SELECT clause
|
|
@@ -85,6 +85,14 @@ export declare class QueryBuilder {
|
|
|
85
85
|
* Update query builder options
|
|
86
86
|
*/
|
|
87
87
|
updateOptions(newOptions: Partial<QueryBuilderOptions>): void;
|
|
88
|
+
/**
|
|
89
|
+
* Configure the query builder options.
|
|
90
|
+
* Merges the provided options over the current options (non-destructive).
|
|
91
|
+
* When the `schema` key is present in the options object, it is forwarded
|
|
92
|
+
* to the generator — including `undefined`, which reverts to the id-only
|
|
93
|
+
* fallback. Safe to call multiple times — last call wins.
|
|
94
|
+
*/
|
|
95
|
+
configure(options: Partial<QueryBuilderOptions>): void;
|
|
88
96
|
}
|
|
89
97
|
export declare const queryBuilder: QueryBuilder;
|
|
90
98
|
export declare function buildQuery(model: string, operation: QueryOperation, args?: GenericQueryArgs, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryBuilder.d.ts","sourceRoot":"","sources":["../../src/queryBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,EAErB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAe,MAAM,yBAAyB,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,qBAAa,iBAAkB,SAAQ,KAAK;IAGxB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED,KAAK,gBAAgB,GACjB,YAAY,CAAC,OAAO,CAAC,GACrB,cAAc,CAAC,OAAO,CAAC,GACvB,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IAEjC;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAElC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEtC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAEnC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,qBAAa,YAAY;;gBAKX,OAAO,GAAE,mBAAwB;IAK7C;;OAEG;IACH,KAAK,CACH,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EACzB,IAAI,CAAC,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,YAAY;
|
|
1
|
+
{"version":3,"file":"queryBuilder.d.ts","sourceRoot":"","sources":["../../src/queryBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/queryBuilder.js
CHANGED
|
@@ -37,6 +37,7 @@ class QueryBuilderError extends Error {
|
|
|
37
37
|
this.cause = cause;
|
|
38
38
|
this.name = "QueryBuilderError";
|
|
39
39
|
}
|
|
40
|
+
cause;
|
|
40
41
|
}
|
|
41
42
|
class QueryBuilder {
|
|
42
43
|
#parser = new import_queryParser.QueryParser();
|
|
@@ -52,8 +53,7 @@ class QueryBuilder {
|
|
|
52
53
|
build(model, operation, args, options) {
|
|
53
54
|
try {
|
|
54
55
|
const ast = this.#parser.parseQuery(model, operation, args);
|
|
55
|
-
|
|
56
|
-
if (isLive) {
|
|
56
|
+
if (this.#shouldUseLiveQuery(options?.isLive)) {
|
|
57
57
|
ast.isLive = true;
|
|
58
58
|
}
|
|
59
59
|
this.#parser.validateAST(ast);
|
|
@@ -185,6 +185,19 @@ class QueryBuilder {
|
|
|
185
185
|
updateOptions(newOptions) {
|
|
186
186
|
this.#options = { ...this.#options, ...newOptions };
|
|
187
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Configure the query builder options.
|
|
190
|
+
* Merges the provided options over the current options (non-destructive).
|
|
191
|
+
* When the `schema` key is present in the options object, it is forwarded
|
|
192
|
+
* to the generator — including `undefined`, which reverts to the id-only
|
|
193
|
+
* fallback. Safe to call multiple times — last call wins.
|
|
194
|
+
*/
|
|
195
|
+
configure(options) {
|
|
196
|
+
this.#options = { ...this.#options, ...options };
|
|
197
|
+
if ("schema" in options) {
|
|
198
|
+
this.#generator.setSchema(options.schema);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
188
201
|
/**
|
|
189
202
|
* Determine if a query should use @live directive
|
|
190
203
|
*/
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public setup API for gqlorm.
|
|
3
|
+
*
|
|
4
|
+
* Call `configureGqlorm()` once at app startup — typically at the top of
|
|
5
|
+
* `App.tsx` or in a dedicated bootstrap file — before any `useLiveQuery`
|
|
6
|
+
* invocations.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* import { configureGqlorm } from '@cedarjs/gqlorm/setup'
|
|
10
|
+
* import schema from '.cedar/gqlorm-schema.json'
|
|
11
|
+
*
|
|
12
|
+
* configureGqlorm({ schema })
|
|
13
|
+
*/
|
|
14
|
+
import type { ModelSchema } from './types/schema.js';
|
|
15
|
+
export interface ConfigureGqlormOptions {
|
|
16
|
+
/**
|
|
17
|
+
* The model schema mapping lowercase model names to their visible scalar
|
|
18
|
+
* field names. Typically imported from `.cedar/gqlorm-schema.json`, which
|
|
19
|
+
* is auto-generated by Cedar's codegen pipeline.
|
|
20
|
+
*
|
|
21
|
+
* When `undefined`, gqlorm falls back to requesting only the `id` field in
|
|
22
|
+
* auto-generated queries (the behaviour before any schema is configured).
|
|
23
|
+
* Passing `undefined` explicitly is useful in test environments where a
|
|
24
|
+
* full schema is not available.
|
|
25
|
+
*/
|
|
26
|
+
schema: ModelSchema | undefined;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Configure gqlorm at app startup.
|
|
30
|
+
*
|
|
31
|
+
* Applies the provided `ModelSchema` to the global `queryBuilder` singleton so
|
|
32
|
+
* that `useLiveQuery((db) => db.post.findMany())` — with no explicit `select`
|
|
33
|
+
* — generates a GraphQL query requesting all visible scalar fields for the
|
|
34
|
+
* model instead of only `id`.
|
|
35
|
+
*
|
|
36
|
+
* The call is idempotent and safe to invoke multiple times; the last call wins.
|
|
37
|
+
*/
|
|
38
|
+
export declare function configureGqlorm(options: ConfigureGqlormOptions): void;
|
|
39
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;OASG;IACH,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAErE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var setup_exports = {};
|
|
20
|
+
__export(setup_exports, {
|
|
21
|
+
configureGqlorm: () => configureGqlorm
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(setup_exports);
|
|
24
|
+
var import_queryBuilder = require("./queryBuilder.js");
|
|
25
|
+
function configureGqlorm(options) {
|
|
26
|
+
import_queryBuilder.queryBuilder.configure({ schema: options.schema });
|
|
27
|
+
}
|
|
28
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
29
|
+
0 && (module.exports = {
|
|
30
|
+
configureGqlorm
|
|
31
|
+
});
|
|
@@ -15,6 +15,12 @@ export interface GraphQLQuery {
|
|
|
15
15
|
export declare class GraphQLGenerator {
|
|
16
16
|
#private;
|
|
17
17
|
constructor(schema?: ModelSchema);
|
|
18
|
+
/**
|
|
19
|
+
* Update the model schema used for automatic field selection.
|
|
20
|
+
* Pass `undefined` to revert to the id-only fallback.
|
|
21
|
+
* Safe to call multiple times — last call wins.
|
|
22
|
+
*/
|
|
23
|
+
setSchema(schema: ModelSchema | undefined): void;
|
|
18
24
|
/**
|
|
19
25
|
* Generate GraphQL query from AST
|
|
20
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlGenerator.d.ts","sourceRoot":"","sources":["../../src/generator/graphqlGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAOV,QAAQ,EAKT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOrD,qBAAa,oBAAqB,SAAQ,KAAK;IAGpC,OAAO,CAAC,EAAE,GAAG;gBADpB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,GAAG,YAAA;CAKvB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC;AAED,qBAAa,gBAAgB;;gBASf,MAAM,CAAC,EAAE,WAAW;IAIhC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY;CAodtC;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"graphqlGenerator.d.ts","sourceRoot":"","sources":["../../src/generator/graphqlGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAOV,QAAQ,EAKT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOrD,qBAAa,oBAAqB,SAAQ,KAAK;IAGpC,OAAO,CAAC,EAAE,GAAG;gBADpB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,GAAG,YAAA;CAKvB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC;AAED,qBAAa,gBAAgB;;gBASf,MAAM,CAAC,EAAE,WAAW;IAIhC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI;IAIhD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY;CAodtC;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import {} from "../types/schema.js";
|
|
1
2
|
import {
|
|
2
3
|
isFieldCondition,
|
|
3
4
|
isLogicalCondition,
|
|
@@ -9,6 +10,7 @@ class GraphQLGenerateError extends Error {
|
|
|
9
10
|
this.context = context;
|
|
10
11
|
this.name = "GraphQLGenerateError";
|
|
11
12
|
}
|
|
13
|
+
context;
|
|
12
14
|
}
|
|
13
15
|
class GraphQLGenerator {
|
|
14
16
|
#variableCounter = 0;
|
|
@@ -21,6 +23,14 @@ class GraphQLGenerator {
|
|
|
21
23
|
constructor(schema) {
|
|
22
24
|
this.#schema = schema;
|
|
23
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Update the model schema used for automatic field selection.
|
|
28
|
+
* Pass `undefined` to revert to the id-only fallback.
|
|
29
|
+
* Safe to call multiple times — last call wins.
|
|
30
|
+
*/
|
|
31
|
+
setSchema(schema) {
|
|
32
|
+
this.#schema = schema;
|
|
33
|
+
}
|
|
24
34
|
/**
|
|
25
35
|
* Generate GraphQL query from AST
|
|
26
36
|
*/
|
|
@@ -35,6 +45,9 @@ class GraphQLGenerator {
|
|
|
35
45
|
const variableDefinitions = this.#generateVariableDefinitions();
|
|
36
46
|
query += `(${variableDefinitions})`;
|
|
37
47
|
}
|
|
48
|
+
if (ast.isLive) {
|
|
49
|
+
query += " @live";
|
|
50
|
+
}
|
|
38
51
|
query += ` {
|
|
39
52
|
${queryBody}
|
|
40
53
|
}`;
|
|
@@ -64,7 +77,7 @@ ${queryBody}
|
|
|
64
77
|
* Generate main query body
|
|
65
78
|
*/
|
|
66
79
|
#generateQueryBody(ast) {
|
|
67
|
-
const { model, operation, args
|
|
80
|
+
const { model, operation, args } = ast;
|
|
68
81
|
const fieldName = this.#getGraphQLFieldName(model, operation);
|
|
69
82
|
let query = ` ${fieldName}`;
|
|
70
83
|
if (args) {
|
|
@@ -73,9 +86,6 @@ ${queryBody}
|
|
|
73
86
|
query += `(${argsString})`;
|
|
74
87
|
}
|
|
75
88
|
}
|
|
76
|
-
if (isLive) {
|
|
77
|
-
query += " @live";
|
|
78
|
-
}
|
|
79
89
|
const fields = this.#generateFieldSelection(args, model);
|
|
80
90
|
query += ` {
|
|
81
91
|
${fields}
|
|
@@ -274,7 +284,7 @@ ${fields}
|
|
|
274
284
|
const fields = this.#schema[model];
|
|
275
285
|
return fields.map((field) => ` ${field}`).join("\n");
|
|
276
286
|
}
|
|
277
|
-
return " id
|
|
287
|
+
return " id";
|
|
278
288
|
}
|
|
279
289
|
/**
|
|
280
290
|
* Generate fields from SELECT clause
|
package/dist/live/types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {} from "../types/schema.js";
|
package/dist/queryBuilder.d.ts
CHANGED
|
@@ -85,6 +85,14 @@ export declare class QueryBuilder {
|
|
|
85
85
|
* Update query builder options
|
|
86
86
|
*/
|
|
87
87
|
updateOptions(newOptions: Partial<QueryBuilderOptions>): void;
|
|
88
|
+
/**
|
|
89
|
+
* Configure the query builder options.
|
|
90
|
+
* Merges the provided options over the current options (non-destructive).
|
|
91
|
+
* When the `schema` key is present in the options object, it is forwarded
|
|
92
|
+
* to the generator — including `undefined`, which reverts to the id-only
|
|
93
|
+
* fallback. Safe to call multiple times — last call wins.
|
|
94
|
+
*/
|
|
95
|
+
configure(options: Partial<QueryBuilderOptions>): void;
|
|
88
96
|
}
|
|
89
97
|
export declare const queryBuilder: QueryBuilder;
|
|
90
98
|
export declare function buildQuery(model: string, operation: QueryOperation, args?: GenericQueryArgs, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryBuilder.d.ts","sourceRoot":"","sources":["../src/queryBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,EAErB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAe,MAAM,yBAAyB,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,qBAAa,iBAAkB,SAAQ,KAAK;IAGxB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED,KAAK,gBAAgB,GACjB,YAAY,CAAC,OAAO,CAAC,GACrB,cAAc,CAAC,OAAO,CAAC,GACvB,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IAEjC;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAElC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEtC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAEnC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,qBAAa,YAAY;;gBAKX,OAAO,GAAE,mBAAwB;IAK7C;;OAEG;IACH,KAAK,CACH,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EACzB,IAAI,CAAC,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,YAAY;
|
|
1
|
+
{"version":3,"file":"queryBuilder.d.ts","sourceRoot":"","sources":["../src/queryBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/queryBuilder.js
CHANGED
|
@@ -3,12 +3,15 @@ import {
|
|
|
3
3
|
GraphQLGenerator
|
|
4
4
|
} from "./generator/graphqlGenerator.js";
|
|
5
5
|
import { QueryParseError, QueryParser } from "./parser/queryParser.js";
|
|
6
|
+
import {
|
|
7
|
+
} from "./types/orm.js";
|
|
6
8
|
class QueryBuilderError extends Error {
|
|
7
9
|
constructor(message, cause) {
|
|
8
10
|
super(message);
|
|
9
11
|
this.cause = cause;
|
|
10
12
|
this.name = "QueryBuilderError";
|
|
11
13
|
}
|
|
14
|
+
cause;
|
|
12
15
|
}
|
|
13
16
|
class QueryBuilder {
|
|
14
17
|
#parser = new QueryParser();
|
|
@@ -24,8 +27,7 @@ class QueryBuilder {
|
|
|
24
27
|
build(model, operation, args, options) {
|
|
25
28
|
try {
|
|
26
29
|
const ast = this.#parser.parseQuery(model, operation, args);
|
|
27
|
-
|
|
28
|
-
if (isLive) {
|
|
30
|
+
if (this.#shouldUseLiveQuery(options?.isLive)) {
|
|
29
31
|
ast.isLive = true;
|
|
30
32
|
}
|
|
31
33
|
this.#parser.validateAST(ast);
|
|
@@ -157,6 +159,19 @@ class QueryBuilder {
|
|
|
157
159
|
updateOptions(newOptions) {
|
|
158
160
|
this.#options = { ...this.#options, ...newOptions };
|
|
159
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Configure the query builder options.
|
|
164
|
+
* Merges the provided options over the current options (non-destructive).
|
|
165
|
+
* When the `schema` key is present in the options object, it is forwarded
|
|
166
|
+
* to the generator — including `undefined`, which reverts to the id-only
|
|
167
|
+
* fallback. Safe to call multiple times — last call wins.
|
|
168
|
+
*/
|
|
169
|
+
configure(options) {
|
|
170
|
+
this.#options = { ...this.#options, ...options };
|
|
171
|
+
if ("schema" in options) {
|
|
172
|
+
this.#generator.setSchema(options.schema);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
160
175
|
/**
|
|
161
176
|
* Determine if a query should use @live directive
|
|
162
177
|
*/
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public setup API for gqlorm.
|
|
3
|
+
*
|
|
4
|
+
* Call `configureGqlorm()` once at app startup — typically at the top of
|
|
5
|
+
* `App.tsx` or in a dedicated bootstrap file — before any `useLiveQuery`
|
|
6
|
+
* invocations.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* import { configureGqlorm } from '@cedarjs/gqlorm/setup'
|
|
10
|
+
* import schema from '.cedar/gqlorm-schema.json'
|
|
11
|
+
*
|
|
12
|
+
* configureGqlorm({ schema })
|
|
13
|
+
*/
|
|
14
|
+
import type { ModelSchema } from './types/schema.js';
|
|
15
|
+
export interface ConfigureGqlormOptions {
|
|
16
|
+
/**
|
|
17
|
+
* The model schema mapping lowercase model names to their visible scalar
|
|
18
|
+
* field names. Typically imported from `.cedar/gqlorm-schema.json`, which
|
|
19
|
+
* is auto-generated by Cedar's codegen pipeline.
|
|
20
|
+
*
|
|
21
|
+
* When `undefined`, gqlorm falls back to requesting only the `id` field in
|
|
22
|
+
* auto-generated queries (the behaviour before any schema is configured).
|
|
23
|
+
* Passing `undefined` explicitly is useful in test environments where a
|
|
24
|
+
* full schema is not available.
|
|
25
|
+
*/
|
|
26
|
+
schema: ModelSchema | undefined;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Configure gqlorm at app startup.
|
|
30
|
+
*
|
|
31
|
+
* Applies the provided `ModelSchema` to the global `queryBuilder` singleton so
|
|
32
|
+
* that `useLiveQuery((db) => db.post.findMany())` — with no explicit `select`
|
|
33
|
+
* — generates a GraphQL query requesting all visible scalar fields for the
|
|
34
|
+
* model instead of only `id`.
|
|
35
|
+
*
|
|
36
|
+
* The call is idempotent and safe to invoke multiple times; the last call wins.
|
|
37
|
+
*/
|
|
38
|
+
export declare function configureGqlorm(options: ConfigureGqlormOptions): void;
|
|
39
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;OASG;IACH,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAErE"}
|
package/dist/setup.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cedarjs/gqlorm",
|
|
3
|
-
"version": "3.1.2-next.
|
|
3
|
+
"version": "3.1.2-next.128+165de00ea8",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cedarjs/cedar.git",
|
|
@@ -19,6 +19,16 @@
|
|
|
19
19
|
"default": "./dist/cjs/queryBuilder.js"
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
+
"./setup": {
|
|
23
|
+
"import": {
|
|
24
|
+
"types": "./dist/setup.d.ts",
|
|
25
|
+
"default": "./dist/setup.js"
|
|
26
|
+
},
|
|
27
|
+
"require": {
|
|
28
|
+
"types": "./dist/cjs/setup.d.ts",
|
|
29
|
+
"default": "./dist/cjs/setup.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
22
32
|
"./queryBuilder": {
|
|
23
33
|
"import": {
|
|
24
34
|
"types": "./dist/queryBuilder.d.ts",
|
|
@@ -128,18 +138,16 @@
|
|
|
128
138
|
"test:watch": "vitest watch"
|
|
129
139
|
},
|
|
130
140
|
"dependencies": {
|
|
131
|
-
"@cedarjs/auth": "3.1.2-next.
|
|
132
|
-
"@cedarjs/server-store": "3.1.2-next.
|
|
133
|
-
"@cedarjs/web": "3.1.2-next.
|
|
134
|
-
"graphql": "16.13.
|
|
135
|
-
"react": "18.3.1",
|
|
136
|
-
"react-dom": "18.3.1"
|
|
141
|
+
"@cedarjs/auth": "3.1.2-next.128+165de00ea8",
|
|
142
|
+
"@cedarjs/server-store": "3.1.2-next.128+165de00ea8",
|
|
143
|
+
"@cedarjs/web": "3.1.2-next.128+165de00ea8",
|
|
144
|
+
"graphql": "16.13.2"
|
|
137
145
|
},
|
|
138
146
|
"devDependencies": {
|
|
139
147
|
"@arethetypeswrong/cli": "0.18.2",
|
|
140
148
|
"@babel/cli": "7.28.6",
|
|
141
149
|
"@babel/core": "^7.26.10",
|
|
142
|
-
"@cedarjs/framework-tools": "3.1.2-next.
|
|
150
|
+
"@cedarjs/framework-tools": "3.1.2-next.128",
|
|
143
151
|
"@testing-library/jest-dom": "6.9.1",
|
|
144
152
|
"@types/react": "^18.2.55",
|
|
145
153
|
"@types/react-dom": "^18.2.19",
|
|
@@ -160,5 +168,5 @@
|
|
|
160
168
|
"publishConfig": {
|
|
161
169
|
"access": "public"
|
|
162
170
|
},
|
|
163
|
-
"gitHead": "
|
|
171
|
+
"gitHead": "165de00ea86321332d0905102862b1165bcb726f"
|
|
164
172
|
}
|