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
JavaScript
;
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