@uniformdev/canvas-contentful 11.0.1-alpha.100
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/LICENSE.txt +2 -0
- package/README.md +3 -0
- package/dist/cjs/contentfulRichTextToHtmlEnhancer.d.ts +3 -0
- package/dist/cjs/contentfulRichTextToHtmlEnhancer.js +1 -0
- package/dist/cjs/createContentfulEnhancer.d.ts +36 -0
- package/dist/cjs/createContentfulEnhancer.js +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +1 -0
- package/dist/esm/contentfulRichTextToHtmlEnhancer.d.ts +3 -0
- package/dist/esm/contentfulRichTextToHtmlEnhancer.js +1 -0
- package/dist/esm/createContentfulEnhancer.d.ts +36 -0
- package/dist/esm/createContentfulEnhancer.js +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +1 -0
- package/package.json +55 -0
package/LICENSE.txt
ADDED
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.contentfulRichTextToHtmlEnhancer=void 0;var rich_text_html_renderer_1=require("@contentful/rich-text-html-renderer"),contentfulRichTextToHtmlEnhancer=function(e){var n=e.parameter;return"object"!=typeof(null===(e=n.value)||void 0===e?void 0:e.fields)||Object.entries(null!==(e=null===(e=n.value)||void 0===e?void 0:e.fields)&&void 0!==e?e:{}).forEach(function(e){var t=e[0],e=e[1];"object"==typeof e&&"nodeType"in e&&"document"===e.nodeType&&(n.value.fields[t]=(0,rich_text_html_renderer_1.documentToHtmlString)(e))}),n.value};exports.contentfulRichTextToHtmlEnhancer=contentfulRichTextToHtmlEnhancer;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ComponentParameterEnhancer, ComponentInstance, ComponentParameter, LimitPolicy, EnhancerContext } from '@uniformdev/canvas';
|
|
2
|
+
import { ContentfulClientApi, Sys } from 'contentful';
|
|
3
|
+
export declare type CreateContentfulQueryOptions<TContext extends EnhancerContext = EnhancerContext> = {
|
|
4
|
+
/** Canvas parameter name being queried for. Not defined if using batching. */
|
|
5
|
+
parameterName?: string;
|
|
6
|
+
/** Canvas parameter value being fetched. Not defined if using batching. */
|
|
7
|
+
parameter?: ComponentParameter;
|
|
8
|
+
/** Component containing the parameter being fetched. Not defined if using batching. */
|
|
9
|
+
component?: ComponentInstance;
|
|
10
|
+
/** The default Contentful query expression (select fields + include 1 layer of references) */
|
|
11
|
+
defaultQuery: any;
|
|
12
|
+
/** The enhancer context provided to the enhance() function */
|
|
13
|
+
context: TContext;
|
|
14
|
+
};
|
|
15
|
+
/** The default shape of the result value of the Contentful enhancer. Note that this can change if the query is altered. */
|
|
16
|
+
export declare type ContentfulEnhancerResult<TFields> = {
|
|
17
|
+
/**
|
|
18
|
+
* The shape of the `fields` that the Contentful REST API is expected to return for this entry
|
|
19
|
+
* https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/entries/entry
|
|
20
|
+
*
|
|
21
|
+
* These should line up with the fields in your content model(s) that are allowed for this component.
|
|
22
|
+
*/
|
|
23
|
+
fields: TFields;
|
|
24
|
+
/** System fields returned by the Contentful API. If you modify the query parameters to fetch more than fields, you may get more sys data than this. */
|
|
25
|
+
sys: Partial<Pick<Sys, 'id' | 'type'>>;
|
|
26
|
+
} | null;
|
|
27
|
+
export declare type CreateContentfulEnhancerOptions = {
|
|
28
|
+
client: ContentfulClientApi;
|
|
29
|
+
previewClient?: ContentfulClientApi;
|
|
30
|
+
/** Creates the Contentful client's query params for specific parameters. See https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters */
|
|
31
|
+
createQuery?: (options: CreateContentfulQueryOptions) => any | undefined;
|
|
32
|
+
useBatching?: boolean;
|
|
33
|
+
limitPolicy?: LimitPolicy;
|
|
34
|
+
};
|
|
35
|
+
export declare const CANVAS_CONTENTFUL_PARAMETER_TYPES: readonly string[];
|
|
36
|
+
export declare function createContentfulEnhancer({ client, previewClient, createQuery, useBatching, limitPolicy, }: CreateContentfulEnhancerOptions): ComponentParameterEnhancer<string, ContentfulEnhancerResult<unknown>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,i,u,c){return new(u=u||Promise)(function(r,t){function n(e){try{o(c.next(e))}catch(e){t(e)}}function a(e){try{o(c.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?r(e.value):((t=e.value)instanceof u?t:new u(function(e){e(t)})).then(n,a)}o((c=c.apply(e,i||[])).next())})},__generator=this&&this.__generator||function(r,n){var a,o,i,u={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(a)throw new TypeError("Generator is already executing.");for(;u;)try{if(a=1,o&&(i=2&t[0]?o.return:t[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,t[1])).done)return i;switch(o=0,(t=i?[2&t[0],i.value]:t)[0]){case 0:case 1:i=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,o=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(i=0<(i=u.trys).length&&i[i.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!i||t[1]>i[0]&&t[1]<i[3])){u.label=t[1];break}if(6===t[0]&&u.label<i[1]){u.label=i[1],i=t;break}if(i&&u.label<i[2]){u.label=i[2],u.ops.push(t);break}i[2]&&u.ops.pop(),u.trys.pop();continue}t=n.call(r,u)}catch(e){t=[6,e],o=0}finally{a=i=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createContentfulEnhancer=exports.CANVAS_CONTENTFUL_PARAMETER_TYPES=void 0;var canvas_1=require("@uniformdev/canvas"),defaultQuery={select:"fields",include:1};function createContentfulEnhancer(e){var t=this,l=e.client,r=e.previewClient,s=void 0===r?l:r,f=e.createQuery,r=e.useBatching,e=e.limitPolicy||(0,canvas_1.createLimitPolicy)({throttle:{limit:55,interval:1e3}});return r?(0,canvas_1.createBatchEnhancer)({handleBatch:function(u){return __awaiter(t,void 0,void 0,function(){var t,r,n,a,o,i;return __generator(this,function(e){switch(e.label){case 0:t=u[0].args.context.preview?s:l,r=null!==(i=null==f?void 0:f({defaultQuery:__assign({},defaultQuery),context:u[0].args.context}))&&void 0!==i?i:defaultQuery,e.label=1;case 1:e.trys.push([1,6,,7]),n=new canvas_1.UniqueBatchEntries(u,function(e){return e.parameter.value}),a=Object.keys(n.groups),console.time("fetch entries"),e.label=2;case 2:return e.trys.push([2,,4,5]),[4,t.getEntries(__assign({"sys.id[in]":a.join(","),limit:a.length},r))];case 3:return e.sent().items.forEach(function(e){n.resolveKey(e.sys.id,e)}),n.resolveRemaining(null),[3,5];case 4:return console.timeEnd("fetch entries"),[7];case 5:return[3,7];case 6:return i=e.sent(),i=getErrorMessageFromContentfulError(i),o=new Error("Failed loading Contentful entries batch ("+u.length+") "+i),u.forEach(function(e){return e.reject(o)}),[3,7];case 7:return[2]}})})},shouldQueue:function(e){return parameterIsContentfulEntrySelector(e.parameter)},limitPolicy:e}):{enhanceOne:function(e){var a,o=e.parameter,i=e.parameterName,u=e.component,c=e.context;return __awaiter(this,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:if(!parameterIsContentfulEntrySelector(o))return[3,5];if(!o.value)return[2,null];t=c.preview?s:l,r=null!==(a=null==f?void 0:f({parameter:o,parameterName:i,component:u,defaultQuery:__assign({},defaultQuery),context:c}))&&void 0!==a?a:defaultQuery,e.label=1;case 1:return e.trys.push([1,3,4,5]),console.time("fetch entry "+o.value),[4,t.getEntry(o.value,r)];case 2:return[2,e.sent()];case 3:throw n=e.sent(),n=getErrorMessageFromContentfulError(n),new Error("Failed loading Contentful entry "+o.value+" "+n);case 4:return console.timeEnd("fetch entry "+o.value),[7];case 5:return[2]}})})},limitPolicy:e}}function parameterIsContentfulEntrySelector(e){return e.type===exports.CANVAS_CONTENTFUL_PARAMETER_TYPES[0]&&"string"==typeof e.value}function getErrorMessageFromContentfulError(e){return"string"==typeof e?e:"object"==typeof e&&e&&"error"in e?e.error:e instanceof Error?e.toString():JSON.stringify(e,null,2)}exports.CANVAS_CONTENTFUL_PARAMETER_TYPES=Object.freeze(["contentfulEntry"]),exports.createContentfulEnhancer=createContentfulEnhancer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){e[n=void 0===n?r:n]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./createContentfulEnhancer"),exports),__exportStar(require("./contentfulRichTextToHtmlEnhancer"),exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{documentToHtmlString}from"@contentful/rich-text-html-renderer";var contentfulRichTextToHtmlEnhancer=function(e){var n=e.parameter;return"object"!=typeof(null===(e=n.value)||void 0===e?void 0:e.fields)||Object.entries(null!==(e=null===(e=n.value)||void 0===e?void 0:e.fields)&&void 0!==e?e:{}).forEach(function(e){var t=e[0],e=e[1];"object"==typeof e&&"nodeType"in e&&"document"===e.nodeType&&(n.value.fields[t]=documentToHtmlString(e))}),n.value};export{contentfulRichTextToHtmlEnhancer};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ComponentParameterEnhancer, ComponentInstance, ComponentParameter, LimitPolicy, EnhancerContext } from '@uniformdev/canvas';
|
|
2
|
+
import { ContentfulClientApi, Sys } from 'contentful';
|
|
3
|
+
export declare type CreateContentfulQueryOptions<TContext extends EnhancerContext = EnhancerContext> = {
|
|
4
|
+
/** Canvas parameter name being queried for. Not defined if using batching. */
|
|
5
|
+
parameterName?: string;
|
|
6
|
+
/** Canvas parameter value being fetched. Not defined if using batching. */
|
|
7
|
+
parameter?: ComponentParameter;
|
|
8
|
+
/** Component containing the parameter being fetched. Not defined if using batching. */
|
|
9
|
+
component?: ComponentInstance;
|
|
10
|
+
/** The default Contentful query expression (select fields + include 1 layer of references) */
|
|
11
|
+
defaultQuery: any;
|
|
12
|
+
/** The enhancer context provided to the enhance() function */
|
|
13
|
+
context: TContext;
|
|
14
|
+
};
|
|
15
|
+
/** The default shape of the result value of the Contentful enhancer. Note that this can change if the query is altered. */
|
|
16
|
+
export declare type ContentfulEnhancerResult<TFields> = {
|
|
17
|
+
/**
|
|
18
|
+
* The shape of the `fields` that the Contentful REST API is expected to return for this entry
|
|
19
|
+
* https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/entries/entry
|
|
20
|
+
*
|
|
21
|
+
* These should line up with the fields in your content model(s) that are allowed for this component.
|
|
22
|
+
*/
|
|
23
|
+
fields: TFields;
|
|
24
|
+
/** System fields returned by the Contentful API. If you modify the query parameters to fetch more than fields, you may get more sys data than this. */
|
|
25
|
+
sys: Partial<Pick<Sys, 'id' | 'type'>>;
|
|
26
|
+
} | null;
|
|
27
|
+
export declare type CreateContentfulEnhancerOptions = {
|
|
28
|
+
client: ContentfulClientApi;
|
|
29
|
+
previewClient?: ContentfulClientApi;
|
|
30
|
+
/** Creates the Contentful client's query params for specific parameters. See https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters */
|
|
31
|
+
createQuery?: (options: CreateContentfulQueryOptions) => any | undefined;
|
|
32
|
+
useBatching?: boolean;
|
|
33
|
+
limitPolicy?: LimitPolicy;
|
|
34
|
+
};
|
|
35
|
+
export declare const CANVAS_CONTENTFUL_PARAMETER_TYPES: readonly string[];
|
|
36
|
+
export declare function createContentfulEnhancer({ client, previewClient, createQuery, useBatching, limitPolicy, }: CreateContentfulEnhancerOptions): ComponentParameterEnhancer<string, ContentfulEnhancerResult<unknown>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,i,u,l){return new(u=u||Promise)(function(r,t){function n(e){try{o(l.next(e))}catch(e){t(e)}}function a(e){try{o(l.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?r(e.value):((t=e.value)instanceof u?t:new u(function(e){e(t)})).then(n,a)}o((l=l.apply(e,i||[])).next())})},__generator=this&&this.__generator||function(r,n){var a,o,i,u={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(a)throw new TypeError("Generator is already executing.");for(;u;)try{if(a=1,o&&(i=2&t[0]?o.return:t[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,t[1])).done)return i;switch(o=0,(t=i?[2&t[0],i.value]:t)[0]){case 0:case 1:i=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,o=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(i=0<(i=u.trys).length&&i[i.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!i||t[1]>i[0]&&t[1]<i[3])){u.label=t[1];break}if(6===t[0]&&u.label<i[1]){u.label=i[1],i=t;break}if(i&&u.label<i[2]){u.label=i[2],u.ops.push(t);break}i[2]&&u.ops.pop(),u.trys.pop();continue}t=n.call(r,u)}catch(e){t=[6,e],o=0}finally{a=i=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};import{createBatchEnhancer,UniqueBatchEntries,createLimitPolicy}from"@uniformdev/canvas";var defaultQuery={select:"fields",include:1},CANVAS_CONTENTFUL_PARAMETER_TYPES=Object.freeze(["contentfulEntry"]);function createContentfulEnhancer(e){var t=this,c=e.client,r=e.previewClient,s=void 0===r?c:r,f=e.createQuery,r=e.useBatching,e=e.limitPolicy||createLimitPolicy({throttle:{limit:55,interval:1e3}});return r?createBatchEnhancer({handleBatch:function(u){return __awaiter(t,void 0,void 0,function(){var t,r,n,a,o,i;return __generator(this,function(e){switch(e.label){case 0:t=u[0].args.context.preview?s:c,r=null!==(i=null==f?void 0:f({defaultQuery:__assign({},defaultQuery),context:u[0].args.context}))&&void 0!==i?i:defaultQuery,e.label=1;case 1:e.trys.push([1,6,,7]),n=new UniqueBatchEntries(u,function(e){return e.parameter.value}),a=Object.keys(n.groups),console.time("fetch entries"),e.label=2;case 2:return e.trys.push([2,,4,5]),[4,t.getEntries(__assign({"sys.id[in]":a.join(","),limit:a.length},r))];case 3:return e.sent().items.forEach(function(e){n.resolveKey(e.sys.id,e)}),n.resolveRemaining(null),[3,5];case 4:return console.timeEnd("fetch entries"),[7];case 5:return[3,7];case 6:return i=e.sent(),i=getErrorMessageFromContentfulError(i),o=new Error("Failed loading Contentful entries batch ("+u.length+") "+i),u.forEach(function(e){return e.reject(o)}),[3,7];case 7:return[2]}})})},shouldQueue:function(e){return parameterIsContentfulEntrySelector(e.parameter)},limitPolicy:e}):{enhanceOne:function(e){var a,o=e.parameter,i=e.parameterName,u=e.component,l=e.context;return __awaiter(this,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:if(!parameterIsContentfulEntrySelector(o))return[3,5];if(!o.value)return[2,null];t=l.preview?s:c,r=null!==(a=null==f?void 0:f({parameter:o,parameterName:i,component:u,defaultQuery:__assign({},defaultQuery),context:l}))&&void 0!==a?a:defaultQuery,e.label=1;case 1:return e.trys.push([1,3,4,5]),console.time("fetch entry "+o.value),[4,t.getEntry(o.value,r)];case 2:return[2,e.sent()];case 3:throw n=e.sent(),n=getErrorMessageFromContentfulError(n),new Error("Failed loading Contentful entry "+o.value+" "+n);case 4:return console.timeEnd("fetch entry "+o.value),[7];case 5:return[2]}})})},limitPolicy:e}}function parameterIsContentfulEntrySelector(e){return e.type===CANVAS_CONTENTFUL_PARAMETER_TYPES[0]&&"string"==typeof e.value}function getErrorMessageFromContentfulError(e){return"string"==typeof e?e:"object"==typeof e&&e&&"error"in e?e.error:e instanceof Error?e.toString():JSON.stringify(e,null,2)}export{CANVAS_CONTENTFUL_PARAMETER_TYPES,createContentfulEnhancer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./createContentfulEnhancer";export*from"./contentfulRichTextToHtmlEnhancer";
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@uniformdev/canvas-contentful",
|
|
3
|
+
"version": "11.0.1-alpha.100+620d5c7",
|
|
4
|
+
"description": "Contentful data enhancers for Uniform Canvas",
|
|
5
|
+
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
|
+
"main": "./dist/cjs/index.js",
|
|
7
|
+
"module": "./dist/esm/index.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
"import": "./dist/esm/index.js",
|
|
10
|
+
"require": "./dist/cjs/index.js"
|
|
11
|
+
},
|
|
12
|
+
"types": "./dist/cjs/index.d.ts",
|
|
13
|
+
"sideEffects": false,
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "run-p build:cjs build:esm",
|
|
16
|
+
"build:esm": "tsc",
|
|
17
|
+
"build:cjs": "tsc -p ./tsconfig.cjs.json",
|
|
18
|
+
"dev": "run-p dev:esm dev:cjs",
|
|
19
|
+
"dev:esm": "tsc -w",
|
|
20
|
+
"dev:cjs": "tsc -w -p ./tsconfig.cjs.json",
|
|
21
|
+
"clean": "rimraf dist",
|
|
22
|
+
"test": "jest --maxWorkers=1",
|
|
23
|
+
"lint": "eslint \"src/**/*.{js,ts,tsx}\"",
|
|
24
|
+
"format": "prettier --write \"src/**/*.{js,ts,tsx}\"",
|
|
25
|
+
"ci:verify": "run-p lint test",
|
|
26
|
+
"ci:build": "run-s clean build"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@uniformdev/canvas": "^11.0.1-alpha.100+620d5c7"
|
|
30
|
+
},
|
|
31
|
+
"peerDependencies": {
|
|
32
|
+
"@contentful/rich-text-html-renderer": ">= 14",
|
|
33
|
+
"contentful": ">= 8"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@contentful/rich-text-html-renderer": "15.4.0",
|
|
37
|
+
"@types/jest": "27.0.2",
|
|
38
|
+
"@types/node": "16.7.1",
|
|
39
|
+
"contentful": "9.0.0",
|
|
40
|
+
"eslint": "7.32.0",
|
|
41
|
+
"eslint-plugin-react": "7.26.0",
|
|
42
|
+
"eslint-plugin-react-hooks": "4.2.0",
|
|
43
|
+
"jest": "27.2.3",
|
|
44
|
+
"npm-run-all": "4.1.5",
|
|
45
|
+
"rimraf": "3.0.2",
|
|
46
|
+
"ts-jest": "27.0.5"
|
|
47
|
+
},
|
|
48
|
+
"files": [
|
|
49
|
+
"/dist"
|
|
50
|
+
],
|
|
51
|
+
"publishConfig": {
|
|
52
|
+
"access": "public"
|
|
53
|
+
},
|
|
54
|
+
"gitHead": "620d5c75566fdb5ee98ab0d1e3969a92fceb2f7a"
|
|
55
|
+
}
|