buro26-strapi-graphql 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "buro26-strapi-graphql",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Extension and utilities for Strapi GraphQL",
5
- "main": "./strapi-server.js",
6
- "module": "./server/server.mjs",
7
5
  "types": "./server/server.d.ts",
8
6
  "files": [
9
7
  "dist",
8
+ "server",
10
9
  "package.json",
11
10
  "strapi-server.js"
12
11
  ],
@@ -0,0 +1,38 @@
1
+ import { Strapi } from '@strapi/strapi';
2
+
3
+ interface GraphQLExtension {
4
+ /**
5
+ * Called when the extension is initialized, use this to perform any initialization logic
6
+ * E.g. disabled CRUDs
7
+ * @see https://docs.strapi.io/developer-docs/latest/plugins/graphql.html#disabling-operations-in-the-shadow-crud
8
+ */
9
+ init?: () => void;
10
+ /**
11
+ * Return array the types for the extension
12
+ * Use Nexus to define types
13
+ */
14
+ getTypes: () => any[];
15
+ /**
16
+ * Return resolvers for the extension
17
+ * Return an object with Query and Mutation resolvers
18
+ */
19
+ resolvers: () => {
20
+ Query: any;
21
+ Mutation: any;
22
+ };
23
+ /**
24
+ * Return resolver config for the extension
25
+ * This is used to configure middlewares and other resolver options
26
+ * @see https://docs.strapi.io/developer-docs/latest/plugins/graphql.html#extending-the-schema
27
+ */
28
+ getResolverConfig: () => any;
29
+ }
30
+
31
+ declare const createGraphQLExtension: (factory: (strapi: Strapi) => GraphQLExtension) => GraphQLExtension;
32
+ declare const _default: {
33
+ register: ({ strapi }: {
34
+ strapi: Strapi;
35
+ }) => Promise<void>;
36
+ };
37
+
38
+ export { createGraphQLExtension, _default as default };
@@ -0,0 +1,38 @@
1
+ import { Strapi } from '@strapi/strapi';
2
+
3
+ interface GraphQLExtension {
4
+ /**
5
+ * Called when the extension is initialized, use this to perform any initialization logic
6
+ * E.g. disabled CRUDs
7
+ * @see https://docs.strapi.io/developer-docs/latest/plugins/graphql.html#disabling-operations-in-the-shadow-crud
8
+ */
9
+ init?: () => void;
10
+ /**
11
+ * Return array the types for the extension
12
+ * Use Nexus to define types
13
+ */
14
+ getTypes: () => any[];
15
+ /**
16
+ * Return resolvers for the extension
17
+ * Return an object with Query and Mutation resolvers
18
+ */
19
+ resolvers: () => {
20
+ Query: any;
21
+ Mutation: any;
22
+ };
23
+ /**
24
+ * Return resolver config for the extension
25
+ * This is used to configure middlewares and other resolver options
26
+ * @see https://docs.strapi.io/developer-docs/latest/plugins/graphql.html#extending-the-schema
27
+ */
28
+ getResolverConfig: () => any;
29
+ }
30
+
31
+ declare const createGraphQLExtension: (factory: (strapi: Strapi) => GraphQLExtension) => GraphQLExtension;
32
+ declare const _default: {
33
+ register: ({ strapi }: {
34
+ strapi: Strapi;
35
+ }) => Promise<void>;
36
+ };
37
+
38
+ export { createGraphQLExtension, _default as default };
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var src_exports = {};
32
+ __export(src_exports, {
33
+ createGraphQLExtension: () => createGraphQLExtension,
34
+ default: () => src_default
35
+ });
36
+ module.exports = __toCommonJS(src_exports);
37
+
38
+ // src/utils/files.ts
39
+ var import_fs = __toESM(require("fs"));
40
+ var getAllFiles = (dirPath, arrayOfFiles = []) => {
41
+ const files = import_fs.default.readdirSync(dirPath);
42
+ files.forEach((file) => {
43
+ if (import_fs.default.statSync(dirPath + "/" + file).isDirectory()) {
44
+ arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
45
+ return;
46
+ }
47
+ if (!dirPath.endsWith("/graphql") && !dirPath.includes("/graphql/")) {
48
+ return;
49
+ }
50
+ const ext = require(`${dirPath}/${file.replace(".js", "")}`);
51
+ if (!ext) {
52
+ return;
53
+ }
54
+ arrayOfFiles.push({
55
+ ...ext,
56
+ ...ext.default || {}
57
+ });
58
+ });
59
+ return arrayOfFiles;
60
+ };
61
+
62
+ // src/register.ts
63
+ var import_nexus = require("nexus");
64
+ var register = async ({ strapi: strapi2 }) => {
65
+ console.log({
66
+ dirs: strapi2.dirs
67
+ });
68
+ const extensions = [
69
+ ...getAllFiles(strapi2.dirs.dist.src)
70
+ ];
71
+ const extensionService = strapi2.plugin("graphql").service("extension");
72
+ extensionService.use(() => ({
73
+ plugins: [
74
+ (0, import_nexus.fieldAuthorizePlugin)()
75
+ ]
76
+ }));
77
+ for (const extension of extensions) {
78
+ extension?.init ? extension.init() : null;
79
+ extensionService.use(() => ({
80
+ types: extension?.getTypes?.() ?? [],
81
+ resolvers: extension?.resolvers?.() ?? { Query: {}, Mutation: {} },
82
+ resolversConfig: extension?.getResolverConfig?.() ?? {}
83
+ }));
84
+ }
85
+ };
86
+
87
+ // src/index.ts
88
+ var createGraphQLExtension = (factory) => factory(strapi);
89
+ var src_default = {
90
+ register
91
+ };
92
+ // Annotate the CommonJS export names for ESM import in node:
93
+ 0 && (module.exports = {
94
+ createGraphQLExtension
95
+ });
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/utils/files.ts","../src/register.ts"],"sourcesContent":["import {register} from \"@/register\";\r\nimport {type Strapi} from \"@strapi/strapi\";\r\nimport {type GraphQLExtension} from \"@/types\";\r\n\r\nexport const createGraphQLExtension = (factory: (strapi: Strapi) => GraphQLExtension): GraphQLExtension => factory(strapi)\r\n\r\nexport default {\r\n register,\r\n}","import fs from \"fs\";\r\nimport {GraphQLExtension} from \"@/types\";\r\n\r\nexport const getAllFiles = (dirPath: string, arrayOfFiles: GraphQLExtension[] = []): GraphQLExtension[] => {\r\n const files = fs.readdirSync(dirPath)\r\n\r\n files.forEach((file) => {\r\n if (fs.statSync(dirPath + \"/\" + file).isDirectory()) {\r\n arrayOfFiles = getAllFiles(dirPath + \"/\" + file, arrayOfFiles)\r\n\r\n return\r\n }\r\n\r\n if (!dirPath.endsWith('/graphql') && !dirPath.includes('/graphql/')) {\r\n return\r\n }\r\n\r\n const ext = require(`${dirPath}/${file.replace('.js', '')}`)\r\n\r\n if (!ext) {\r\n return\r\n }\r\n\r\n arrayOfFiles.push({\r\n ...ext,\r\n ...(ext.default || {})\r\n })\r\n })\r\n\r\n return arrayOfFiles\r\n}","import {type Strapi} from \"@strapi/strapi\";\r\nimport {GraphQLExtension} from \"@/types\";\r\nimport {getAllFiles} from \"@/utils/files\";\r\nimport {fieldAuthorizePlugin} from \"nexus\";\r\n\r\n\r\nexport const register = async ({strapi}: { strapi: Strapi }) => {\r\n console.log({\r\n dirs: strapi.dirs,\r\n })\r\n const extensions: GraphQLExtension[] = [\r\n ...getAllFiles(strapi.dirs.dist.src),\r\n ]\r\n const extensionService = strapi.plugin('graphql').service('extension')\r\n\r\n extensionService.use(() => ({\r\n plugins: [\r\n fieldAuthorizePlugin(),\r\n ]\r\n }))\r\n\r\n for (const extension of extensions) {\r\n extension?.init ? extension.init() : null\r\n extensionService.use(() => ({\r\n types: extension?.getTypes?.() ?? [],\r\n resolvers: extension?.resolvers?.() ?? {Query: {}, Mutation: {}},\r\n resolversConfig: extension?.getResolverConfig?.() ?? {},\r\n }))\r\n }\r\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,gBAAe;AAGR,IAAM,cAAc,CAAC,SAAiB,eAAmC,CAAC,MAA0B;AACvG,QAAM,QAAQ,UAAAA,QAAG,YAAY,OAAO;AAEpC,QAAM,QAAQ,CAAC,SAAS;AACpB,QAAI,UAAAA,QAAG,SAAS,UAAU,MAAM,IAAI,EAAE,YAAY,GAAG;AACjD,qBAAe,YAAY,UAAU,MAAM,MAAM,YAAY;AAE7D;AAAA,IACJ;AAEA,QAAI,CAAC,QAAQ,SAAS,UAAU,KAAK,CAAC,QAAQ,SAAS,WAAW,GAAG;AACjE;AAAA,IACJ;AAEA,UAAM,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,OAAO,EAAE,CAAC,EAAE;AAE3D,QAAI,CAAC,KAAK;AACN;AAAA,IACJ;AAEA,iBAAa,KAAK;AAAA,MACd,GAAG;AAAA,MACH,GAAI,IAAI,WAAW,CAAC;AAAA,IACxB,CAAC;AAAA,EACL,CAAC;AAED,SAAO;AACX;;;AC3BA,mBAAmC;AAG5B,IAAM,WAAW,OAAO,EAAC,QAAAC,QAAM,MAA0B;AAC5D,UAAQ,IAAI;AAAA,IACR,MAAMA,QAAO;AAAA,EACjB,CAAC;AACD,QAAM,aAAiC;AAAA,IACnC,GAAG,YAAYA,QAAO,KAAK,KAAK,GAAG;AAAA,EACvC;AACA,QAAM,mBAAmBA,QAAO,OAAO,SAAS,EAAE,QAAQ,WAAW;AAErE,mBAAiB,IAAI,OAAO;AAAA,IACxB,SAAS;AAAA,UACL,mCAAqB;AAAA,IACzB;AAAA,EACJ,EAAE;AAEF,aAAW,aAAa,YAAY;AAChC,eAAW,OAAO,UAAU,KAAK,IAAI;AACrC,qBAAiB,IAAI,OAAO;AAAA,MACxB,OAAO,WAAW,WAAW,KAAK,CAAC;AAAA,MACnC,WAAW,WAAW,YAAY,KAAK,EAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAC;AAAA,MAC/D,iBAAiB,WAAW,oBAAoB,KAAK,CAAC;AAAA,IAC1D,EAAE;AAAA,EACN;AACJ;;;AFzBO,IAAM,yBAAyB,CAAC,YAAoE,QAAQ,MAAM;AAEzH,IAAO,cAAQ;AAAA,EACX;AACJ;","names":["fs","strapi"]}
@@ -0,0 +1,66 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined") return require.apply(this, arguments);
5
+ throw Error('Dynamic require of "' + x + '" is not supported');
6
+ });
7
+
8
+ // src/utils/files.ts
9
+ import fs from "fs";
10
+ var getAllFiles = (dirPath, arrayOfFiles = []) => {
11
+ const files = fs.readdirSync(dirPath);
12
+ files.forEach((file) => {
13
+ if (fs.statSync(dirPath + "/" + file).isDirectory()) {
14
+ arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
15
+ return;
16
+ }
17
+ if (!dirPath.endsWith("/graphql") && !dirPath.includes("/graphql/")) {
18
+ return;
19
+ }
20
+ const ext = __require(`${dirPath}/${file.replace(".js", "")}`);
21
+ if (!ext) {
22
+ return;
23
+ }
24
+ arrayOfFiles.push({
25
+ ...ext,
26
+ ...ext.default || {}
27
+ });
28
+ });
29
+ return arrayOfFiles;
30
+ };
31
+
32
+ // src/register.ts
33
+ import { fieldAuthorizePlugin } from "nexus";
34
+ var register = async ({ strapi: strapi2 }) => {
35
+ console.log({
36
+ dirs: strapi2.dirs
37
+ });
38
+ const extensions = [
39
+ ...getAllFiles(strapi2.dirs.dist.src)
40
+ ];
41
+ const extensionService = strapi2.plugin("graphql").service("extension");
42
+ extensionService.use(() => ({
43
+ plugins: [
44
+ fieldAuthorizePlugin()
45
+ ]
46
+ }));
47
+ for (const extension of extensions) {
48
+ extension?.init ? extension.init() : null;
49
+ extensionService.use(() => ({
50
+ types: extension?.getTypes?.() ?? [],
51
+ resolvers: extension?.resolvers?.() ?? { Query: {}, Mutation: {} },
52
+ resolversConfig: extension?.getResolverConfig?.() ?? {}
53
+ }));
54
+ }
55
+ };
56
+
57
+ // src/index.ts
58
+ var createGraphQLExtension = (factory) => factory(strapi);
59
+ var src_default = {
60
+ register
61
+ };
62
+ export {
63
+ createGraphQLExtension,
64
+ src_default as default
65
+ };
66
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/files.ts","../src/register.ts","../src/index.ts"],"sourcesContent":["import fs from \"fs\";\r\nimport {GraphQLExtension} from \"@/types\";\r\n\r\nexport const getAllFiles = (dirPath: string, arrayOfFiles: GraphQLExtension[] = []): GraphQLExtension[] => {\r\n const files = fs.readdirSync(dirPath)\r\n\r\n files.forEach((file) => {\r\n if (fs.statSync(dirPath + \"/\" + file).isDirectory()) {\r\n arrayOfFiles = getAllFiles(dirPath + \"/\" + file, arrayOfFiles)\r\n\r\n return\r\n }\r\n\r\n if (!dirPath.endsWith('/graphql') && !dirPath.includes('/graphql/')) {\r\n return\r\n }\r\n\r\n const ext = require(`${dirPath}/${file.replace('.js', '')}`)\r\n\r\n if (!ext) {\r\n return\r\n }\r\n\r\n arrayOfFiles.push({\r\n ...ext,\r\n ...(ext.default || {})\r\n })\r\n })\r\n\r\n return arrayOfFiles\r\n}","import {type Strapi} from \"@strapi/strapi\";\r\nimport {GraphQLExtension} from \"@/types\";\r\nimport {getAllFiles} from \"@/utils/files\";\r\nimport {fieldAuthorizePlugin} from \"nexus\";\r\n\r\n\r\nexport const register = async ({strapi}: { strapi: Strapi }) => {\r\n console.log({\r\n dirs: strapi.dirs,\r\n })\r\n const extensions: GraphQLExtension[] = [\r\n ...getAllFiles(strapi.dirs.dist.src),\r\n ]\r\n const extensionService = strapi.plugin('graphql').service('extension')\r\n\r\n extensionService.use(() => ({\r\n plugins: [\r\n fieldAuthorizePlugin(),\r\n ]\r\n }))\r\n\r\n for (const extension of extensions) {\r\n extension?.init ? extension.init() : null\r\n extensionService.use(() => ({\r\n types: extension?.getTypes?.() ?? [],\r\n resolvers: extension?.resolvers?.() ?? {Query: {}, Mutation: {}},\r\n resolversConfig: extension?.getResolverConfig?.() ?? {},\r\n }))\r\n }\r\n}","import {register} from \"@/register\";\r\nimport {type Strapi} from \"@strapi/strapi\";\r\nimport {type GraphQLExtension} from \"@/types\";\r\n\r\nexport const createGraphQLExtension = (factory: (strapi: Strapi) => GraphQLExtension): GraphQLExtension => factory(strapi)\r\n\r\nexport default {\r\n register,\r\n}"],"mappings":";;;;;;;;AAAA,OAAO,QAAQ;AAGR,IAAM,cAAc,CAAC,SAAiB,eAAmC,CAAC,MAA0B;AACvG,QAAM,QAAQ,GAAG,YAAY,OAAO;AAEpC,QAAM,QAAQ,CAAC,SAAS;AACpB,QAAI,GAAG,SAAS,UAAU,MAAM,IAAI,EAAE,YAAY,GAAG;AACjD,qBAAe,YAAY,UAAU,MAAM,MAAM,YAAY;AAE7D;AAAA,IACJ;AAEA,QAAI,CAAC,QAAQ,SAAS,UAAU,KAAK,CAAC,QAAQ,SAAS,WAAW,GAAG;AACjE;AAAA,IACJ;AAEA,UAAM,MAAM,UAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,OAAO,EAAE,CAAC,EAAE;AAE3D,QAAI,CAAC,KAAK;AACN;AAAA,IACJ;AAEA,iBAAa,KAAK;AAAA,MACd,GAAG;AAAA,MACH,GAAI,IAAI,WAAW,CAAC;AAAA,IACxB,CAAC;AAAA,EACL,CAAC;AAED,SAAO;AACX;;;AC3BA,SAAQ,4BAA2B;AAG5B,IAAM,WAAW,OAAO,EAAC,QAAAA,QAAM,MAA0B;AAC5D,UAAQ,IAAI;AAAA,IACR,MAAMA,QAAO;AAAA,EACjB,CAAC;AACD,QAAM,aAAiC;AAAA,IACnC,GAAG,YAAYA,QAAO,KAAK,KAAK,GAAG;AAAA,EACvC;AACA,QAAM,mBAAmBA,QAAO,OAAO,SAAS,EAAE,QAAQ,WAAW;AAErE,mBAAiB,IAAI,OAAO;AAAA,IACxB,SAAS;AAAA,MACL,qBAAqB;AAAA,IACzB;AAAA,EACJ,EAAE;AAEF,aAAW,aAAa,YAAY;AAChC,eAAW,OAAO,UAAU,KAAK,IAAI;AACrC,qBAAiB,IAAI,OAAO;AAAA,MACxB,OAAO,WAAW,WAAW,KAAK,CAAC;AAAA,MACnC,WAAW,WAAW,YAAY,KAAK,EAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAC;AAAA,MAC/D,iBAAiB,WAAW,oBAAoB,KAAK,CAAC;AAAA,IAC1D,EAAE;AAAA,EACN;AACJ;;;ACzBO,IAAM,yBAAyB,CAAC,YAAoE,QAAQ,MAAM;AAEzH,IAAO,cAAQ;AAAA,EACX;AACJ;","names":["strapi"]}