@plasmicpkgs/plasmic-contentful 0.0.169 → 0.0.171

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/dist/index.d.mts CHANGED
@@ -11,6 +11,14 @@ interface ContentfulCredentialsProviderProps {
11
11
  }
12
12
  declare const ContentfulCredentialsProviderMeta: GlobalContextMeta<ContentfulCredentialsProviderProps>;
13
13
  declare function ContentfulCredentialsProvider({ accessToken, space, environment, children, }: React.PropsWithChildren<ContentfulCredentialsProviderProps>): React.JSX.Element;
14
+ interface ContentfulControlContextData {
15
+ types?: {
16
+ name: string;
17
+ id: string;
18
+ }[];
19
+ fields?: string[];
20
+ queryOptions?: [];
21
+ }
14
22
  interface ContentfulFetcherProps {
15
23
  contentType: string;
16
24
  children?: ReactNode;
@@ -24,14 +32,7 @@ interface ContentfulFetcherProps {
24
32
  filterValue?: string | number;
25
33
  noAutoRepeat?: boolean;
26
34
  noLayout?: boolean;
27
- setControlContextData?: (data: {
28
- types?: {
29
- name: string;
30
- id: string;
31
- }[];
32
- fields?: string[];
33
- queryOptions?: [];
34
- }) => void;
35
+ setControlContextData?: (data: ContentfulControlContextData) => void;
35
36
  }
36
37
  declare const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps>;
37
38
  declare function ContentfulFetcher({ filterField, filterValue, searchParameter, noAutoRepeat, contentType, children, className, order, reverseOrder, limit, include, noLayout, setControlContextData, }: ContentfulFetcherProps): React.JSX.Element;
package/dist/index.d.ts CHANGED
@@ -11,6 +11,14 @@ interface ContentfulCredentialsProviderProps {
11
11
  }
12
12
  declare const ContentfulCredentialsProviderMeta: GlobalContextMeta<ContentfulCredentialsProviderProps>;
13
13
  declare function ContentfulCredentialsProvider({ accessToken, space, environment, children, }: React.PropsWithChildren<ContentfulCredentialsProviderProps>): React.JSX.Element;
14
+ interface ContentfulControlContextData {
15
+ types?: {
16
+ name: string;
17
+ id: string;
18
+ }[];
19
+ fields?: string[];
20
+ queryOptions?: [];
21
+ }
14
22
  interface ContentfulFetcherProps {
15
23
  contentType: string;
16
24
  children?: ReactNode;
@@ -24,14 +32,7 @@ interface ContentfulFetcherProps {
24
32
  filterValue?: string | number;
25
33
  noAutoRepeat?: boolean;
26
34
  noLayout?: boolean;
27
- setControlContextData?: (data: {
28
- types?: {
29
- name: string;
30
- id: string;
31
- }[];
32
- fields?: string[];
33
- queryOptions?: [];
34
- }) => void;
35
+ setControlContextData?: (data: ContentfulControlContextData) => void;
35
36
  }
36
37
  declare const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps>;
37
38
  declare function ContentfulFetcher({ filterField, filterValue, searchParameter, noAutoRepeat, contentType, children, className, order, reverseOrder, limit, include, noLayout, setControlContextData, }: ContentfulFetcherProps): React.JSX.Element;
package/dist/index.js CHANGED
@@ -386,6 +386,7 @@ function ContentfulFetcher({
386
386
  entryMap[entry.sys.id] = entry;
387
387
  });
388
388
  }
389
+ const processedFields = /* @__PURE__ */ new Set();
389
390
  const denormalizeField = (fieldValue) => {
390
391
  var _a2, _b2;
391
392
  if (Array.isArray(fieldValue)) {
@@ -410,10 +411,16 @@ function ContentfulFetcher({
410
411
  } else if (data.includes.Entry && "sys" in fieldValue && fieldValue.sys.linkType === "Entry") {
411
412
  const fieldId = fieldValue.sys.id;
412
413
  if (entryMap[fieldId]) {
413
- fieldValue = {
414
- ...fieldValue,
415
- fields: denormalizeItem(entryMap[fieldId]).fields
416
- };
414
+ if (processedFields.has(fieldId)) {
415
+ console.warn(
416
+ `Circular reference detected for Entry ID: ${fieldId}.`
417
+ );
418
+ } else {
419
+ fieldValue = {
420
+ ...fieldValue,
421
+ fields: denormalizeItem(entryMap[fieldId]).fields
422
+ };
423
+ }
417
424
  } else {
418
425
  console.log(`Entry not found for ID: ${fieldId}`);
419
426
  }
@@ -430,10 +437,18 @@ function ContentfulFetcher({
430
437
  return fieldValue;
431
438
  };
432
439
  const denormalizeItem = (item) => {
440
+ var _a2;
441
+ const itemId = (_a2 = item.sys) == null ? void 0 : _a2.id;
442
+ if (itemId) {
443
+ processedFields.add(itemId);
444
+ }
433
445
  const updatedFields = {};
434
446
  for (const fieldName in item.fields) {
435
447
  updatedFields[fieldName] = denormalizeField(item.fields[fieldName]);
436
448
  }
449
+ if (itemId) {
450
+ processedFields.delete(itemId);
451
+ }
437
452
  return {
438
453
  ...item,
439
454
  fields: updatedFields != null ? updatedFields : void 0
package/dist/index.mjs CHANGED
@@ -349,6 +349,7 @@ function ContentfulFetcher({
349
349
  entryMap[entry.sys.id] = entry;
350
350
  });
351
351
  }
352
+ const processedFields = /* @__PURE__ */ new Set();
352
353
  const denormalizeField = (fieldValue) => {
353
354
  var _a2, _b2;
354
355
  if (Array.isArray(fieldValue)) {
@@ -373,10 +374,16 @@ function ContentfulFetcher({
373
374
  } else if (data.includes.Entry && "sys" in fieldValue && fieldValue.sys.linkType === "Entry") {
374
375
  const fieldId = fieldValue.sys.id;
375
376
  if (entryMap[fieldId]) {
376
- fieldValue = {
377
- ...fieldValue,
378
- fields: denormalizeItem(entryMap[fieldId]).fields
379
- };
377
+ if (processedFields.has(fieldId)) {
378
+ console.warn(
379
+ `Circular reference detected for Entry ID: ${fieldId}.`
380
+ );
381
+ } else {
382
+ fieldValue = {
383
+ ...fieldValue,
384
+ fields: denormalizeItem(entryMap[fieldId]).fields
385
+ };
386
+ }
380
387
  } else {
381
388
  console.log(`Entry not found for ID: ${fieldId}`);
382
389
  }
@@ -393,10 +400,18 @@ function ContentfulFetcher({
393
400
  return fieldValue;
394
401
  };
395
402
  const denormalizeItem = (item) => {
403
+ var _a2;
404
+ const itemId = (_a2 = item.sys) == null ? void 0 : _a2.id;
405
+ if (itemId) {
406
+ processedFields.add(itemId);
407
+ }
396
408
  const updatedFields = {};
397
409
  for (const fieldName in item.fields) {
398
410
  updatedFields[fieldName] = denormalizeField(item.fields[fieldName]);
399
411
  }
412
+ if (itemId) {
413
+ processedFields.delete(itemId);
414
+ }
400
415
  return {
401
416
  ...item,
402
417
  fields: updatedFields != null ? updatedFields : void 0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/plasmic-contentful",
3
- "version": "0.0.169",
3
+ "version": "0.0.171",
4
4
  "description": "Plasmic Contentful components.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -32,8 +32,8 @@
32
32
  }
33
33
  ],
34
34
  "devDependencies": {
35
- "@plasmicapp/host": "1.0.226",
36
- "@plasmicapp/query": "0.1.80",
35
+ "@plasmicapp/host": "1.0.227",
36
+ "@plasmicapp/query": "0.1.81",
37
37
  "@types/dlv": "^1.1.2",
38
38
  "@types/react": "^18.0.27",
39
39
  "@types/react-dom": "^18.0.10",
@@ -50,5 +50,5 @@
50
50
  "change-case": "^4.1.2",
51
51
  "dlv": "^1.1.3"
52
52
  },
53
- "gitHead": "8c7b2566770ba6dbc181bd98a22cca50cc84c57e"
53
+ "gitHead": "ae56da24d04738bd064d262fb78205d5162e4ab2"
54
54
  }