UNPKG

groq-builder

Version:

A **schema-aware**, strongly-typed GROQ query builder. It enables you to build GROQ queries using **auto-completion**, **type-checking**, and **runtime validation**.

83 lines 3.44 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeSafeQueryRunner = exports.zod = void 0; exports.createGroqBuilderLite = createGroqBuilderLite; exports.createGroqBuilderWithZod = createGroqBuilderWithZod; // Be sure to keep these first 2 imports in this order: require("./groq-builder"); require("./commands"); const groq_builder_1 = require("./groq-builder"); const zod_1 = require("./validation/zod"); // Re-export all our public types: __exportStar(require("./groq-builder"), exports); __exportStar(require("./types/public-types"), exports); __exportStar(require("./types/schema-types"), exports); var zod_2 = require("./validation/zod"); Object.defineProperty(exports, "zod", { enumerable: true, get: function () { return zod_2.zodMethods; } }); var makeSafeQueryRunner_1 = require("./makeSafeQueryRunner"); Object.defineProperty(exports, "makeSafeQueryRunner", { enumerable: true, get: function () { return makeSafeQueryRunner_1.makeSafeQueryRunner; } }); __exportStar(require("./validation/validation-errors"), exports); /** * Creates the root `q` query builder. * * This method does not include the `zod` utilities * for runtime validation, like `q.string()`; * see `createGroqBuilderWithZod` for more information. * * @example * import { createGroqBuilderLite, ExtractDocumentTypes } from 'groq-builder'; * import { AllSanitySchemaTypes, internalGroqTypeReferenceTo } from "./sanity.types.ts"; * * type SchemaConfig = { * schemaTypes: AllSanitySchemaTypes; * referenceSymbol: typeof internalGroqTypeReferenceTo; * }; * export const q = createGroqBuilderLite<SchemaConfig>(); */ function createGroqBuilderLite(options = {}) { const q = new groq_builder_1.GroqBuilder({ query: "", parser: null, options, }); return q; } /** * Creates the root `q` query builder. * * For convenience, includes all Zod validation methods attached to the `q` object, like `q.string()` etc. * This ensures an API that's backwards compatible with GroqD syntax. * * If you want to use `zod` directly, * or a different validation library, * or don't need runtime validation, * use `createGroqBuilderLite` instead. * * @example * import { createGroqBuilderWithZod, ExtractDocumentTypes } from 'groq-builder'; * import { AllSanitySchemaTypes, internalGroqTypeReferenceTo } from "./sanity.types.ts"; * * type SchemaConfig = { * schemaTypes: AllSanitySchemaTypes; * referenceSymbol: typeof internalGroqTypeReferenceTo; * }; * export const q = createGroqBuilderWithZod<SchemaConfig>(); */ function createGroqBuilderWithZod(options = {}) { const q = createGroqBuilderLite(options); return Object.assign(q, zod_1.zodMethods); } //# sourceMappingURL=index.js.map