@extravirgin/payload-plugin-meilisearch 0.0.1-1 → 0.0.1-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.
Files changed (51) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/indexCollections.d.ts +3 -0
  4. package/dist/indexCollections.js +282 -0
  5. package/dist/indexCollections.js.map +1 -0
  6. package/dist/mocks/mockFile.d.ts +1 -0
  7. package/dist/mocks/mockFile.js +3 -0
  8. package/dist/mocks/mockFile.js.map +1 -0
  9. package/dist/onInitExtension.d.ts +3 -0
  10. package/dist/onInitExtension.js +17 -0
  11. package/dist/onInitExtension.js.map +1 -0
  12. package/dist/plugin.d.ts +3 -0
  13. package/dist/plugin.js +103 -0
  14. package/dist/plugin.js.map +1 -0
  15. package/dist/types.d.ts +17 -0
  16. package/dist/types.js +3 -0
  17. package/dist/types.js.map +1 -0
  18. package/dist/webpack.d.ts +3 -0
  19. package/dist/webpack.js +32 -0
  20. package/dist/webpack.js.map +1 -0
  21. package/package.json +4 -1
  22. package/.editorconfig +0 -10
  23. package/.eslintrc.js +0 -17
  24. package/.github/workflows/test.yml +0 -19
  25. package/.prettierrc.js +0 -8
  26. package/dev/.env.example +0 -2
  27. package/dev/Dockerfile +0 -27
  28. package/dev/docker-compose.yml +0 -31
  29. package/dev/jest.config.js +0 -12
  30. package/dev/nodemon.json +0 -6
  31. package/dev/package.json +0 -35
  32. package/dev/plugin.spec.ts +0 -30
  33. package/dev/src/collections/Examples.ts +0 -17
  34. package/dev/src/collections/Users.ts +0 -15
  35. package/dev/src/mocks/fileStub.js +0 -1
  36. package/dev/src/payload.config.ts +0 -44
  37. package/dev/src/server.ts +0 -29
  38. package/dev/tsconfig.json +0 -34
  39. package/eslint-config/index.js +0 -15
  40. package/eslint-config/rules/import.js +0 -38
  41. package/eslint-config/rules/prettier.js +0 -7
  42. package/eslint-config/rules/style.js +0 -21
  43. package/eslint-config/rules/typescript.js +0 -628
  44. package/src/index.ts +0 -3
  45. package/src/indexCollections.ts +0 -155
  46. package/src/mocks/mockFile.js +0 -1
  47. package/src/onInitExtension.ts +0 -16
  48. package/src/plugin.ts +0 -67
  49. package/src/types.ts +0 -20
  50. package/src/webpack.ts +0 -28
  51. package/tsconfig.json +0 -23
