buro26-strapi-graphql 0.0.1 → 0.0.2
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 +3 -2
- package/server/index.d.mts +38 -0
- package/server/index.d.ts +38 -0
- package/server/index.js +130 -0
- package/server/index.js.map +1 -0
- package/server/index.mjs +102 -0
- package/server/index.mjs.map +1 -0
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "buro26-strapi-graphql",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Extension and utilities for Strapi GraphQL",
|
|
5
5
|
"main": "./strapi-server.js",
|
|
6
|
-
"module": "./server
|
|
6
|
+
"module": "./strapi-server.js",
|
|
7
7
|
"types": "./server/server.d.ts",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist",
|
|
10
|
+
"server",
|
|
10
11
|
"package.json",
|
|
11
12
|
"strapi-server.js"
|
|
12
13
|
],
|
|
@@ -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 };
|
package/server/index.js
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
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 __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __spreadValues = (a, b) => {
|
|
12
|
+
for (var prop in b || (b = {}))
|
|
13
|
+
if (__hasOwnProp.call(b, prop))
|
|
14
|
+
__defNormalProp(a, prop, b[prop]);
|
|
15
|
+
if (__getOwnPropSymbols)
|
|
16
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
+
if (__propIsEnum.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
}
|
|
20
|
+
return a;
|
|
21
|
+
};
|
|
22
|
+
var __export = (target, all) => {
|
|
23
|
+
for (var name in all)
|
|
24
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
25
|
+
};
|
|
26
|
+
var __copyProps = (to, from, except, desc) => {
|
|
27
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
28
|
+
for (let key of __getOwnPropNames(from))
|
|
29
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
30
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
31
|
+
}
|
|
32
|
+
return to;
|
|
33
|
+
};
|
|
34
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
35
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
36
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
37
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
38
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
39
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
40
|
+
mod
|
|
41
|
+
));
|
|
42
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
43
|
+
var __async = (__this, __arguments, generator) => {
|
|
44
|
+
return new Promise((resolve, reject) => {
|
|
45
|
+
var fulfilled = (value) => {
|
|
46
|
+
try {
|
|
47
|
+
step(generator.next(value));
|
|
48
|
+
} catch (e) {
|
|
49
|
+
reject(e);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var rejected = (value) => {
|
|
53
|
+
try {
|
|
54
|
+
step(generator.throw(value));
|
|
55
|
+
} catch (e) {
|
|
56
|
+
reject(e);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
60
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// src/index.ts
|
|
65
|
+
var src_exports = {};
|
|
66
|
+
__export(src_exports, {
|
|
67
|
+
createGraphQLExtension: () => createGraphQLExtension,
|
|
68
|
+
default: () => src_default
|
|
69
|
+
});
|
|
70
|
+
module.exports = __toCommonJS(src_exports);
|
|
71
|
+
|
|
72
|
+
// src/utils/files.ts
|
|
73
|
+
var import_fs = __toESM(require("fs"));
|
|
74
|
+
var getAllFiles = (dirPath, arrayOfFiles = []) => {
|
|
75
|
+
const files = import_fs.default.readdirSync(dirPath);
|
|
76
|
+
files.forEach((file) => {
|
|
77
|
+
if (import_fs.default.statSync(dirPath + "/" + file).isDirectory()) {
|
|
78
|
+
arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (!dirPath.endsWith("/graphql") && !dirPath.includes("/graphql/")) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const ext = require(`${dirPath}/${file.replace(".js", "")}`);
|
|
85
|
+
if (!ext) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
arrayOfFiles.push(__spreadValues(__spreadValues({}, ext), ext.default || {}));
|
|
89
|
+
});
|
|
90
|
+
return arrayOfFiles;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
// src/register.ts
|
|
94
|
+
var import_nexus = require("nexus");
|
|
95
|
+
var register = (_0) => __async(void 0, [_0], function* ({ strapi: strapi2 }) {
|
|
96
|
+
console.log({
|
|
97
|
+
dirs: strapi2.dirs
|
|
98
|
+
});
|
|
99
|
+
const extensions = [
|
|
100
|
+
...getAllFiles(strapi2.dirs.dist.src)
|
|
101
|
+
];
|
|
102
|
+
const extensionService = strapi2.plugin("graphql").service("extension");
|
|
103
|
+
extensionService.use(() => ({
|
|
104
|
+
plugins: [
|
|
105
|
+
(0, import_nexus.fieldAuthorizePlugin)()
|
|
106
|
+
]
|
|
107
|
+
}));
|
|
108
|
+
for (const extension of extensions) {
|
|
109
|
+
(extension == null ? void 0 : extension.init) ? extension.init() : null;
|
|
110
|
+
extensionService.use(() => {
|
|
111
|
+
var _a, _b, _c, _d, _e, _f;
|
|
112
|
+
return {
|
|
113
|
+
types: (_b = (_a = extension == null ? void 0 : extension.getTypes) == null ? void 0 : _a.call(extension)) != null ? _b : [],
|
|
114
|
+
resolvers: (_d = (_c = extension == null ? void 0 : extension.resolvers) == null ? void 0 : _c.call(extension)) != null ? _d : { Query: {}, Mutation: {} },
|
|
115
|
+
resolversConfig: (_f = (_e = extension == null ? void 0 : extension.getResolverConfig) == null ? void 0 : _e.call(extension)) != null ? _f : {}
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
// src/index.ts
|
|
122
|
+
var createGraphQLExtension = (factory) => factory(strapi);
|
|
123
|
+
var src_default = {
|
|
124
|
+
register
|
|
125
|
+
};
|
|
126
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
127
|
+
0 && (module.exports = {
|
|
128
|
+
createGraphQLExtension
|
|
129
|
+
});
|
|
130
|
+
//# 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,kCACX,MACC,IAAI,WAAW,CAAC,EACvB;AAAA,EACL,CAAC;AAED,SAAO;AACX;;;AC3BA,mBAAmC;AAG5B,IAAM,WAAW,CAAO,OAAiC,iBAAjC,KAAiC,WAAjC,EAAC,QAAAC,QAAM,GAA0B;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,4CAAW,QAAO,UAAU,KAAK,IAAI;AACrC,qBAAiB,IAAI,MAAG;AAvBhC;AAuBoC;AAAA,QACxB,QAAO,kDAAW,aAAX,mDAA2B,CAAC;AAAA,QACnC,YAAW,kDAAW,cAAX,mDAA4B,EAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAC;AAAA,QAC/D,kBAAiB,kDAAW,sBAAX,mDAAoC,CAAC;AAAA,MAC1D;AAAA,KAAE;AAAA,EACN;AACJ;;;AFzBO,IAAM,yBAAyB,CAAC,YAAoE,QAAQ,MAAM;AAEzH,IAAO,cAAQ;AAAA,EACX;AACJ;","names":["fs","strapi"]}
|
package/server/index.mjs
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __spreadValues = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
18
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
19
|
+
}) : x)(function(x) {
|
|
20
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
21
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
22
|
+
});
|
|
23
|
+
var __async = (__this, __arguments, generator) => {
|
|
24
|
+
return new Promise((resolve, reject) => {
|
|
25
|
+
var fulfilled = (value) => {
|
|
26
|
+
try {
|
|
27
|
+
step(generator.next(value));
|
|
28
|
+
} catch (e) {
|
|
29
|
+
reject(e);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var rejected = (value) => {
|
|
33
|
+
try {
|
|
34
|
+
step(generator.throw(value));
|
|
35
|
+
} catch (e) {
|
|
36
|
+
reject(e);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
40
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// src/utils/files.ts
|
|
45
|
+
import fs from "fs";
|
|
46
|
+
var getAllFiles = (dirPath, arrayOfFiles = []) => {
|
|
47
|
+
const files = fs.readdirSync(dirPath);
|
|
48
|
+
files.forEach((file) => {
|
|
49
|
+
if (fs.statSync(dirPath + "/" + file).isDirectory()) {
|
|
50
|
+
arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (!dirPath.endsWith("/graphql") && !dirPath.includes("/graphql/")) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const ext = __require(`${dirPath}/${file.replace(".js", "")}`);
|
|
57
|
+
if (!ext) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
arrayOfFiles.push(__spreadValues(__spreadValues({}, ext), ext.default || {}));
|
|
61
|
+
});
|
|
62
|
+
return arrayOfFiles;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// src/register.ts
|
|
66
|
+
import { fieldAuthorizePlugin } from "nexus";
|
|
67
|
+
var register = (_0) => __async(void 0, [_0], function* ({ strapi: strapi2 }) {
|
|
68
|
+
console.log({
|
|
69
|
+
dirs: strapi2.dirs
|
|
70
|
+
});
|
|
71
|
+
const extensions = [
|
|
72
|
+
...getAllFiles(strapi2.dirs.dist.src)
|
|
73
|
+
];
|
|
74
|
+
const extensionService = strapi2.plugin("graphql").service("extension");
|
|
75
|
+
extensionService.use(() => ({
|
|
76
|
+
plugins: [
|
|
77
|
+
fieldAuthorizePlugin()
|
|
78
|
+
]
|
|
79
|
+
}));
|
|
80
|
+
for (const extension of extensions) {
|
|
81
|
+
(extension == null ? void 0 : extension.init) ? extension.init() : null;
|
|
82
|
+
extensionService.use(() => {
|
|
83
|
+
var _a, _b, _c, _d, _e, _f;
|
|
84
|
+
return {
|
|
85
|
+
types: (_b = (_a = extension == null ? void 0 : extension.getTypes) == null ? void 0 : _a.call(extension)) != null ? _b : [],
|
|
86
|
+
resolvers: (_d = (_c = extension == null ? void 0 : extension.resolvers) == null ? void 0 : _c.call(extension)) != null ? _d : { Query: {}, Mutation: {} },
|
|
87
|
+
resolversConfig: (_f = (_e = extension == null ? void 0 : extension.getResolverConfig) == null ? void 0 : _e.call(extension)) != null ? _f : {}
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// src/index.ts
|
|
94
|
+
var createGraphQLExtension = (factory) => factory(strapi);
|
|
95
|
+
var src_default = {
|
|
96
|
+
register
|
|
97
|
+
};
|
|
98
|
+
export {
|
|
99
|
+
createGraphQLExtension,
|
|
100
|
+
src_default as default
|
|
101
|
+
};
|
|
102
|
+
//# 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,kCACX,MACC,IAAI,WAAW,CAAC,EACvB;AAAA,EACL,CAAC;AAED,SAAO;AACX;;;AC3BA,SAAQ,4BAA2B;AAG5B,IAAM,WAAW,CAAO,OAAiC,iBAAjC,KAAiC,WAAjC,EAAC,QAAAA,QAAM,GAA0B;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,4CAAW,QAAO,UAAU,KAAK,IAAI;AACrC,qBAAiB,IAAI,MAAG;AAvBhC;AAuBoC;AAAA,QACxB,QAAO,kDAAW,aAAX,mDAA2B,CAAC;AAAA,QACnC,YAAW,kDAAW,cAAX,mDAA4B,EAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAC;AAAA,QAC/D,kBAAiB,kDAAW,sBAAX,mDAAoC,CAAC;AAAA,MAC1D;AAAA,KAAE;AAAA,EACN;AACJ;;;ACzBO,IAAM,yBAAyB,CAAC,YAAoE,QAAQ,MAAM;AAEzH,IAAO,cAAQ;AAAA,EACX;AACJ;","names":["strapi"]}
|