UNPKG

naystack

Version:

A stack built with tight Next + Drizzle + GraphQL

183 lines (179 loc) 5.71 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var __decorateClass = (decorators, target, key, kind) => { var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result; if (kind && result) __defProp(target, key, result); return result; }; // src/graphql/index.ts var graphql_exports = {}; __export(graphql_exports, { FieldLibrary: () => FieldLibrary, QueryLibrary: () => QueryLibrary, field: () => field, initGraphQLServer: () => initGraphQLServer, query: () => query }); module.exports = __toCommonJS(graphql_exports); // src/graphql/init.ts var import_reflect_metadata = require("reflect-metadata"); var import_server = require("@apollo/server"); var import_default = require("@apollo/server/plugin/landingPage/default"); var import_next = require("@as-integrations/next"); var import_type_graphql = require("type-graphql"); async function initGraphQLServer({ authChecker, resolvers, plugins, context }) { const { typeDefs, resolvers: builtResolvers } = await (0, import_type_graphql.buildTypeDefsAndResolvers)({ validate: true, authChecker, resolvers }); const server = new import_server.ApolloServer({ typeDefs, resolvers: builtResolvers, plugins: [ process.env.NODE_ENV === "production" ? (0, import_default.ApolloServerPluginLandingPageProductionDefault)() : (0, import_default.ApolloServerPluginLandingPageLocalDefault)(), { async requestDidStart({ request, contextValue }) { if ( // eslint-disable-next-line contextValue.onlyQuery && !request.query?.startsWith("query") ) contextValue.userId = null; } }, ...plugins || [] ], introspection: process.env.NODE_ENV !== "production", status400ForVariableCoercionErrors: true }); const handler = (0, import_next.startServerAndCreateNextHandler)(server, { context }); return { GET: (request) => handler(request), POST: (request) => handler(request), context }; } // src/graphql/utils.ts var import_type_graphql2 = require("type-graphql"); function query(fn, options) { return { ...options, fn }; } function field(fn, options) { return { ...options, fn }; } function QueryLibrary(queries) { let GeneratedResolver = class { }; GeneratedResolver = __decorateClass([ (0, import_type_graphql2.Resolver)() ], GeneratedResolver); for (const key in queries) { const def = queries[key]; if (!def) continue; Object.defineProperty(GeneratedResolver.prototype, key, { value: async function(ctx, data) { return def.fn(ctx, data); }, writable: false }); const descriptor = Object.getOwnPropertyDescriptor( GeneratedResolver.prototype, key ); if (def.mutation) { (0, import_type_graphql2.Mutation)(() => def.output, def.outputOptions)( GeneratedResolver.prototype, key, descriptor ); } else { (0, import_type_graphql2.Query)(() => def.output, def.outputOptions)( GeneratedResolver.prototype, key, descriptor ); } (0, import_type_graphql2.Ctx)()(GeneratedResolver.prototype, key, 0); if (def.input) { (0, import_type_graphql2.Arg)("input", () => def.input || String, def.inputOptions)( GeneratedResolver.prototype, key, 1 ); } } return GeneratedResolver; } function FieldLibrary(type, queries) { let GeneratedResolver = class { }; GeneratedResolver = __decorateClass([ (0, import_type_graphql2.Resolver)(() => type) ], GeneratedResolver); for (const key in queries) { const def = queries[key]; if (!def) continue; Object.defineProperty(GeneratedResolver.prototype, key, { value: async function(root, ctx, input) { return def.fn(root, ctx, input); }, writable: false }); const descriptor = Object.getOwnPropertyDescriptor( GeneratedResolver.prototype, key ); if (def.authorized) { (0, import_type_graphql2.Authorized)()(GeneratedResolver, key); } (0, import_type_graphql2.Root)()(GeneratedResolver.prototype, key, 0); (0, import_type_graphql2.FieldResolver)(() => def.output, def.outputOptions)( GeneratedResolver.prototype, key, descriptor ); (0, import_type_graphql2.Ctx)()(GeneratedResolver.prototype, key, 1); if (def.input) { (0, import_type_graphql2.Arg)("input", () => def.input || String, def.inputOptions)( GeneratedResolver.prototype, key, 2 ); } } return GeneratedResolver; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { FieldLibrary, QueryLibrary, field, initGraphQLServer, query });