From 1a2ed338e6400f21bb95bd416a27391522ec1ecd Mon Sep 17 00:00:00 2001 From: Iago Araujo Date: Tue, 15 Jul 2025 15:46:47 -0300 Subject: [PATCH 1/2] Create a new graphql directive Public --- .../runtime/graphql/schema/schemaDirectives/Public.ts | 9 +++++++++ .../runtime/graphql/schema/schemaDirectives/index.ts | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 src/service/worker/runtime/graphql/schema/schemaDirectives/Public.ts diff --git a/src/service/worker/runtime/graphql/schema/schemaDirectives/Public.ts b/src/service/worker/runtime/graphql/schema/schemaDirectives/Public.ts new file mode 100644 index 000000000..8308ce0b6 --- /dev/null +++ b/src/service/worker/runtime/graphql/schema/schemaDirectives/Public.ts @@ -0,0 +1,9 @@ +import { SchemaDirectiveVisitor } from "graphql-tools" + +export class Public extends SchemaDirectiveVisitor { +} + +export const publicDirectiveTypeDefs = ` +directive @public( +) on FIELD_DEFINITION +` diff --git a/src/service/worker/runtime/graphql/schema/schemaDirectives/index.ts b/src/service/worker/runtime/graphql/schema/schemaDirectives/index.ts index 4b5ce546f..e10b230c3 100644 --- a/src/service/worker/runtime/graphql/schema/schemaDirectives/index.ts +++ b/src/service/worker/runtime/graphql/schema/schemaDirectives/index.ts @@ -2,6 +2,7 @@ import { Auth, authDirectiveTypeDefs } from './Auth' import { CacheControl, cacheControlDirectiveTypeDefs } from './CacheControl' import { Deprecated, deprecatedDirectiveTypeDefs } from './Deprecated' import { Metric, metricDirectiveTypeDefs } from './Metric' +import { Public, publicDirectiveTypeDefs } from './Public' import { SanitizeDirective, sanitizeDirectiveTypeDefs } from './Sanitize' import { SettingsDirective, settingsDirectiveTypeDefs } from './Settings' import { SmartCacheDirective, smartCacheDirectiveTypeDefs } from './SmartCacheDirective' @@ -20,6 +21,7 @@ export const nativeSchemaDirectives = { smartcache: SmartCacheDirective, translatableV2: TranslatableV2, translateTo: TranslateTo, + public: Public } export const nativeSchemaDirectivesTypeDefs = [ @@ -32,4 +34,5 @@ export const nativeSchemaDirectivesTypeDefs = [ smartCacheDirectiveTypeDefs, translatableV2DirectiveTypeDefs, translateToDirectiveTypeDefs, + publicDirectiveTypeDefs ].join('\n\n') From dc209b1b240633f4bf67a205617cf3c71aceff32 Mon Sep 17 00:00:00 2001 From: Iago Araujo Date: Wed, 16 Jul 2025 10:12:47 -0300 Subject: [PATCH 2/2] Fix syntax of public directive --- .../graphql/schema/schemaDirectives/Public.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/service/worker/runtime/graphql/schema/schemaDirectives/Public.ts b/src/service/worker/runtime/graphql/schema/schemaDirectives/Public.ts index 8308ce0b6..abb0a9333 100644 --- a/src/service/worker/runtime/graphql/schema/schemaDirectives/Public.ts +++ b/src/service/worker/runtime/graphql/schema/schemaDirectives/Public.ts @@ -1,9 +1,14 @@ +import { defaultFieldResolver, GraphQLField } from "graphql"; import { SchemaDirectiveVisitor } from "graphql-tools" export class Public extends SchemaDirectiveVisitor { + visitFieldDefinition(field: GraphQLField) { + const { resolve = defaultFieldResolver } = field; + + field.resolve = async function (...args) { + return resolve.apply(this, args); + }; + } } -export const publicDirectiveTypeDefs = ` -directive @public( -) on FIELD_DEFINITION -` +export const publicDirectiveTypeDefs = `directive @public on FIELD_DEFINITION`