From f9d116206e0585a58056d8e9f3039134eb42d064 Mon Sep 17 00:00:00 2001 From: Angelo Ashmore Date: Tue, 26 Mar 2024 14:53:20 -1000 Subject: [PATCH] feat(SliceZone): add support for mapped Slice Zones created with `@prismicio/client`'s `unstable_mapSliceZone()` (#19) * feat(SliceZone): add support for mapped Slice Zones created with `@prismicio/client`'s `unstable_mapSliceZone()` * chore: update `@prismicio/client` dev dependency --- package-lock.json | 8 ++++---- package.json | 2 +- src/SliceZone/SliceZone.svelte | 20 +++++++++++++++++--- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5d40010..0621a38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "esm-env": "^1.0.0" }, "devDependencies": { - "@prismicio/client": "^7.2.0", + "@prismicio/client": "^7.4.0", "@prismicio/mock": "^0.3.1", "@size-limit/preset-small-lib": "^11.0.1", "@sveltejs/kit": "^2.0.0", @@ -1111,9 +1111,9 @@ "dev": true }, "node_modules/@prismicio/client": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@prismicio/client/-/client-7.3.1.tgz", - "integrity": "sha512-9MKR/atr4dIQz8rZsQ4Fe7588qSQF2CYXutYW8O9bJOqlrjvAcC8b1Yvu7AIOksXlxE/aAWPtriQ2JZMiTFjNw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@prismicio/client/-/client-7.4.0.tgz", + "integrity": "sha512-CNUSffXDcBXWb8lRko8cW/975hPFKsT0lxziXUOHfsGZ/AOYkQlW9LOO04UBPzHGqWxt0PU45k7kpT692JoKTw==", "dev": true, "dependencies": { "imgix-url-builder": "^0.0.4" diff --git a/package.json b/package.json index 2bd46a5..0c09541 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "esm-env": "^1.0.0" }, "devDependencies": { - "@prismicio/client": "^7.2.0", + "@prismicio/client": "^7.4.0", "@prismicio/mock": "^0.3.1", "@size-limit/preset-small-lib": "^11.0.1", "@sveltejs/kit": "^2.0.0", diff --git a/src/SliceZone/SliceZone.svelte b/src/SliceZone/SliceZone.svelte index 0eac070..757dc36 100644 --- a/src/SliceZone/SliceZone.svelte +++ b/src/SliceZone/SliceZone.svelte @@ -48,9 +48,18 @@ * * @typeParam SliceType - Type name of the Slice. */ - type SliceLike = + type SliceLike = ( | SliceLikeRestV2 - | SliceLikeGraphQL; + | SliceLikeGraphQL + ) & { + /** + * If `true`, this Slice has been modified from its original value using a + * mapper and `@prismicio/client`'s `mapSliceZone()`. + * + * @internal + */ + __mapped?: true; + }; /** * An array of Prismic Slices, such as the `slices` property from a Prismic @@ -108,7 +117,12 @@ {@const type = "slice_type" in slice ? slice.slice_type : slice.type} {@const Component = components[type] || defaultComponent} {#if Component} - + {#if slice.__mapped} + {@const { __mapped, ...mappedProps } = slice} + + {:else} + + {/if} {:else} {/if}