groqd icon indicating copy to clipboard operation
groqd copied to clipboard

Export types

Open maxijonson opened this issue 1 year ago • 1 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

Code of Conduct

  • [x] I agree to follow this project's Code of Conduct

Feature Request

Whenever I need a type from groqd, I often need to either copy it from the declarations file myself or make an arbitrary query to extract it's type:

// src/utils/groqd.types.ts
// copied from index.d.ts
export type WithAssetOption =
  | "base"
  | "dimensions"
  | "location"
  | "lqip"
  | "palette"
  | "isOpaque"
  | "hasAlpha"
  | "blurHash";

const unknownArrayQuery = q("").filter();
export type UnknownArrayQuery = typeof unknownArrayQuery;

const entityQuery = q("").filter().slice(0);
export type EntityQuery = typeof entityQuery;

It would be nice if the library exported its types, not only to make it simpler to build wrappers around it, but also to make sure that we don't end up with outdated types on our end after updating groqd.

Currently, these are the only things that can be imported:

import {
  q,
  z,
  sanityImage,
  makeSafeQueryRunner,
  nullToUndefined,
  pipe, // Not sure what this is, it's not documented anywhere
  type BaseQuery,
  type GroqdParseError,
  type InferType,
  type Selection,
  type TypeFromSelection,
} from "groqd";

maxijonson avatar May 04 '24 19:05 maxijonson

+1

I need type BaseType and ButFirst among a few others

multiplehats avatar May 30 '24 14:05 multiplehats