@@ -0,0 +1,2 @@
1
+ export { meilisearchPlugin } from './plugin';
2
+ export type { PluginTypes } from './types';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAAnC,2GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,3 @@
1
+ import { CollectionConfig } from "payload/dist/exports/types";
2
+ import { PluginTypes } from "./types";
3
+ export declare const indexCollections: (collections: CollectionConfig[], config: PluginTypes) => CollectionConfig[];
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ };
58
+ Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.indexCollections = void 0;
60
+ var meilisearch_1 = require("meilisearch");
61
+ var html_to_text_1 = require("html-to-text");
62
+ var richtext_lexical_1 = require("@payloadcms/richtext-lexical");
63
+ var meilisearch;
64
+ function getMeilisearchClient(config) {
65
+ if (!meilisearch) {
66
+ meilisearch = new meilisearch_1.MeiliSearch({
67
+ host: config.host,
68
+ apiKey: config.apiKey,
69
+ });
70
+ }
71
+ return meilisearch;
72
+ }
73
+ var indexCollections = function (collections, config) {
74
+ var getIndexName = function (collectionSlug) { var _a; return "".concat((_a = config === null || config === void 0 ? void 0 : config.indexPrefix) !== null && _a !== void 0 ? _a : '').concat(collectionSlug); };
75
+ var client = getMeilisearchClient(config);
76
+ return collections.map(function (collection) {
77
+ var _a;
78
+ if ((config === null || config === void 0 ? void 0 : config.collections) && !(config === null || config === void 0 ? void 0 : config.collections.find(function (c) { return c.slug === collection.slug; }))) {
79
+ return collection;
80
+ }
81
+ return __assign(__assign({}, collection), { hooks: __assign(__assign({}, (collection.hooks || {})), { afterChange: __spreadArray(__spreadArray([], (((_a = collection.hooks) === null || _a === void 0 ? void 0 : _a.afterChange) || []), true), [
82
+ function (_a) {
83
+ var doc = _a.doc, operation = _a.operation, req = _a.req;
84
+ return __awaiter(void 0, void 0, void 0, function () {
85
+ var index, transformedDoc, _b;
86
+ return __generator(this, function (_c) {
87
+ switch (_c.label) {
88
+ case 0: return [4 /*yield*/, upsertIndex(client, getIndexName(collection.slug))];
89
+ case 1:
90
+ _c.sent();
91
+ index = client.index(getIndexName(collection.slug));
92
+ if (!(operation === 'create' || operation === 'update')) return [3 /*break*/, 4];
93
+ _b = [{}];
94
+ return [4 /*yield*/, transformDocumentForMeilisearch(doc, collection.fields, req)];
95
+ case 2:
96
+ transformedDoc = __assign.apply(void 0, [__assign.apply(void 0, _b.concat([_c.sent()])), { id: doc.id }]);
97
+ return [4 /*yield*/, index.addDocuments([transformedDoc])];
98
+ case 3:
99
+ _c.sent();
100
+ return [3 /*break*/, 6];
101
+ case 4:
102
+ if (!(operation === 'delete')) return [3 /*break*/, 6];
103
+ return [4 /*yield*/, index.deleteDocument(doc.id)];
104
+ case 5:
105
+ _c.sent();
106
+ _c.label = 6;
107
+ case 6: return [2 /*return*/];
108
+ }
109
+ });
110
+ });
111
+ },
112
+ ], false) }) });
113
+ });
114
+ };
115
+ exports.indexCollections = indexCollections;
116
+ function upsertIndex(client, indexUID) {
117
+ var _a;
118
+ return __awaiter(this, void 0, void 0, function () {
119
+ var error_1;
120
+ return __generator(this, function (_b) {
121
+ switch (_b.label) {
122
+ case 0:
123
+ _b.trys.push([0, 2, , 6]);
124
+ // Attempt to retrieve the index
125
+ return [4 /*yield*/, client.getIndex(indexUID)];
126
+ case 1:
127
+ // Attempt to retrieve the index
128
+ _b.sent();
129
+ return [3 /*break*/, 6];
130
+ case 2:
131
+ error_1 = _b.sent();
132
+ if (!(((_a = error_1 === null || error_1 === void 0 ? void 0 : error_1.cause) === null || _a === void 0 ? void 0 : _a.code) === 'index_not_found')) return [3 /*break*/, 4];
133
+ // Index doesn't exist; create it
134
+ return [4 /*yield*/, client.createIndex(indexUID, {
135
+ primaryKey: 'id',
136
+ })];
137
+ case 3:
138
+ // Index doesn't exist; create it
139
+ _b.sent();
140
+ console.log("Index '".concat(indexUID, "' has been created."));
141
+ return [3 /*break*/, 5];
142
+ case 4:
143
+ // Rethrow any other errors
144
+ throw error_1;
145
+ case 5: return [3 /*break*/, 6];
146
+ case 6: return [2 /*return*/];
147
+ }
148
+ });
149
+ });
150
+ }
151
+ var options = {
152
+ wordwrap: 130,
153
+ // ...
154
+ };
155
+ var compiledConvert = (0, html_to_text_1.compile)(options);
156
+ // Helper function to extract text from HTML in nodejs
157
+ function extractTextFromHTML(html) {
158
+ return compiledConvert(html);
159
+ }
160
+ // Helper function to transform a document for Meilisearch indexing
161
+ function transformDocumentForMeilisearch(doc, fields, req) {
162
+ return __awaiter(this, void 0, void 0, function () {
163
+ var transformedDoc;
164
+ var _this = this;
165
+ return __generator(this, function (_a) {
166
+ switch (_a.label) {
167
+ case 0:
168
+ transformedDoc = {};
169
+ return [4 /*yield*/, Promise.all(fields.map(function (field) { return __awaiter(_this, void 0, void 0, function () {
170
+ var lexicalAdapter, sanitizedServerEditorConfig, html, _a, _b, _c, _d, _e, _f;
171
+ var _this = this;
172
+ var _g;
173
+ return __generator(this, function (_h) {
174
+ switch (_h.label) {
175
+ case 0:
176
+ if (!(field.type === 'richText')) return [3 /*break*/, 2];
177
+ lexicalAdapter = field.editor;
178
+ sanitizedServerEditorConfig = lexicalAdapter.editorConfig;
179
+ return [4 /*yield*/, (0, richtext_lexical_1.convertLexicalToHTML)({
180
+ converters: (0, richtext_lexical_1.consolidateHTMLConverters)({ editorConfig: sanitizedServerEditorConfig }),
181
+ data: doc[field.name],
182
+ })];
183
+ case 1:
184
+ html = _h.sent();
185
+ transformedDoc[field.name] = extractTextFromHTML(html);
186
+ return [3 /*break*/, 11];
187
+ case 2:
188
+ if (!(field.type === 'array' && field.fields)) return [3 /*break*/, 4];
189
+ // For array fields, transform each item
190
+ _a = transformedDoc;
191
+ _b = field.name;
192
+ return [4 /*yield*/, Promise.all((doc[field.name] || []).map(function (item) {
193
+ return transformDocumentForMeilisearch(item, field.fields, req);
194
+ }))];
195
+ case 3:
196
+ // For array fields, transform each item
197
+ _a[_b] = _h.sent();
198
+ return [3 /*break*/, 11];
199
+ case 4:
200
+ if (!(field.type === 'tabs')) return [3 /*break*/, 6];
201
+ return [4 /*yield*/, Promise.all(field.tabs.map(function (tab, index) { return __awaiter(_this, void 0, void 0, function () {
202
+ return __generator(this, function (_a) {
203
+ switch (_a.label) {
204
+ case 0: return [4 /*yield*/, transformDocumentForMeilisearch(doc, tab.fields, req)];
205
+ case 1: return [2 /*return*/, _a.sent()];
206
+ }
207
+ });
208
+ }); }))];
209
+ case 5:
210
+ // For tab fields, transform each tab
211
+ (_h.sent()).forEach(function (t) { return Object.assign(transformedDoc, t); });
212
+ return [3 /*break*/, 11];
213
+ case 6:
214
+ if (!(field.type === 'blocks')) return [3 /*break*/, 8];
215
+ // For block fields, transform each block
216
+ _c = transformedDoc;
217
+ _d = field.name;
218
+ return [4 /*yield*/, Promise.all((doc[field.name] || []).map(function (block) { return __awaiter(_this, void 0, void 0, function () {
219
+ var fields;
220
+ var _a;
221
+ var _b;
222
+ return __generator(this, function (_c) {
223
+ switch (_c.label) {
224
+ case 0:
225
+ fields = (_b = field.blocks.find(function (b) { return b.slug === block.blockType; })) === null || _b === void 0 ? void 0 : _b.fields;
226
+ if (!fields) {
227
+ return [2 /*return*/, {
228
+ type: block.blockType,
229
+ data: "",
230
+ }];
231
+ }
232
+ _a = {
233
+ type: block.blockType
234
+ };
235
+ return [4 /*yield*/, transformDocumentForMeilisearch(block, fields, req)];
236
+ case 1: return [2 /*return*/, (_a.data = _c.sent(),
237
+ _a)];
238
+ }
239
+ });
240
+ }); }))];
241
+ case 7:
242
+ // For block fields, transform each block
243
+ _c[_d] = _h.sent();
244
+ return [3 /*break*/, 11];
245
+ case 8:
246
+ if (!(field.type === 'group' && field.fields)) return [3 /*break*/, 10];
247
+ // For group fields, transform the nested fields
248
+ _e = transformedDoc;
249
+ _f = field.name;
250
+ return [4 /*yield*/, transformDocumentForMeilisearch(doc[field.name], field.fields, req)];
251
+ case 9:
252
+ // For group fields, transform the nested fields
253
+ _e[_f] = _h.sent();
254
+ return [3 /*break*/, 11];
255
+ case 10:
256
+ if (field.type === 'relationship' || field.type === 'upload') {
257
+ // For relationship and upload fields, just include the ID
258
+ transformedDoc[field.name] = ((_g = doc[field.name]) === null || _g === void 0 ? void 0 : _g.id) || doc[field.name];
259
+ }
260
+ else {
261
+ // For other field types, include as-is
262
+ try {
263
+ // @ts-ignore
264
+ transformedDoc[field.name] = doc[field.name];
265
+ }
266
+ catch (err) {
267
+ console.log(err, field, doc);
268
+ }
269
+ }
270
+ _h.label = 11;
271
+ case 11: return [2 /*return*/];
272
+ }
273
+ });
274
+ }); }))];
275
+ case 1:
276
+ _a.sent();
277
+ return [2 /*return*/, transformedDoc];
278
+ }
279
+ });
280
+ });
281
+ }
282
+ //# sourceMappingURL=indexCollections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexCollections.js","sourceRoot":"","sources":["../src/indexCollections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ module.exports = {};
3
+ //# sourceMappingURL=mockFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockFile.js","sourceRoot":"","sources":["../../src/mocks/mockFile.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Payload } from 'payload/dist/payload';
2
+ import type { PluginTypes } from './types';
3
+ export declare const onInitExtension: (pluginOptions: PluginTypes, payload: Payload) => void;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.onInitExtension = void 0;
4
+ var onInitExtension = function (pluginOptions, payload) {
5
+ var app = payload.express;
6
+ if (!app)
7
+ return;
8
+ try {
9
+ // You can use the existing express app here to add middleware, routes, etc.
10
+ // app.use(...)
11
+ }
12
+ catch (err) {
13
+ payload.logger.error({ msg: 'Error in onInitExtension', err: err });
14
+ }
15
+ };
16
+ exports.onInitExtension = onInitExtension;
17
+ //# sourceMappingURL=onInitExtension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onInitExtension.js","sourceRoot":"","sources":["../src/onInitExtension.ts"],"names":[],"mappings":";;;AAIO,IAAM,eAAe,GAAG,UAAC,aAA0B,EAAE,OAAgB;IAClE,IAAS,GAAG,GAAK,OAAO,QAAZ,CAAY;IAEhC,IAAI,CAAC,GAAG;QAAE,OAAM;IAEhB,IAAI;QACF,4EAA4E;QAC5E,eAAe;KAChB;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,KAAA,EAAE,CAAC,CAAA;KAC/D;AACH,CAAC,CAAA;AAXY,QAAA,eAAe,mBAW3B"}
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from 'payload/config';
2
+ import type { PluginTypes } from './types';
3
+ export declare const meilisearchPlugin: (pluginOptions: PluginTypes) => Plugin;
package/dist/plugin.js ADDED
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ };
58
+ Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.meilisearchPlugin = void 0;
60
+ var onInitExtension_1 = require("./onInitExtension");
61
+ var webpack_1 = require("./webpack");
62
+ var indexCollections_1 = require("./indexCollections");
63
+ var meilisearchPlugin = function (pluginOptions) {
64
+ return function (incomingConfig) {
65
+ var config = __assign({}, incomingConfig);
66
+ // If you need to add a webpack alias, use this function to extend the webpack config
67
+ var webpack = (0, webpack_1.extendWebpackConfig)(incomingConfig);
68
+ config.admin = __assign(__assign({}, (config.admin || {})), {
69
+ // If you extended the webpack config, add it back in here
70
+ // If you did not extend the webpack config, you can remove this line
71
+ webpack: webpack });
72
+ // If the plugin is disabled, return the config without modifying it
73
+ // The order of this check is important, we still want any webpack extensions to be applied even if the plugin is disabled
74
+ if (pluginOptions.enabled === false) {
75
+ return config;
76
+ }
77
+ config.collections = __spreadArray([], ((0, indexCollections_1.indexCollections)(config.collections || [], pluginOptions)), true);
78
+ config.endpoints = __spreadArray([], (config.endpoints || []), true);
79
+ config.globals = __spreadArray([], (config.globals || []), true);
80
+ config.hooks = __assign({}, (config.hooks || {}));
81
+ config.onInit = function (payload) { return __awaiter(void 0, void 0, void 0, function () {
82
+ return __generator(this, function (_a) {
83
+ switch (_a.label) {
84
+ case 0:
85
+ if (!incomingConfig.onInit) return [3 /*break*/, 2];
86
+ return [4 /*yield*/, incomingConfig.onInit(payload)
87
+ // Add additional onInit code by using the onInitExtension function
88
+ ];
89
+ case 1:
90
+ _a.sent();
91
+ _a.label = 2;
92
+ case 2:
93
+ // Add additional onInit code by using the onInitExtension function
94
+ (0, onInitExtension_1.onInitExtension)(pluginOptions, payload);
95
+ return [2 /*return*/];
96
+ }
97
+ });
98
+ }); };
99
+ return config;
100
+ };
101
+ };
102
+ exports.meilisearchPlugin = meilisearchPlugin;
103
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qDAAmD;AAEnD,qCAA+C;AAC/C,uDAAqD;AAI9C,IAAM,iBAAiB,GAC5B,UAAC,aAA0B;IACzB,OAAA,UAAC,cAAc;QACb,IAAI,MAAM,gBAAQ,cAAc,CAAE,CAAA;QAElC,qFAAqF;QACrF,IAAM,OAAO,GAAG,IAAA,6BAAmB,EAAC,cAAc,CAAC,CAAA;QAEnD,MAAM,CAAC,KAAK,yBACP,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACvB,0DAA0D;YAC1D,qEAAqE;YACrE,OAAO,SAAA,GAGR,CAAA;QAED,oEAAoE;QACpE,0HAA0H;QAC1H,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,EAAE;YACnC,OAAO,MAAM,CAAA;SACd;QAED,MAAM,CAAC,WAAW,qBACb,CAAC,IAAA,mCAAgB,EAAC,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC,OAC/D,CAAA;QAED,MAAM,CAAC,SAAS,qBACX,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,OAU5B,CAAA;QAED,MAAM,CAAC,OAAO,qBACT,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,OAE1B,CAAA;QAED,MAAM,CAAC,KAAK,gBACP,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAExB,CAAA;QAED,MAAM,CAAC,MAAM,GAAG,UAAM,OAAO;;;;6BACvB,cAAc,CAAC,MAAM,EAArB,wBAAqB;wBAAE,qBAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;4BAC/D,mEAAmE;0BADJ;;wBAApC,SAAoC,CAAA;;;wBAC/D,mEAAmE;wBACnE,IAAA,iCAAe,EAAC,aAAa,EAAE,OAAO,CAAC,CAAA;;;;aACxC,CAAA;QAED,OAAO,MAAM,CAAA;IACf,CAAC;AAvDD,CAuDC,CAAA;AAzDQ,QAAA,iBAAiB,qBAyDzB"}
@@ -0,0 +1,17 @@
1
+ export interface PluginTypes {
2
+ /**
3
+ * Enable or disable plugin
4
+ * @default false
5
+ */
6
+ enabled?: boolean;
7
+ host: string;
8
+ apiKey: string;
9
+ indexPrefix?: string;
10
+ collections?: PluginCollectionConfig[];
11
+ }
12
+ export interface PluginCollectionConfig {
13
+ slug: string;
14
+ }
15
+ export interface NewCollectionTypes {
16
+ title: string;
17
+ }
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { Config } from 'payload/config';
2
+ import type { Configuration as WebpackConfig } from 'webpack';
3
+ export declare const extendWebpackConfig: (config: Config) => (webpackConfig: WebpackConfig) => WebpackConfig;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.extendWebpackConfig = void 0;
18
+ var path_1 = __importDefault(require("path"));
19
+ var extendWebpackConfig = function (config) {
20
+ return function (webpackConfig) {
21
+ var _a;
22
+ var _b, _c;
23
+ var existingWebpackConfig = typeof ((_b = config.admin) === null || _b === void 0 ? void 0 : _b.webpack) === 'function'
24
+ ? config.admin.webpack(webpackConfig)
25
+ : webpackConfig;
26
+ var mockModulePath = path_1.default.resolve(__dirname, './mocks/mockFile.js');
27
+ var newWebpack = __assign(__assign({}, existingWebpackConfig), { resolve: __assign(__assign({}, (existingWebpackConfig.resolve || {})), { alias: __assign(__assign({}, (((_c = existingWebpackConfig.resolve) === null || _c === void 0 ? void 0 : _c.alias) ? existingWebpackConfig.resolve.alias : {})), (_a = {}, _a[path_1.default.resolve(__dirname, './yourFileHere')] = mockModulePath, _a)) }) });
28
+ return newWebpack;
29
+ };
30
+ };
31
+ exports.extendWebpackConfig = extendWebpackConfig;
32
+ //# sourceMappingURL=webpack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webpack.js","sourceRoot":"","sources":["../src/webpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAAuB;AAIhB,IAAM,mBAAmB,GAC9B,UAAC,MAAc;IACf,OAAA,UAAA,aAAa;;;QACX,IAAM,qBAAqB,GACzB,OAAO,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,OAAO,CAAA,KAAK,UAAU;YACzC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;YACrC,CAAC,CAAC,aAAa,CAAA;QAEnB,IAAM,cAAc,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAA;QAErE,IAAM,UAAU,yBACX,qBAAqB,KACxB,OAAO,wBACF,CAAC,qBAAqB,CAAC,OAAO,IAAI,EAAE,CAAC,KACxC,KAAK,wBACA,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,gBAEnF,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAG,cAAc,YAGhE,CAAA;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;AArBD,CAqBC,CAAA;AAvBU,QAAA,mBAAmB,uBAuB7B"}
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "@extravirgin/payload-plugin-meilisearch",
3
- "version": "0.0.1-1",
3
+ "version": "0.0.1-3",
4
4
  "homepage:": "https://extravirgin.ch",
