contentful-migration 4.31.0 → 4.31.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/CHANGELOG.md +3 -3
- package/README.md +2 -0
- package/built/lib/action/entry-derive.js +7 -1
- package/built/lib/action/entry-derive.js.map +1 -1
- package/index.d.ts +10 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
## [4.31.2](https://github.com/contentful/contentful-migration/compare/v4.31.1...v4.31.2) (2025-09-25)
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
###
|
|
4
|
+
### Bug Fixes
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* **entry-derive:** check localeBasedPublishing and entry.fieldStatus before publishing. ([f8cd293](https://github.com/contentful/contentful-migration/commit/f8cd2939a70f614f5f7175e910127449e1ddc278))
|
|
7
7
|
|
|
8
8
|
# Change Log
|
|
9
9
|
|
package/README.md
CHANGED
|
@@ -351,6 +351,8 @@ The derive function is expected to return an object with the desired target fiel
|
|
|
351
351
|
|
|
352
352
|
- **`shouldPublish : bool|'preserve'`** _(optional)_ – If true, both the source and the derived entries will be published. If false, both will remain in draft state. If preserve, will keep current states of the source entries (default `true`)
|
|
353
353
|
|
|
354
|
+
- **`useLocaleBasedPublishing : bool`** _(optional)_ - If true, the transformed entries will be published with locale based publishing. If `false`, they will remain in draft state. When the value from `shouldPublish` is set to "preserve" items will be published only if the original entry was published in this locale as well (default false)
|
|
355
|
+
|
|
354
356
|
##### `deriveLinkedEntries(config)` Example
|
|
355
357
|
|
|
356
358
|
```javascript
|
|
@@ -49,7 +49,13 @@ class EntryDeriveAction extends action_1.APIAction {
|
|
|
49
49
|
}
|
|
50
50
|
async publishEntry(api, entry, locales) {
|
|
51
51
|
if (this.useLocaleBasedPublishing) {
|
|
52
|
-
|
|
52
|
+
// Publish only locales that were already published if shouldPublish is 'preserve'
|
|
53
|
+
const localesToPublish = this.shouldPublish === 'preserve' && entry.fieldStatus
|
|
54
|
+
? Object.entries(entry.fieldStatus['*'])
|
|
55
|
+
.filter(([, status]) => status === 'published')
|
|
56
|
+
.map(([locale]) => locale)
|
|
57
|
+
: locales;
|
|
58
|
+
await api.localeBasedPublishEntry(entry.id, localesToPublish);
|
|
53
59
|
}
|
|
54
60
|
else {
|
|
55
61
|
await api.publishEntry(entry.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-derive.js","sourceRoot":"","sources":["../../../src/lib/action/entry-derive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qCAAoC;AAGpC,qEAA2C;AAG3C,0CAA2B;AAC3B,yGAA6E;AAE7E,MAAM,iBAAkB,SAAQ,kBAAS;IAcvC,YAAY,aAAqB,EAAE,eAA4B;QAC7D,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAA;QACtC,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,gBAAgB,CAAA;QACtD,IAAI,CAAC,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAA;QAC5D,IAAI,CAAC,oBAAoB,GAAG,eAAe,CAAC,oBAAoB,CAAA;QAChE,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAA;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAA,oBAAS,EAAC,eAAe,CAAC,aAAa,CAAC;YAC3D,CAAC,CAAC,eAAe,CAAC,aAAa;YAC/B,CAAC,CAAC,IAAI,CAAA;QACR,IAAI,CAAC,wBAAwB,GAAG,IAAA,oBAAS,EAAC,eAAe,CAAC,wBAAwB,CAAC;YACjF,CAAC,CAAC,eAAe,CAAC,wBAAwB;YAC1C,CAAC,CAAC,KAAK,CAAA;IACX,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAe,EAAE,KAAY,EAAE,OAAiB;QACzE,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjC,MAAM,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"entry-derive.js","sourceRoot":"","sources":["../../../src/lib/action/entry-derive.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -57,6 +57,8 @@ type BuiltinEditor =
|
|
|
57
57
|
| 'dropdown'
|
|
58
58
|
| 'radio'
|
|
59
59
|
| 'richTextEditor'
|
|
60
|
+
| 'resourceLinkEditor'
|
|
61
|
+
| 'resourceLinksEditor'
|
|
60
62
|
|
|
61
63
|
type FieldType =
|
|
62
64
|
| 'Symbol'
|
|
@@ -605,6 +607,14 @@ export interface IDeriveLinkedEntriesConfig {
|
|
|
605
607
|
* The return value must be an object with the same keys as specified in derivedFields. Their values will be written to the respective new entry fields for the current locale (i.e. {nameField: 'myNewValue'})
|
|
606
608
|
*/
|
|
607
609
|
deriveEntryForLocale: (inputFields: ContentFields, locale: string) => { [field: string]: any }
|
|
610
|
+
|
|
611
|
+
/**
|
|
612
|
+
* (optional) – If true, the transformed entries will be published with locale based publishing.
|
|
613
|
+
* If `false`, they will remain in draft state. When the value from `shouldPublish` is set to
|
|
614
|
+
* "preserve" items will be published only if the original entry was published in this locale
|
|
615
|
+
* as well (default false)
|
|
616
|
+
*/
|
|
617
|
+
useLocaleBasedPublishing?: boolean
|
|
608
618
|
}
|
|
609
619
|
|
|
610
620
|
type TagVisibility = 'private' | 'public'
|