@payloadcms/plugin-nested-docs 1.0.4 → 1.0.5

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/README.md CHANGED
@@ -180,10 +180,10 @@ All types can be directly imported:
180
180
 
181
181
  ```js
182
182
  import {
183
- nestedDocsConfig,
183
+ PluginConfig,
184
184
  GenerateURL,
185
185
  GenerateLabel,
186
- } from "@payloadcms/plugin-nested-docs/dist/types";
186
+ } from "@payloadcms/plugin-nested-docs/types";
187
187
  ```
188
188
 
189
189
  ## Development
@@ -195,7 +195,7 @@ To actively develop or debug this plugin you can either work directly within the
195
195
  This repo includes a fully working, self-seeding instance of Payload that installs the plugin directly from the source code. This is the easiest way to get started. To spin up this demo, follow these steps:
196
196
 
197
197
  1. First clone the repo
198
- 1. Then, `cd PLUGIN_REPO && yarn && cd demo && yarn && yarn dev`
198
+ 1. Then, `cd YOUR_PLUGIN_REPO && yarn && cd demo && yarn && yarn dev`
199
199
  1. Now open `http://localhost:3000/admin` in your browser
200
200
  1. Enter username `dev@payloadcms.com` and password `test`
201
201
 
@@ -206,7 +206,7 @@ To actively develop or debug this plugin you can either work directly within the
206
206
  You can alternatively link your own project to the source code:
207
207
 
208
208
  1. First clone the repo
209
- 1. Then, `cd YOUR_PLUGIN_REPO && yarn && yarn build && yarn link`
209
+ 1. Then, `cd YOUR_PLUGIN_REPO && yarn && cd demo && cp env.example .env && yarn && yarn dev`
210
210
  1. Now `cd` back into your own project and run, `yarn link @payloadcms/plugin-nested-docs`
211
211
  1. If this plugin using React in any way, continue to the next step. Otherwise skip to step 7.
212
212
  1. From your own project, `cd node_modules/react && yarn link && cd ../react-dom && yarn link && cd ../../`
