Identical to 1.0.0-rc.5.
- #2990
5d408bdThanks @benjie! - No code changes. Updates the release process, cleans up package.json, uses fixed identifiers for peer dependencies (unless they're explicit dependencies also). Hopefully move to trusted publishing.
a3722d6Thanks @benjie! - Refactor to enable TypeScript options rewriteRelativeImportExtensions and erasableSyntaxOnly (including using .ts extensions in source code)
-
#2873
0772086Thanks @benjie! - Update TypeScript configuration to support Node 22 minimum -
#2888
1a56db2Thanks @benjaie! - Node v22+ is required for this module.
- #2574
ec25997a6a2557cde9aaa9e27eb202ad945b6015Thanks @benjie! - Fix dependency ranges to allow ESLint 9
-
#2481
8c1dc528e3c03e2c2855adb7273319412f841c14Thanks @kzlar! - 🚨 Now uses a flat config for compatibility with ESLint v9. -
#2482
459e1869a2ec58925b2bac5458af487c52a8ca37Thanks @benjie! - Minimum version of Node.js bumped to Node 22 (the latest LTS).
-
#2377
7c38cdeffe034c9b4f5cdd03a8f7f446bd52dcb7Thanks @benjie! - SinceModifierStepandBaseStepare no more;ExecutableStepcan be renamed to simplyStep. The old name (ExecutableStep) is now deprecated. -
#2398
c041fd250372c57601188b65a6411c8f440afab6Thanks @benjie! - Since the following have been removed from Grafast, throw an error if they're seen in the schema:autoApplyAfterParentInputPlanautoApplyAfterParentApplyPlanautoApplyAfterParentPlanautoApplyAfterParentSubscribePlaninputPlanapplyPlanon input fields
Also: when Query type fails to build, throw the underlying error directly.
-
#2376
da6f3c04efe3d8634c0bc3fcf93ac2518de85322Thanks @benjie! - Overhaul Grafast to remove more input planning - inputs should be evaluated at runtime - and remove more plan-time step evaluation.FieldArgs.getis no more; useFieldArgs.getRawor usebakedInput()(TODO: document) to get the "baked" version of a raw input value.Input object fields no longer have
applyPlan/inputPlan, instead having the runtime equivalentsapply()andbaked().FieldArgsis no longer available on input object fields, since these fields are no longer called at plantime; instead, the actual value is passed.FieldArgsgains.typeAt(path)method that details the GraphQL input type at the given path.Field arguments are no longer passed
FieldArgs, instead they're passed a (similar)FieldArgobject representing the argument value itself.autoApplyAfterParentPlanis no more - instead if an argument hasapplyPlanit will be called automatically unless it was called during the field plan resolver itself.autoApplyAfterParentSubscribePlanis no more - instead if an argument hasapplySubscribePlanit will be called automatically unless it was called during the field plan resolver itself.Field arguments no longer support
inputPlan- usebakedInput()if you need that.Input fields no longer support
inputPlan,applyPlan,autoApplyAfterParentInputPlannorautoApplyAfterParentApplyPlan. Instead,apply()(which is called byapplyStep()at runtime) has been added.sqlValueWithCodec(value, codec)can be used at runtime in places where$step.placeholder($value, codec)would have been used previously.placeholderhas been removed from all places that are now runtime - namely the list of modifiers below...The following
ModifierStepclasses have all dropped theirStepsuffix, theseModifierclasses now all run at runtime, and are thus no longer steps; they're invoked as part of the newapplyInput()(TODO: document) step:ModifierStep⇒ModifierPgBooleanFilterStep⇒PgBooleanFilterPgClassFilterStep⇒PgClassFilterPgConditionCapableParentStep⇒PgConditionCapableParentPgConditionLikeStep⇒PgConditionLikePgConditionStepMode⇒PgConditionModePgConditionStep⇒PgConditionPgManyFilterStep⇒PgManyFilterPgOrFilterStep⇒PgOrFilterPgTempTableStep⇒PgTempTableSetterCapableStep⇒SetterCapableSetterStep⇒Setter
(Interestingly, other than the removal of
placeholderand the fact they deal with runtime values rather than steps now, they're very similar to what they were before.)The deprecated forms of the above have been removed.
Methods that rely on these modifier plans have been removed:
PgUnionAllStep.wherePlan- usefieldArg.apply($unionAll, qb => qb.whereBuilder())insteadPgUnionAllStep.havingPlan- usefieldArg.apply($unionAll, qb => qb.havingBuilder())instead- Same for PgSelectStep
The following gain query builders:
PgInsertSinglePgUpdateSinglePgDeleteSingle
Query builders gain
meta, an object that can be augmented with metadata about the operation (typically this relates to cursors and similar functionality). This is now used to implementclientMutationId.Extends query builders with additional functionality.
Many of the types have had their generics changed, TypeScript should guide you if you have issues here.
NodeIdHandlernow requires agetIdentifiersmethod that runs at runtime and returns the identifiers from a decoded NodeId string.Types around GraphQL Global Object Identification (i.e.
Node/id) have changed.
- #2175
c69b2fdecThanks @benjie! - Fix 'Container is falsy' error message the latest Babel patch release would cause.
- #1933
3a2ea80eeThanks @mattiarossi! -eslint-plugin-graphile-exportnow spots instances ofinputPlan,applyPlanandassertStepso they can be checked - thanks @mattiarossi!
759ad403dThanks @benjie! - Alpha release - see https://postgraphile.org/news/2023-04-26-version-5-alpha
0ab95d0b1- Update sponsors.