@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.
@@ -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, isLive } = ast;
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\n createdAt\n updatedAt";
307
+ return " id";
299
308
  }
300
309
  /**
301
310
  * Generate fields from SELECT clause
@@ -30,6 +30,7 @@ class QueryParseError extends Error {
30
30
  this.context = context;
31
31
  this.name = "QueryParseError";
32
32
  }
33
+ context;
33
34
  }
34
35
  class QueryParser {
35
36
  /**
@@ -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":"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"}
1
+ {"version":3,"file":"queryBuilder.d.ts","sourceRoot":"","sources":["../../src/queryBuilder.ts"],"names":[],"mappings":"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"}
@@ -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
- const isLive = this.#shouldUseLiveQuery(options?.isLive);
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, isLive } = ast;
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\n createdAt\n updatedAt";
287
+ return " id";
278
288
  }
279
289
  /**
280
290
  * Generate fields from SELECT clause
@@ -0,0 +1 @@
1
+ import {} from "../types/schema.js";
@@ -5,6 +5,7 @@ class QueryParseError extends Error {
5
5
  this.context = context;
6
6
  this.name = "QueryParseError";
7
7
  }
8
+ context;
8
9
  }
9
10
  class QueryParser {
10
11
  /**
@@ -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":"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"}
1
+ {"version":3,"file":"queryBuilder.d.ts","sourceRoot":"","sources":["../src/queryBuilder.ts"],"names":[],"mappings":"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"}
@@ -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
- const isLive = this.#shouldUseLiveQuery(options?.isLive);
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
  */
@@ -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
@@ -0,0 +1,7 @@
1
+ import { queryBuilder } from "./queryBuilder.js";
2
+ function configureGqlorm(options) {
3
+ queryBuilder.configure({ schema: options.schema });
4
+ }
5
+ export {
6
+ configureGqlorm
7
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/gqlorm",
3
- "version": "3.1.2-next.0+be2d452c1",
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.0+be2d452c1",
132
- "@cedarjs/server-store": "3.1.2-next.0+be2d452c1",
133
- "@cedarjs/web": "3.1.2-next.0+be2d452c1",
134
- "graphql": "16.13.1",
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.1",
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": "be2d452c12f5f60784eab652d896b13f70b27e99"
171
+ "gitHead": "165de00ea86321332d0905102862b1165bcb726f"
164
172
  }