5
5
  "description": "Index your payload collections to meilisearch",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
8
11
  "keywords": [
9
12
  "payload",
10
13
  "cms",
package/.editorconfig DELETED
@@ -1,10 +0,0 @@
1
- root = true
2
-
3
- [*]
4
- indent_style = space
5
- indent_size = 2
6
- charset = utf-8
7
- trim_trailing_whitespace = true
8
- insert_final_newline = true
9
- end_of_line = lf
10
- max_line_length = null
package/.eslintrc.js DELETED
@@ -1,17 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- extends: ['./eslint-config'],
4
- overrides: [
5
- // Temporary overrides
6
- {
7
- files: ['dev/**/*.ts'],
8
- rules: {
9
- 'import/no-relative-packages': 'off',
10
- 'no-process-env': 'off',
11
- },
12
- },
13
- ],
14
- excludes: [
15
- 'dev/plugin.spec.ts',
16
- ]
17
- }
@@ -1,19 +0,0 @@
1
- name: Build
2
-
3
- on:
4
- pull_request:
5
- types: [ opened, reopened, synchronize ]
6
- push:
7
- branches: [ main ]
8
-
9
- jobs:
10
- build:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v2
14
- - uses: actions/setup-node@v2
15
- with:
16
- node-version: '14.x'
17
- registry-url: 'https://registry.npmjs.org'
18
- - run: yarn install
19
- - run: yarn build
package/.prettierrc.js DELETED
@@ -1,8 +0,0 @@
1
- module.exports = {
2
- printWidth: 100,
3
- parser: "typescript",
4
- semi: false,
5
- singleQuote: true,
6
- trailingComma: "all",
7
- arrowParens: "avoid",
8
- };
package/dev/.env.example DELETED
@@ -1,2 +0,0 @@
1
- DATABASE_URI=mongodb://127.0.0.1/plugin-development
2
- PAYLOAD_SECRET=hellohereisasecretforyou
package/dev/Dockerfile DELETED
@@ -1,27 +0,0 @@
1
- FROM node:18.8-alpine as base
2
-
3
- FROM base as builder
4
-
5
- WORKDIR /home/node/app
6
- COPY package*.json ./
7
-
8
- COPY . .
9
- RUN yarn install
10
- RUN yarn build
11
-
12
- FROM base as runtime
13
-
14
- ENV NODE_ENV=production
15
- ENV PAYLOAD_CONFIG_PATH=dist/payload.config.js
16
-
17
- WORKDIR /home/node/app
18
- COPY package*.json ./
19
- COPY yarn.lock ./
20
-
21
- RUN yarn install --production
22
- COPY --from=builder /home/node/app/dist ./dist
23
- COPY --from=builder /home/node/app/build ./build
24
-
25
- EXPOSE 3000
26
-
27
- CMD ["node", "dist/server.js"]