@@ -242,5 +242,3 @@ To actively develop or debug this plugin you can either work directly within the
242
242
  ```
243
243
 
244
244
  ## Screenshots
245
-
246
- <!-- ![screenshot 1](https://github.com/@payloadcms/plugin-nested-docs/blob/main/images/screenshot-1.jpg?raw=true) -->
@@ -1,4 +1,4 @@
1
- import { ArrayField } from 'payload/dist/fields/config/types';
2
- import { Field } from 'payload/types';
1
+ import type { ArrayField } from 'payload/dist/fields/config/types';
2
+ import type { Field } from 'payload/types';
3
3
  declare const createBreadcrumbsField: (relationTo: string, overrides?: Partial<ArrayField>) => Field;
4
4
  export default createBreadcrumbsField;
@@ -52,7 +52,7 @@ var createBreadcrumbsField = function (relationTo, overrides) {
52
52
  },
53
53
  ],
54
54
  }
55
- ], (overrides === null || overrides === void 0 ? void 0 : overrides.fields) || [], true), admin: __assign({ readOnly: true }, (overrides === null || overrides === void 0 ? void 0 : overrides.admin) || {}) }, overrides || {}));
55
+ ], ((overrides === null || overrides === void 0 ? void 0 : overrides.fields) || []), true), admin: __assign({ readOnly: true }, ((overrides === null || overrides === void 0 ? void 0 : overrides.admin) || {})) }, (overrides || {})));
56
56
  };
57
57
  exports.default = createBreadcrumbsField;
58
58
  //# sourceMappingURL=breadcrumbs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../src/fields/breadcrumbs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,IAAM,sBAAsB,GAAG,UAAC,UAAkB,EAAE,SAAmC;IAAnC,0BAAA,EAAA,cAAmC;IAAY,OAAA,YACjG,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,OAAO,EACb,MAAM;YACJ;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,cAAc;gBACpB,UAAU,YAAA;gBACV,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE;oBACL,QAAQ,EAAE,IAAI;iBACf;aACF;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE;4BACL,KAAK,EAAE,KAAK;yBACb;qBACF;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE;4BACL,KAAK,EAAE,KAAK;yBACb;qBACF;iBACF;aACF;WACE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,KAAI,EAAE,SAE5B,KAAK,aACH,QAAQ,EAAE,IAAI,IACX,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,KAAI,EAAE,KAExB,SAAS,IAAI,EAAE,EAClB;AAxCiG,CAwCjG,CAAC;AAEH,kBAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../src/fields/breadcrumbs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,IAAM,sBAAsB,GAAG,UAC7B,UAAkB,EAClB,SAAmC;IAAnC,0BAAA,EAAA,cAAmC;IACzB,OAAA,YACV,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,OAAO,EACb,MAAM;YACJ;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,cAAc;gBACpB,UAAU,YAAA;gBACV,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE;oBACL,QAAQ,EAAE,IAAI;iBACf;aACF;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE;4BACL,KAAK,EAAE,KAAK;yBACb;qBACF;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE;4BACL,KAAK,EAAE,KAAK;yBACb;qBACF;iBACF;aACF;WACE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,KAAI,EAAE,CAAC,SAE9B,KAAK,aACH,QAAQ,EAAE,IAAI,IACX,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,KAAI,EAAE,CAAC,KAE1B,CAAC,SAAS,IAAI,EAAE,CAAC,EACpB;AAxCU,CAwCV,CAAA;AAEF,kBAAe,sBAAsB,CAAA"}
@@ -1,4 +1,5 @@
1
- import { RelationshipField } from 'payload/dist/fields/config/types';
2
- import { Field } from 'payload/types';
3
- declare const createParentField: (relationTo: string, overrides?: Partial<RelationshipField>) => Field;
1
+ import type { RelationshipField } from 'payload/dist/fields/config/types';
2
+ declare const createParentField: (relationTo: string, overrides?: Partial<RelationshipField & {
3
+ hasMany: false;
4
+ }>) => RelationshipField;
4
5
  export default createParentField;
@@ -17,6 +17,6 @@ var createParentField = function (relationTo, overrides) { return (__assign({ na
17
17
  id: { not_equals: id },
18
18
  'breadcrumbs.doc': { not_in: [id] },
19
19
  });
20
- }, admin: __assign({ position: 'sidebar' }, (overrides === null || overrides === void 0 ? void 0 : overrides.admin) || {}) }, overrides || {})); };
20
+ }, admin: __assign({ position: 'sidebar' }, ((overrides === null || overrides === void 0 ? void 0 : overrides.admin) || {})) }, (overrides || {}))); };
21
21
  exports.default = createParentField;
22
22
  //# sourceMappingURL=parent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parent.js","sourceRoot":"","sources":["../../src/fields/parent.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAGA,IAAM,iBAAiB,GAAG,UAAC,UAAkB,EAAE,SAAsC,IAAY,OAAA,YAC/F,IAAI,EAAE,QAAQ,EACd,UAAU,YAAA,EACV,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,CAAC,EACX,aAAa,EAAE,UAAC,EAAM;YAAJ,EAAE,QAAA;QAAO,OAAA,CAAC;YAC1B,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;YACtB,iBAAiB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE;SACpC,CAAC;IAHyB,CAGzB,EACF,KAAK,aACH,QAAQ,EAAE,SAAS,IAChB,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,KAAI,EAAE,KAExB,SAAS,IAAI,EAAE,EAClB,EAd+F,CAc/F,CAAC;AAEH,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"parent.js","sourceRoot":"","sources":["../../src/fields/parent.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAEA,IAAM,iBAAiB,GAAG,UACxB,UAAkB,EAClB,SAIC,IACqB,OAAA,YACtB,IAAI,EAAE,QAAQ,EACd,UAAU,YAAA,EACV,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,CAAC,EACX,aAAa,EAAE,UAAC,EAAM;YAAJ,EAAE,QAAA;QAAO,OAAA,CAAC;YAC1B,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;YACtB,iBAAiB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE;SACpC,CAAC;IAHyB,CAGzB,EACF,KAAK,aACH,QAAQ,EAAE,SAAS,IAChB,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,KAAI,EAAE,CAAC,KAE1B,CAAC,SAAS,IAAI,EAAE,CAAC,EACpB,EAdsB,CActB,CAAA;AAEF,kBAAe,iBAAiB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { CollectionConfig, CollectionAfterChangeHook } from 'payload/types';
2
- import { Options } from '../types';
3
- declare const resaveChildren: (options: Options, collection: CollectionConfig) => CollectionAfterChangeHook;
1
+ import type { CollectionAfterChangeHook, CollectionConfig } from 'payload/types';
2
+ import type { PluginConfig } from '../types';
3
+ declare const resaveChildren: (pluginConfig: PluginConfig, collection: CollectionConfig) => CollectionAfterChangeHook;
4
4
  export default resaveChildren;
@@ -51,46 +51,50 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
51
51
  };
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  var populateBreadcrumbs_1 = __importDefault(require("../utilities/populateBreadcrumbs"));
54
- var resaveChildren = function (options, collection) { return function (_a) {
55
- var payload = _a.req.payload, req = _a.req, doc = _a.doc;
56
- var resaveChildrenAsync = function () { return __awaiter(void 0, void 0, void 0, function () {
57
- var children;
58
- return __generator(this, function (_a) {
59
- switch (_a.label) {
60
- case 0: return [4 /*yield*/, payload.find({
61
- collection: collection.slug,
62
- where: {
63
- parent: {
64
- equals: doc.id,
54
+ var resaveChildren = function (pluginConfig, collection) {
55
+ return function (_a) {
56
+ var payload = _a.req.payload, req = _a.req, doc = _a.doc;
57
+ var resaveChildrenAsync = function () { return __awaiter(void 0, void 0, void 0, function () {
58
+ var children;
59
+ return __generator(this, function (_a) {
60
+ switch (_a.label) {
61
+ case 0: return [4 /*yield*/, payload.find({
62
+ collection: collection.slug,
63
+ where: {
64
+ parent: {
65
+ equals: doc.id,
66
+ },
65
67
  },
66
- },
67
- depth: 0,
68
- })];
69
- case 1:
70
- children = _a.sent();
71
- try {
72
- children.docs.forEach(function (child) {
73
- var updateAsDraft = typeof collection.versions === 'object' && collection.versions.drafts && child._status !== 'published';
74
- payload.update({
75
- id: child.id,
76
- collection: collection.slug,
77
- draft: updateAsDraft,
78
- data: __assign(__assign({}, child), { breadcrumbs: (0, populateBreadcrumbs_1.default)(req, options, collection, child) }),
79
- depth: 0,
68
+ depth: 0,
69
+ })];
70
+ case 1:
71
+ children = _a.sent();
72
+ try {
73
+ children.docs.forEach(function (child) {
74
+ var updateAsDraft = typeof collection.versions === 'object' &&
75
+ collection.versions.drafts &&
76
+ child._status !== 'published';
77
+ payload.update({
78
+ id: child.id,
79
+ collection: collection.slug,
80
+ draft: updateAsDraft,
81
+ data: __assign(__assign({}, child), { breadcrumbs: (0, populateBreadcrumbs_1.default)(req, pluginConfig, collection, child) }),
82
+ depth: 0,
83
+ });
80
84
  });
81
- });
82
- }
83
- catch (err) {
84
- payload.logger.error("Nested Docs plugin has had an error while resaving a child document.");
85
- payload.logger.error(err);
86
- }
87
- return [2 /*return*/];
88
- }
89
- });
90
- }); };
91
- // Non-blocking
92
- resaveChildrenAsync();
93
- return undefined;
94
- }; };
85
+ }
86
+ catch (err) {
87
+ payload.logger.error("Nested Docs plugin has had an error while re-saving a child document.");
88
+ payload.logger.error(err);
89
+ }
90
+ return [2 /*return*/];
91
+ }
92
+ });
93
+ }); };
94
+ // Non-blocking
95
+ resaveChildrenAsync();
96
+ return undefined;
97
+ };
98
+ };
95
99
  exports.default = resaveChildren;
96
100
  //# sourceMappingURL=resaveChildren.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resaveChildren.js","sourceRoot":"","sources":["../../src/hooks/resaveChildren.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yFAAmE;AAGnE,IAAM,cAAc,GAAG,UAAC,OAAgB,EAAE,UAA4B,IAAgC,OAAA,UAAC,EAA8B;QAArB,OAAO,iBAAA,EAAI,GAAG,SAAA,EAAE,GAAG,SAAA;IACjI,IAAM,mBAAmB,GAAG;;;;wBACT,qBAAM,OAAO,CAAC,IAAI,CAAC;wBAClC,UAAU,EAAE,UAAU,CAAC,IAAI;wBAC3B,KAAK,EAAE;4BACL,MAAM,EAAE;gCACN,MAAM,EAAE,GAAG,CAAC,EAAE;6BACf;yBACF;wBACD,KAAK,EAAE,CAAC;qBACT,CAAC,EAAA;;oBARI,QAAQ,GAAG,SAQf;oBAEF,IAAI;wBACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,KAAU;4BAC/B,IAAM,aAAa,GAAG,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,CAAC;4BAE7H,OAAO,CAAC,MAAM,CAAC;gCACb,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,UAAU,EAAE,UAAU,CAAC,IAAI;gCAC3B,KAAK,EAAE,aAAa;gCACpB,IAAI,wBACC,KAAK,KACR,WAAW,EAAE,IAAA,6BAAmB,EAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,GAClE;gCACD,KAAK,EAAE,CAAC;6BACT,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;qBACJ;oBAAC,OAAO,GAAG,EAAE;wBACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAA;wBAC5F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBAC3B;;;;SACF,CAAC;IAEF,eAAe;IACf,mBAAmB,EAAE,CAAC;IAEtB,OAAO,SAAS,CAAC;AACnB,CAAC,EArCqG,CAqCrG,CAAC;AAEF,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"resaveChildren.js","sourceRoot":"","sources":["../../src/hooks/resaveChildren.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,yFAAkE;AAElE,IAAM,cAAc,GAClB,UAAC,YAA0B,EAAE,UAA4B;IACzD,OAAA,UAAC,EAA8B;YAArB,OAAO,iBAAA,EAAI,GAAG,SAAA,EAAE,GAAG,SAAA;QAC3B,IAAM,mBAAmB,GAAG;;;;4BACT,qBAAM,OAAO,CAAC,IAAI,CAAC;4BAClC,UAAU,EAAE,UAAU,CAAC,IAAI;4BAC3B,KAAK,EAAE;gCACL,MAAM,EAAE;oCACN,MAAM,EAAE,GAAG,CAAC,EAAE;iCACf;6BACF;4BACD,KAAK,EAAE,CAAC;yBACT,CAAC,EAAA;;wBARI,QAAQ,GAAG,SAQf;wBAEF,IAAI;4BACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,KAAU;gCAC/B,IAAM,aAAa,GACjB,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ;oCACvC,UAAU,CAAC,QAAQ,CAAC,MAAM;oCAC1B,KAAK,CAAC,OAAO,KAAK,WAAW,CAAA;gCAE/B,OAAO,CAAC,MAAM,CAAC;oCACb,EAAE,EAAE,KAAK,CAAC,EAAE;oCACZ,UAAU,EAAE,UAAU,CAAC,IAAI;oCAC3B,KAAK,EAAE,aAAa;oCACpB,IAAI,wBACC,KAAK,KACR,WAAW,EAAE,IAAA,6BAAmB,EAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,GACvE;oCACD,KAAK,EAAE,CAAC;iCACT,CAAC,CAAA;4BACJ,CAAC,CAAC,CAAA;yBACH;wBAAC,OAAO,GAAY,EAAE;4BACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uEAAuE,CACxE,CAAA;4BACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;yBAC1B;;;;aACF,CAAA;QAED,eAAe;QACf,mBAAmB,EAAE,CAAA;QAErB,OAAO,SAAS,CAAA;IAClB,CAAC;AA1CD,CA0CC,CAAA;AAEH,kBAAe,cAAc,CAAA"}
@@ -1,3 +1,3 @@
1
- import { CollectionConfig, CollectionAfterChangeHook } from 'payload/types';
1
+ import type { CollectionAfterChangeHook, CollectionConfig } from 'payload/types';
2
2
  declare const resaveSelfAfterCreate: (collection: CollectionConfig) => CollectionAfterChangeHook;
3
3
  export default resaveSelfAfterCreate;
@@ -47,47 +47,51 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
47
47
  }
48
48
  };
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
- // This hook automatically resaves a document after it is created
50
+ // This hook automatically re-saves a document after it is created
51
51
  // so that we can build its breadcrumbs with the newly created document's ID.
52
- var resaveSelfAfterCreate = function (collection) { return function (_a) {
53
- var payload = _a.req.payload, req = _a.req, doc = _a.doc, operation = _a.operation;
54
- return __awaiter(void 0, void 0, void 0, function () {
55
- var _b, breadcrumbs, originalDocWithDepth0, updateAsDraft, err_1;
56
- return __generator(this, function (_c) {
57
- switch (_c.label) {
58
- case 0:
59
- _b = doc.breadcrumbs, breadcrumbs = _b === void 0 ? [] : _b;
60
- if (!(operation === 'create')) return [3 /*break*/, 5];
61
- return [4 /*yield*/, payload.findByID({
62
- collection: collection.slug,
63
- depth: 0,
64
- id: doc.id,
65
- })];
66
- case 1:
67
- originalDocWithDepth0 = _c.sent();
68
- updateAsDraft = typeof collection.versions === 'object' && collection.versions.drafts && doc._status !== 'published';
69
- _c.label = 2;
70
- case 2:
71
- _c.trys.push([2, 4, , 5]);
72
- return [4 /*yield*/, payload.update({
73
- collection: collection.slug,
74
- id: doc.id,
75
- depth: 0,
76
- draft: updateAsDraft,
77
- data: __assign(__assign({}, originalDocWithDepth0), { breadcrumbs: (breadcrumbs === null || breadcrumbs === void 0 ? void 0 : breadcrumbs.map(function (crumb, i) { return (__assign(__assign({}, crumb), { doc: breadcrumbs.length === i + 1 ? doc.id : crumb.doc })); })) || [] }),
78
- })];
79
- case 3:
80
- _c.sent();
81
- return [3 /*break*/, 5];
82
- case 4:
83
- err_1 = _c.sent();
84
- payload.logger.error("Nested Docs plugin has had an error while adding breadcrumbs during document creation.");
85
- payload.logger.error(err_1);
86
- return [3 /*break*/, 5];
87
- case 5: return [2 /*return*/, undefined];
88
- }
52
+ var resaveSelfAfterCreate = function (collection) {
53
+ return function (_a) {
54
+ var payload = _a.req.payload, doc = _a.doc, operation = _a.operation;
55
+ return __awaiter(void 0, void 0, void 0, function () {
56
+ var _b, breadcrumbs, originalDocWithDepth0, updateAsDraft, err_1;
57
+ return __generator(this, function (_c) {
58
+ switch (_c.label) {
59
+ case 0:
60
+ _b = doc.breadcrumbs, breadcrumbs = _b === void 0 ? [] : _b;
61
+ if (!(operation === 'create')) return [3 /*break*/, 5];
62
+ return [4 /*yield*/, payload.findByID({
63
+ collection: collection.slug,
64
+ depth: 0,
65
+ id: doc.id,
66
+ })];
67
+ case 1:
68
+ originalDocWithDepth0 = _c.sent();
69
+ updateAsDraft = typeof collection.versions === 'object' &&
70
+ collection.versions.drafts &&
71
+ doc._status !== 'published';
72
+ _c.label = 2;
73
+ case 2:
74
+ _c.trys.push([2, 4, , 5]);
75
+ return [4 /*yield*/, payload.update({
76
+ collection: collection.slug,
77
+ id: doc.id,
78
+ depth: 0,
79
+ draft: updateAsDraft,
80
+ data: __assign(__assign({}, originalDocWithDepth0), { breadcrumbs: (breadcrumbs === null || breadcrumbs === void 0 ? void 0 : breadcrumbs.map(function (crumb, i) { return (__assign(__assign({}, crumb), { doc: breadcrumbs.length === i + 1 ? doc.id : crumb.doc })); })) || [] }),
81
+ })];
82
+ case 3:
83
+ _c.sent();
84
+ return [3 /*break*/, 5];
85
+ case 4:
86
+ err_1 = _c.sent();
87
+ payload.logger.error("Nested Docs plugin has had an error while adding breadcrumbs during document creation.");
88
+ payload.logger.error(err_1);
89
+ return [3 /*break*/, 5];
90
+ case 5: return [2 /*return*/, undefined];
91
+ }
92
+ });
89
93
  });
90
- });
91
- }; };
94
+ };
95
+ };
92
96
  exports.default = resaveSelfAfterCreate;
93
97
  //# sourceMappingURL=resaveSelfAfterCreate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resaveSelfAfterCreate.js","sourceRoot":"","sources":["../../src/hooks/resaveSelfAfterCreate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,iEAAiE;AACjE,6EAA6E;AAE7E,IAAM,qBAAqB,GAAG,UAAC,UAA4B,IAAgC,OAAA,UAAO,EAAyC;QAAhC,OAAO,iBAAA,EAAI,GAAG,SAAA,EAAE,GAAG,SAAA,EAAE,SAAS,eAAA;;;;;;oBAC/H,KAAqB,GAAyB,YAA9B,EAAhB,WAAW,mBAAG,EAAE,KAAA,CAA+B;yBAEnD,CAAA,SAAS,KAAK,QAAQ,CAAA,EAAtB,wBAAsB;oBACM,qBAAM,OAAO,CAAC,QAAQ,CAAC;4BACnD,UAAU,EAAE,UAAU,CAAC,IAAI;4BAC3B,KAAK,EAAE,CAAC;4BACR,EAAE,EAAE,GAAG,CAAC,EAAE;yBACX,CAAC,EAAA;;oBAJI,qBAAqB,GAAG,SAI5B;oBAEI,aAAa,GAAG,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,WAAW,CAAC;;;;oBAGzH,qBAAM,OAAO,CAAC,MAAM,CAAC;4BACnB,UAAU,EAAE,UAAU,CAAC,IAAI;4BAC3B,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,aAAa;4BACpB,IAAI,wBACC,qBAAqB,KACxB,WAAW,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC,UAAC,KAAK,EAAE,CAAC,IAAK,OAAA,uBACvC,KAAK,KACR,GAAG,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IACtD,EAH0C,CAG1C,CAAC,KAAI,EAAE,GACV;yBACF,CAAC,EAAA;;oBAZF,SAYE,CAAC;;;;oBAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAA;oBAC9G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC;;wBAI9B,sBAAO,SAAS,EAAC;;;;CAClB,EAjC0F,CAiC1F,CAAC;AAEF,kBAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"resaveSelfAfterCreate.js","sourceRoot":"","sources":["../../src/hooks/resaveSelfAfterCreate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,kEAAkE;AAClE,6EAA6E;AAE7E,IAAM,qBAAqB,GACzB,UAAC,UAA4B;IAC7B,OAAA,UAAO,EAAoC;YAA3B,OAAO,iBAAA,EAAI,GAAG,SAAA,EAAE,SAAS,eAAA;;;;;;wBAC/B,KAAqB,GAAyB,YAA9B,EAAhB,WAAW,mBAAG,EAAE,KAAA,CAA8B;6BAElD,CAAA,SAAS,KAAK,QAAQ,CAAA,EAAtB,wBAAsB;wBACM,qBAAM,OAAO,CAAC,QAAQ,CAAC;gCACnD,UAAU,EAAE,UAAU,CAAC,IAAI;gCAC3B,KAAK,EAAE,CAAC;gCACR,EAAE,EAAE,GAAG,CAAC,EAAE;6BACX,CAAC,EAAA;;wBAJI,qBAAqB,GAAG,SAI5B;wBAEI,aAAa,GACjB,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ;4BACvC,UAAU,CAAC,QAAQ,CAAC,MAAM;4BAC1B,GAAG,CAAC,OAAO,KAAK,WAAW,CAAA;;;;wBAG3B,qBAAM,OAAO,CAAC,MAAM,CAAC;gCACnB,UAAU,EAAE,UAAU,CAAC,IAAI;gCAC3B,EAAE,EAAE,GAAG,CAAC,EAAE;gCACV,KAAK,EAAE,CAAC;gCACR,KAAK,EAAE,aAAa;gCACpB,IAAI,wBACC,qBAAqB,KACxB,WAAW,EACT,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC,UAAC,KAAK,EAAE,CAAC,IAAK,OAAA,uBAC1B,KAAK,KACR,GAAG,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IACtD,EAH6B,CAG7B,CAAC,KAAI,EAAE,GACZ;6BACF,CAAC,EAAA;;wBAbF,SAaE,CAAA;;;;wBAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wFAAwF,CACzF,CAAA;wBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAG,CAAC,CAAA;;4BAI7B,sBAAO,SAAS,EAAA;;;;KACjB;AAvCD,CAuCC,CAAA;AAEH,kBAAe,qBAAqB,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Config } from 'payload/config';
2
- import { Options } from './types';
3
- declare const nestedDocs: (options: Options) => (config: Config) => Config;
1
+ import type { Config } from 'payload/config';
2
+ import type { PluginConfig } from './types';
3
+ declare const nestedDocs: (pluginConfig: PluginConfig) => (config: Config) => Config;
4
4
  export default nestedDocs;
package/dist/index.js CHANGED
@@ -61,34 +61,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
61
61
  Object.defineProperty(exports, "__esModule", { value: true });
62
62
  var breadcrumbs_1 = __importDefault(require("./fields/breadcrumbs"));
63
63
  var parent_1 = __importDefault(require("./fields/parent"));
64
- var populateBreadcrumbs_1 = __importDefault(require("./utilities/populateBreadcrumbs"));
65
64
  var resaveChildren_1 = __importDefault(require("./hooks/resaveChildren"));
66
65
  var resaveSelfAfterCreate_1 = __importDefault(require("./hooks/resaveSelfAfterCreate"));
67
- var nestedDocs = function (options) { return function (config) { return (__assign(__assign({}, config), { collections: (config.collections || []).map(function (collection) {
68
- var _a, _b;
69
- if (options.collections.indexOf(collection.slug) > -1) {
70
- var fields = __spreadArray([], (collection === null || collection === void 0 ? void 0 : collection.fields) || [], true);
71
- if (!options.parentFieldSlug) {
72
- fields.push((0, parent_1.default)(collection.slug));
73
- }
74
- if (!options.breadcrumbsFieldSlug) {
75
- fields.push((0, breadcrumbs_1.default)(collection.slug, {
76
- localized: Boolean(config.localization)
77
- }));
66
+ var populateBreadcrumbs_1 = __importDefault(require("./utilities/populateBreadcrumbs"));
67
+ var nestedDocs = function (pluginConfig) {
68
+ return function (config) { return (__assign(__assign({}, config), { collections: (config.collections || []).map(function (collection) {
69
+ var _a, _b;
70
+ if (pluginConfig.collections.indexOf(collection.slug) > -1) {
71
+ var fields = __spreadArray([], ((collection === null || collection === void 0 ? void 0 : collection.fields) || []), true);
72
+ if (!pluginConfig.parentFieldSlug) {
73
+ fields.push((0, parent_1.default)(collection.slug));
74
+ }
75
+ if (!pluginConfig.breadcrumbsFieldSlug) {
76
+ fields.push((0, breadcrumbs_1.default)(collection.slug, {
77
+ localized: Boolean(config.localization),
78
+ }));
79
+ }
80
+ return __assign(__assign({}, collection), { hooks: __assign(__assign({}, (collection.hooks || {})), { beforeChange: __spreadArray([
81
+ function (_a) {
82
+ var req = _a.req, data = _a.data, originalDoc = _a.originalDoc;
83
+ return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_b) {
84
+ return [2 /*return*/, (0, populateBreadcrumbs_1.default)(req, pluginConfig, collection, data, originalDoc)];
85
+ }); });
86
+ }
87
+ ], (((_a = collection === null || collection === void 0 ? void 0 : collection.hooks) === null || _a === void 0 ? void 0 : _a.beforeChange) || []), true), afterChange: __spreadArray([
88
+ (0, resaveChildren_1.default)(pluginConfig, collection),
89
+ (0, resaveSelfAfterCreate_1.default)(collection)
90
+ ], (((_b = collection === null || collection === void 0 ? void 0 : collection.hooks) === null || _b === void 0 ? void 0 : _b.afterChange) || []), true) }), fields: fields });
78
91
  }
79
- return __assign(__assign({}, collection), { hooks: __assign(__assign({}, collection.hooks || {}), { beforeChange: __spreadArray([
80
- function (_a) {
81
- var req = _a.req, data = _a.data, originalDoc = _a.originalDoc;
82
- return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_b) {
83
- return [2 /*return*/, (0, populateBreadcrumbs_1.default)(req, options, collection, data, originalDoc)];
84
- }); });
85
- }
86
- ], ((_a = collection === null || collection === void 0 ? void 0 : collection.hooks) === null || _a === void 0 ? void 0 : _a.beforeChange) || [], true), afterChange: __spreadArray([
87
- (0, resaveChildren_1.default)(options, collection),
88
- (0, resaveSelfAfterCreate_1.default)(collection)
89
- ], ((_b = collection === null || collection === void 0 ? void 0 : collection.hooks) === null || _b === void 0 ? void 0 : _b.afterChange) || [], true) }), fields: fields });
90
- }
91
- return collection;
92
- }) })); }; };
92
+ return collection;
93
+ }) })); };
94
+ };
93
95
  exports.default = nestedDocs;
94
96
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qEAA0D;AAC1D,2DAAgD;AAChD,wFAAkE;AAClE,0EAAoD;AACpD,wFAAkE;AAElE,IAAM,UAAU,GAAG,UAAC,OAAgB,IAAK,OAAA,UAAC,MAAc,IAAa,OAAA,uBAChE,MAAM,KACT,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,UAAU;;QACrD,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACrD,IAAM,MAAM,qBAAO,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,KAAI,EAAE,OAAC,CAAC;YAE7C,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC,IAAA,gBAAiB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;aACjD;YAED,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,IAAA,qBAAsB,EAAC,UAAU,CAAC,IAAI,EAAE;oBAClD,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;iBACxC,CAAC,CAAC,CAAC;aACL;YAED,6BACK,UAAU,KACb,KAAK,wBACA,UAAU,CAAC,KAAK,IAAI,EAAE,KACzB,YAAY;wBACV,UAAO,EAA0B;gCAAxB,GAAG,SAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAAA;;gCAAO,sBAAA,IAAA,6BAAmB,EAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,EAAA;;yBAAA;uBACnG,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,YAAY,KAAI,EAAE,SAE1C,WAAW;wBACT,IAAA,wBAAc,EAAC,OAAO,EAAE,UAAU,CAAC;wBACnC,IAAA,+BAAqB,EAAC,UAAU,CAAC;uBAC9B,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,WAAW,KAAI,EAAE,YAG3C,MAAM,QAAA,IACN;SACH;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,IACF,EApCmE,CAoCnE,EApCuC,CAoCvC,CAAC;AAEH,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qEAAyD;AACzD,2DAA+C;AAC/C,0EAAmD;AACnD,wFAAiE;AAEjE,wFAAiE;AAEjE,IAAM,UAAU,GACd,UAAC,YAA0B;IAC3B,OAAA,UAAC,MAAc,IAAa,OAAA,uBACvB,MAAM,KACT,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,UAAU;;YACpD,IAAI,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC1D,IAAM,MAAM,qBAAO,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,KAAI,EAAE,CAAC,OAAC,CAAA;gBAE9C,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;oBACjC,MAAM,CAAC,IAAI,CAAC,IAAA,gBAAiB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;iBAChD;gBAED,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE;oBACtC,MAAM,CAAC,IAAI,CACT,IAAA,qBAAsB,EAAC,UAAU,CAAC,IAAI,EAAE;wBACtC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;qBACxC,CAAC,CACH,CAAA;iBACF;gBAED,6BACK,UAAU,KACb,KAAK,wBACA,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,KAC3B,YAAY;4BACV,UAAO,EAA0B;oCAAxB,GAAG,SAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAAA;;oCAC7B,sBAAA,IAAA,6BAAmB,EAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,EAAA;;6BAAA;2BACpE,CAAC,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,YAAY,KAAI,EAAE,CAAC,SAE5C,WAAW;4BACT,IAAA,wBAAc,EAAC,YAAY,EAAE,UAAU,CAAC;4BACxC,IAAA,+BAAqB,EAAC,UAAU,CAAC;2BAC9B,CAAC,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,WAAW,KAAI,EAAE,CAAC,YAG7C,MAAM,QAAA,IACP;aACF;YAED,OAAO,UAAU,CAAA;QACnB,CAAC,CAAC,IACF,EAvC0B,CAuC1B;AAvCF,CAuCE,CAAA;AAEJ,kBAAe,UAAU,CAAA"}
package/dist/types.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- export type Breadcrumb = {
1
+ export interface Breadcrumb {
2
2
  url?: string;
3
3
  label: string;
4
4
  doc: string;
5
- };
6
- export type GenerateURL = (docs: Record<string, unknown>[], currentDoc: Record<string, unknown>) => string;
7
- export type GenerateLabel = (docs: Record<string, unknown>[], currentDoc: Record<string, unknown>) => string;
8
- export type Options = {
5
+ }
6
+ export type GenerateURL = (docs: Array<Record<string, unknown>>, currentDoc: Record<string, unknown>) => string;
7
+ export type GenerateLabel = (docs: Array<Record<string, unknown>>, currentDoc: Record<string, unknown>) => string;
8
+ export interface PluginConfig {
9
9
  collections: string[];
10
10
  generateURL?: GenerateURL;
11
11
  generateLabel?: GenerateLabel;
12
12
  parentFieldSlug?: string;
13
13
  breadcrumbsFieldSlug?: string;
14
- };
14
+ }
@@ -1,4 +1,4 @@
1
- import { CollectionConfig } from 'payload/types';
2
- import { Options, Breadcrumb } from '../types';
3
- declare const formatBreadcrumb: (options: Options, collection: CollectionConfig, docs: Record<string, unknown>[]) => Breadcrumb;
1
+ import type { CollectionConfig } from 'payload/types';
2
+ import type { Breadcrumb, PluginConfig } from '../types';
3
+ declare const formatBreadcrumb: (pluginConfig: PluginConfig, collection: CollectionConfig, docs: Array<Record<string, unknown>>) => Breadcrumb;
4
4
  export default formatBreadcrumb;
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var formatBreadcrumb = function (options, collection, docs) {
3
+ var formatBreadcrumb = function (pluginConfig, collection, docs) {
4
4
  var _a;
5
5
  var url = undefined;
6
6
  var label;
7
7
  var lastDoc = docs[docs.length - 1];
8
- if (typeof (options === null || options === void 0 ? void 0 : options.generateURL) === 'function') {
9
- url = options.generateURL(docs, lastDoc);
8
+ if (typeof (pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.generateURL) === 'function') {
9
+ url = pluginConfig.generateURL(docs, lastDoc);
10
10
  }
11
- if (typeof (options === null || options === void 0 ? void 0 : options.generateLabel) === 'function') {
12
- label = options.generateLabel(docs, lastDoc);
11
+ if (typeof (pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.generateLabel) === 'function') {
12
+ label = pluginConfig.generateLabel(docs, lastDoc);
13
13
  }
14
14
  else {
15
15
  var useAsTitle = ((_a = collection === null || collection === void 0 ? void 0 : collection.admin) === null || _a === void 0 ? void 0 : _a.useAsTitle) || 'id';
@@ -1 +1 @@
1
- {"version":3,"file":"formatBreadcrumb.js","sourceRoot":"","sources":["../../src/utilities/formatBreadcrumb.ts"],"names":[],"mappings":";;AAGA,IAAM,gBAAgB,GAAG,UACvB,OAAgB,EAChB,UAA4B,EAC5B,IAA+B;;IAE/B,IAAI,GAAG,GAAuB,SAAS,CAAC;IACxC,IAAI,KAAa,CAAC;IAElB,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,IAAI,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,KAAK,UAAU,EAAE;QAC9C,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC1C;IAED,IAAI,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,KAAK,UAAU,EAAE;QAChD,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC9C;SAAM;QACL,IAAM,UAAU,GAAG,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,UAAU,KAAI,IAAI,CAAC;QACzD,KAAK,GAAG,OAAO,CAAC,UAAU,CAAW,CAAC;KACvC;IAED,OAAO;QACL,KAAK,OAAA;QACL,GAAG,KAAA;QACH,GAAG,EAAE,OAAO,CAAC,EAAY;KAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"formatBreadcrumb.js","sourceRoot":"","sources":["../../src/utilities/formatBreadcrumb.ts"],"names":[],"mappings":";;AAIA,IAAM,gBAAgB,GAAG,UACvB,YAA0B,EAC1B,UAA4B,EAC5B,IAAoC;;IAEpC,IAAI,GAAG,GAAuB,SAAS,CAAA;IACvC,IAAI,KAAa,CAAA;IAEjB,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAErC,IAAI,OAAO,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,WAAW,CAAA,KAAK,UAAU,EAAE;QACnD,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC9C;IAED,IAAI,OAAO,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,CAAA,KAAK,UAAU,EAAE;QACrD,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAClD;SAAM;QACL,IAAM,UAAU,GAAG,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,UAAU,KAAI,IAAI,CAAA;QACxD,KAAK,GAAG,OAAO,CAAC,UAAU,CAAW,CAAA;KACtC;IAED,OAAO;QACL,KAAK,OAAA;QACL,GAAG,KAAA;QACH,GAAG,EAAE,OAAO,CAAC,EAAY;KAC1B,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,gBAAgB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { CollectionConfig } from 'payload/types';
2
- import { Options } from '../types';
3
- declare const getParents: (req: any, options: Options, collection: CollectionConfig, doc: Record<string, unknown>, docs?: Record<string, unknown>[]) => Promise<Record<string, unknown>[]>;
1
+ import type { CollectionConfig } from 'payload/types';
2
+ import type { PluginConfig } from '../types';
3
+ declare const getParents: (req: any, pluginConfig: PluginConfig, collection: CollectionConfig, doc: Record<string, unknown>, docs?: Array<Record<string, unknown>>) => Promise<Array<Record<string, unknown>>>;
4
4
  export default getParents;
@@ -45,14 +45,14 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
45
45
  return to.concat(ar || Array.prototype.slice.call(from));
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
- var getParents = function (req, options, collection, doc, docs) {
48
+ var getParents = function (req, pluginConfig, collection, doc, docs) {
49
49
  if (docs === void 0) { docs = []; }
50
50
  return __awaiter(void 0, void 0, void 0, function () {
51
51
  var parent, retrievedParent;
52
52
  return __generator(this, function (_a) {
53
53
  switch (_a.label) {
54
54
  case 0:
55
- parent = doc[(options === null || options === void 0 ? void 0 : options.parentFieldSlug) || 'parent'];
55
+ parent = doc[(pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.parentFieldSlug) || 'parent'];
56
56
  if (!parent) return [3 /*break*/, 3];
57
57
  if (!(typeof parent === 'string')) return [3 /*break*/, 2];
58
58
  return [4 /*yield*/, req.payload.findByID({
@@ -72,13 +72,11 @@ var getParents = function (req, options, collection, doc, docs) {
72
72
  }
73
73
  if (retrievedParent) {
74
74
  if (retrievedParent.parent) {
75
- return [2 /*return*/, getParents(req, options, collection, retrievedParent, __spreadArray([
75
+ return [2 /*return*/, getParents(req, pluginConfig, collection, retrievedParent, __spreadArray([
76
76
  retrievedParent
77
77
  ], docs, true))];
78
78
  }
79
- return [2 /*return*/, __spreadArray([
80
- retrievedParent
81
- ], docs, true)];
79
+ return [2 /*return*/, __spreadArray([retrievedParent], docs, true)];
82
80
  }
83
81
  _a.label = 3;
84
82
  case 3: return [2 /*return*/, docs];
@@ -1 +1 @@
1
- {"version":3,"file":"getParents.js","sourceRoot":"","sources":["../../src/utilities/getParents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAM,UAAU,GAAG,UACjB,GAAQ,EACR,OAAgB,EAChB,UAA4B,EAC5B,GAA4B,EAC5B,IAAoC;IAApC,qBAAA,EAAA,SAAoC;;;;;;oBAE9B,MAAM,GAAG,GAAG,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,KAAI,QAAQ,CAAC,CAAC;yBAGrD,MAAM,EAAN,wBAAM;yBAEJ,CAAA,OAAO,MAAM,KAAK,QAAQ,CAAA,EAA1B,wBAA0B;oBACV,qBAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;4BAC3C,GAAG,KAAA;4BACH,EAAE,EAAE,MAAM;4BACV,UAAU,EAAE,UAAU,CAAC,IAAI;4BAC3B,KAAK,EAAE,CAAC;4BACR,aAAa,EAAE,IAAI;yBACpB,CAAC,EAAA;;oBANF,eAAe,GAAG,SAMhB,CAAC;;;oBAGL,oBAAoB;oBACpB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;wBAC9B,eAAe,GAAG,MAAM,CAAC;qBAC1B;oBAED,IAAI,eAAe,EAAE;wBACnB,IAAI,eAAe,CAAC,MAAM,EAAE;4BAC1B,sBAAO,UAAU,CACf,GAAG,EACH,OAAO,EACP,UAAU,EACV,eAAe;oCAEb,eAAe;mCACZ,IAAI,QAEV,EAAC;yBACH;wBAED;gCACE,eAAe;+BACZ,IAAI,SACP;qBACH;;wBAGH,sBAAO,IAAI,EAAC;;;;CACb,CAAC;AAEF,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"getParents.js","sourceRoot":"","sources":["../../src/utilities/getParents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAM,UAAU,GAAG,UACjB,GAAQ,EACR,YAA0B,EAC1B,UAA4B,EAC5B,GAA4B,EAC5B,IAAyC;IAAzC,qBAAA,EAAA,SAAyC;;;;;;oBAEnC,MAAM,GAAG,GAAG,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe,KAAI,QAAQ,CAAC,CAAA;yBAGzD,MAAM,EAAN,wBAAM;yBAEJ,CAAA,OAAO,MAAM,KAAK,QAAQ,CAAA,EAA1B,wBAA0B;oBACV,qBAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;4BAC3C,GAAG,KAAA;4BACH,EAAE,EAAE,MAAM;4BACV,UAAU,EAAE,UAAU,CAAC,IAAI;4BAC3B,KAAK,EAAE,CAAC;4BACR,aAAa,EAAE,IAAI;yBACpB,CAAC,EAAA;;oBANF,eAAe,GAAG,SAMhB,CAAA;;;oBAGJ,oBAAoB;oBACpB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;wBAC9B,eAAe,GAAG,MAAM,CAAA;qBACzB;oBAED,IAAI,eAAe,EAAE;wBACnB,IAAI,eAAe,CAAC,MAAM,EAAE;4BAC1B,sBAAO,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe;oCAC9D,eAAe;mCACZ,IAAI,QACP,EAAA;yBACH;wBAED,qCAAQ,eAAe,GAAK,IAAI,SAAC;qBAClC;;wBAGH,sBAAO,IAAI,EAAA;;;;CACZ,CAAA;AAED,kBAAe,UAAU,CAAA"}
@@ -1,4 +1,4 @@
1
- import { CollectionConfig } from 'payload/types';
2
- import { Options } from '../types';
3
- declare const populateBreadcrumbs: (req: any, options: Options, collection: CollectionConfig, data: any, originalDoc?: any) => Promise<any>;
1
+ import type { CollectionConfig } from 'payload/types';
2
+ import type { PluginConfig } from '../types';
3
+ declare const populateBreadcrumbs: (req: any, pluginConfig: PluginConfig, collection: CollectionConfig, data: any, originalDoc?: any) => Promise<any>;
4
4
  export default populateBreadcrumbs;
@@ -59,9 +59,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
59
59
  return (mod && mod.__esModule) ? mod : { "default": mod };
60
60
  };
61
61
  Object.defineProperty(exports, "__esModule", { value: true });
62
- var getParents_1 = __importDefault(require("./getParents"));
63
62
  var formatBreadcrumb_1 = __importDefault(require("./formatBreadcrumb"));
64
- var populateBreadcrumbs = function (req, options, collection, data, originalDoc) { return __awaiter(void 0, void 0, void 0, function () {
63
+ var getParents_1 = __importDefault(require("./getParents"));
64
+ var populateBreadcrumbs = function (req, pluginConfig, collection, data, originalDoc) { return __awaiter(void 0, void 0, void 0, function () {
65
65
  var newData, breadcrumbDocs, _a, breadcrumbs;
66
66
  var _b;
67
67
  return __generator(this, function (_c) {
@@ -69,13 +69,16 @@ var populateBreadcrumbs = function (req, options, collection, data, originalDoc)
69
69
  case 0:
70
70
  newData = data;
71
71
  _a = [[]];
72
- return [4 /*yield*/, (0, getParents_1.default)(req, options, collection, __assign(__assign({}, originalDoc), data))];
72
+ return [4 /*yield*/, (0, getParents_1.default)(req, pluginConfig, collection, __assign(__assign({}, originalDoc), data))];
73
73
  case 1:
74
- breadcrumbDocs = __spreadArray.apply(void 0, [__spreadArray.apply(void 0, _a.concat([_c.sent(), true])), [
74
+ breadcrumbDocs = __spreadArray.apply(void 0, [__spreadArray.apply(void 0, _a.concat([(_c.sent()), true])), [
75
75
  __assign(__assign(__assign({}, originalDoc), data), { id: originalDoc === null || originalDoc === void 0 ? void 0 : originalDoc.id }),
76
76
  ], false]);
77
- breadcrumbs = breadcrumbDocs.map(function (_, i) { return (0, formatBreadcrumb_1.default)(options, collection, breadcrumbDocs.slice(0, i + 1)); });
78
- return [2 /*return*/, __assign(__assign({}, newData), (_b = {}, _b[(options === null || options === void 0 ? void 0 : options.breadcrumbsFieldSlug) || 'breadcrumbs'] = breadcrumbs, _b))];
77
+ breadcrumbs = breadcrumbDocs.map(function (_, i) {
78
+ return (0, formatBreadcrumb_1.default)(pluginConfig, collection, breadcrumbDocs.slice(0, i + 1));
79
+ }) // eslint-disable-line function-paren-newline
80
+ ;
81
+ return [2 /*return*/, __assign(__assign({}, newData), (_b = {}, _b[(pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.breadcrumbsFieldSlug) || 'breadcrumbs'] = breadcrumbs, _b))];
79
82
  }
80
83
  });
81
84
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"populateBreadcrumbs.js","sourceRoot":"","sources":["../../src/utilities/populateBreadcrumbs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4DAAsC;AACtC,wEAAkD;AAElD,IAAM,mBAAmB,GAAG,UAAO,GAAQ,EAAE,OAAgB,EAAE,UAA4B,EAAE,IAAS,EAAE,WAAiB;;;;;;gBACjH,OAAO,GAAG,IAAI,CAAC;;gBAEhB,qBAAM,IAAA,oBAAU,EAAC,GAAG,EAAE,OAAO,EAAE,UAAU,wBACvC,WAAW,GACX,IAAI,EACP,EAAA;;gBAJE,cAAc,uEACf,SAGD;uDAEG,WAAW,GACX,IAAI,KACP,EAAE,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE;8BAEtB;gBAEK,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,IAAA,0BAAgB,EAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAArE,CAAqE,CAAC,CAAC;gBAExH,4CACK,OAAO,gBACT,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,KAAI,aAAa,IAAG,WAAW,QAC7D;;;KACH,CAAC;AAEF,kBAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"populateBreadcrumbs.js","sourceRoot":"","sources":["../../src/utilities/populateBreadcrumbs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,wEAAiD;AACjD,4DAAqC;AAErC,IAAM,mBAAmB,GAAG,UAC1B,GAAQ,EACR,YAA0B,EAC1B,UAA4B,EAC5B,IAAS,EACT,WAAiB;;;;;;gBAEX,OAAO,GAAG,IAAI,CAAA;;gBAEd,qBAAM,IAAA,oBAAU,EAAC,GAAG,EAAE,YAAY,EAAE,UAAU,wBAC7C,WAAW,GACX,IAAI,EACP,EAAA;;gBAJE,cAAc,uEACf,CAAC,SAGF,CAAC;uDAEE,WAAW,GACX,IAAI,KACP,EAAE,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE;8BAEtB;gBAEK,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;oBAC1C,OAAA,IAAA,0BAAgB,EAAC,YAAY,EAAE,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAA1E,CAA0E,CAC3E,CAAC,6CAA6C;gBAA9C,CAAA;gBAED,4CACK,OAAO,gBACT,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,oBAAoB,KAAI,aAAa,IAAG,WAAW,QACnE;;;KACF,CAAA;AAED,kBAAe,mBAAmB,CAAA"}
package/fields.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './dist/fields/breadcrumbs';
2
+ export * from './dist/fields/parent';
package/fields.js ADDED
@@ -0,0 +1,7 @@
1
+ const breadcrumbs = require('./dist/fields/breadcrumbs');
2
+ const parent = require('./dist/fields/parent');
3
+
4
+ module.exports = {
5
+ breadcrumbs,
6
+ parent
7
+ };
package/package.json CHANGED
@@ -1,14 +1,16 @@
1
1
  {
2
2
  "name": "@payloadcms/plugin-nested-docs",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "homepage:": "https://payloadcms.com",
5
5
  "repository": "git@github.com:payloadcms/plugin-nested-docs.git",
6
- "description": "Nested documents plugin for Payload CMS",
6
+ "description": "Nested documents plugin for Payload",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",
9
9
  "scripts": {
10
10
  "build": "tsc",
11
- "test": "echo \"Error: no test specified\" && exit 1"
11
+ "test": "echo \"Error: no test specified\" && exit 1",
12
+ "lint": "eslint src",
13
+ "lint:fix": "eslint --fix --ext .ts,.tsx src"
12
14
  },
13
15
  "keywords": [
14
16
  "payload",
@@ -23,15 +25,38 @@
23
25
  "author": "dev@payloadcms.com",
24
26
  "license": "MIT",
25
27
  "peerDependencies": {
26
- "payload": "^0.18.5",
28
+ "payload": "^0.18.5 || ^1.0.0",
27
29
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
28
30
  },
29
31
  "devDependencies": {
30
- "payload": "^1.0.6",
31
- "react": "^17.0.2",
32
- "typescript": "^4.5.5"
32
+ "@payloadcms/eslint-config": "^0.0.1",
33
+ "@types/escape-html": "^1.0.1",
34
+ "@types/express": "^4.17.9",
35
+ "@types/node": "18.11.3",
36
+ "@types/react": "18.0.21",
37
+ "@typescript-eslint/eslint-plugin": "^5.51.0",
38
+ "@typescript-eslint/parser": "^5.51.0",
39
+ "copyfiles": "^2.4.1",
40
+ "cross-env": "^7.0.3",
41
+ "eslint": "^8.19.0",
42
+ "eslint-config-prettier": "^8.5.0",
43
+ "eslint-plugin-filenames": "^1.3.2",
44
+ "eslint-plugin-import": "2.25.4",
45
+ "eslint-plugin-prettier": "^4.0.0",
46
+ "eslint-plugin-react-hooks": "^4.6.0",
47
+ "eslint-plugin-simple-import-sort": "^10.0.0",
48
+ "nodemon": "^2.0.6",
49
+ "payload": "^1.8.2",
50
+ "prettier": "^2.7.1",
51
+ "react": "^18.0.0",
52
+ "ts-node": "^9.1.1",
53
+ "typescript": "^4.8.4"
33
54
  },
34
55
  "files": [
35
- "dist"
56
+ "dist",
57
+ "fields.js",
58
+ "fields.d.ts",
59
+ "types.js",
60
+ "types.d.ts"
36
61
  ]
37
62
  }
package/types.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/types';
package/types.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/types');