New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

datocms-structured-text-generic-html-renderer

Package Overview
Dependencies
Maintainers
5
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

datocms-structured-text-generic-html-renderer - npm Package Compare versions

Comparing version 1.2.3-alpha.3 to 1.3.0

67

dist/cjs/index.js

@@ -21,5 +21,5 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.render = exports.defaultMetaTransformer = exports.markToTagName = exports.RenderError = exports.renderRule = void 0;
exports.render = exports.defaultMetaTransformer = exports.spanNodeRenderRule = exports.renderMarkRule = exports.renderSpanValue = exports.markToTagName = exports.RenderError = exports.renderNodeRule = void 0;
var datocms_structured_text_utils_1 = require("datocms-structured-text-utils");
Object.defineProperty(exports, "renderRule", { enumerable: true, get: function () { return datocms_structured_text_utils_1.renderRule; } });
Object.defineProperty(exports, "renderNodeRule", { enumerable: true, get: function () { return datocms_structured_text_utils_1.renderRule; } });
Object.defineProperty(exports, "RenderError", { enumerable: true, get: function () { return datocms_structured_text_utils_1.RenderError; } });

@@ -41,2 +41,42 @@ function markToTagName(mark) {

exports.markToTagName = markToTagName;
function renderSpanValue(_a) {
var node = _a.node, key = _a.key, _b = _a.adapter, renderNode = _b.renderNode, renderText = _b.renderText, renderFragment = _b.renderFragment;
var lines = node.value.split(/\n/);
if (lines.length === 0) {
return renderText(node.value, key);
}
return renderFragment(lines.slice(1).reduce(function (acc, line, index) {
return acc.concat([
renderNode('br', { key: key + "-br-" + index }),
renderText(line, key + "-line-" + index),
]);
}, [renderText(lines[0], key + "-line-first")]), key);
}
exports.renderSpanValue = renderSpanValue;
function renderMarkRule(guard, transform) {
return {
appliable: typeof guard === 'string' ? function (mark) { return mark === guard; } : guard,
apply: transform,
};
}
exports.renderMarkRule = renderMarkRule;
function spanNodeRenderRule(_a) {
var customMarkRules = _a.customMarkRules;
return datocms_structured_text_utils_1.renderRule(datocms_structured_text_utils_1.isSpan, function (context) {
var adapter = context.adapter, key = context.key, node = context.node;
return (node.marks || []).reduce(function (children, mark) {
if (!children) {
return undefined;
}
var matchingCustomRule = customMarkRules.find(function (rule) {
return rule.appliable(mark);
});
if (matchingCustomRule) {
return matchingCustomRule.apply({ adapter: adapter, key: key, mark: mark, children: children });
}
return adapter.renderNode(markToTagName(mark), { key: key }, children);
}, renderSpanValue(context));
});
}
exports.spanNodeRenderRule = spanNodeRenderRule;
var defaultMetaTransformer = function (_a) {

@@ -53,5 +93,5 @@ var meta = _a.meta;

exports.defaultMetaTransformer = defaultMetaTransformer;
function render(adapter, structuredTextOrNode, customRules, metaTransformer) {
if (metaTransformer === void 0) { metaTransformer = exports.defaultMetaTransformer; }
return datocms_structured_text_utils_1.render(adapter, structuredTextOrNode, __spreadArrays(customRules, [
function render(structuredTextOrNode, options) {
var metaTransformer = options.metaTransformer || exports.defaultMetaTransformer;
return datocms_structured_text_utils_1.render(options.adapter, structuredTextOrNode, __spreadArrays((options.customNodeRules || []), [
datocms_structured_text_utils_1.renderRule(datocms_structured_text_utils_1.isRoot, function (_a) {

@@ -98,18 +138,3 @@ var renderFragment = _a.adapter.renderFragment, key = _a.key, children = _a.children;

}),
datocms_structured_text_utils_1.renderRule(datocms_structured_text_utils_1.isSpan, function (_a) {
var _b = _a.adapter, renderNode = _b.renderNode, renderText = _b.renderText, key = _a.key, node = _a.node;
var marks = node.marks || [];
var lines = node.value.split(/\n/);
var textWithNewlinesConvertedToBr = lines.length > 0
? lines.slice(1).reduce(function (acc, line, index) {
return acc.concat([
renderNode('br', { key: key + "-br-" + index }),
renderText(line, key + "-line-" + index),
]);
}, [renderText(lines[0], key + "-line-first")])
: renderText(node.value, key);
return marks.reduce(function (children, mark) {
return renderNode(markToTagName(mark), { key: key }, children);
}, textWithNewlinesConvertedToBr);
}),
spanNodeRenderRule({ customMarkRules: options.customMarkRules || [] }),
]));

@@ -116,0 +141,0 @@ }

@@ -1,4 +0,19 @@

import { Adapter, Mark, Record, RenderResult, RenderRule, renderRule, StructuredText, TrasformFn, RenderError, Node, Document, NodeWithMeta, MetaEntry } from 'datocms-structured-text-utils';
export { renderRule, RenderError };
import { Adapter, Mark, Record, RenderResult, RenderRule, renderRule, StructuredText, TrasformFn, RenderError, Node, Document, NodeWithMeta, MetaEntry, RenderContext, Span } from 'datocms-structured-text-utils';
export { renderRule as renderNodeRule, RenderError };
export declare function markToTagName(mark: Mark): string;
export declare function renderSpanValue<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>({ node, key, adapter: { renderNode, renderText, renderFragment }, }: RenderContext<H, T, F, Span>): RenderResult<H, T, F>;
declare type RenderMarkContext<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn> = {
mark: string;
adapter: Adapter<H, T, F>;
key: string;
children: Exclude<RenderResult<H, T, F>, null | undefined>[] | undefined;
};
export declare type RenderMarkRule<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn> = {
appliable: (mark: string) => boolean;
apply: (ctx: RenderMarkContext<H, T, F>) => RenderResult<H, T, F>;
};
export declare function renderMarkRule<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>(guard: string | ((mark: string) => boolean), transform: (ctx: RenderMarkContext<H, T, F>) => RenderResult<H, T, F>): RenderMarkRule<H, T, F>;
export declare function spanNodeRenderRule<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>({ customMarkRules, }: {
customMarkRules: RenderMarkRule<H, T, F>[];
}): RenderRule<H, T, F>;
export declare type TransformMetaContext = {

@@ -13,2 +28,8 @@ node: NodeWithMeta;

export declare const defaultMetaTransformer: TransformMetaFn;
export declare function render<R extends Record, H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>(adapter: Adapter<H, T, F>, structuredTextOrNode: StructuredText<R> | Document | Node | null | undefined, customRules: RenderRule<H, T, F>[], metaTransformer?: TransformMetaFn): RenderResult<H, T, F>;
export declare type RenderOptions<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn> = {
adapter: Adapter<H, T, F>;
customNodeRules?: RenderRule<H, T, F>[];
metaTransformer?: TransformMetaFn;
customMarkRules?: RenderMarkRule<H, T, F>[];
};
export declare function render<R extends Record, H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>(structuredTextOrNode: StructuredText<R> | Document | Node | null | undefined, options: RenderOptions<H, T, F>): RenderResult<H, T, F>;

@@ -20,3 +20,3 @@ var __assign = (this && this.__assign) || function () {

import { isBlockquote, isCode, isHeading, isLink, isList, isListItem, isParagraph, isRoot, isSpan, render as genericRender, renderRule, RenderError, isThematicBreak, } from 'datocms-structured-text-utils';
export { renderRule, RenderError };
export { renderRule as renderNodeRule, RenderError };
export function markToTagName(mark) {

@@ -36,2 +36,39 @@ switch (mark) {

}
export function renderSpanValue(_a) {
var node = _a.node, key = _a.key, _b = _a.adapter, renderNode = _b.renderNode, renderText = _b.renderText, renderFragment = _b.renderFragment;
var lines = node.value.split(/\n/);
if (lines.length === 0) {
return renderText(node.value, key);
}
return renderFragment(lines.slice(1).reduce(function (acc, line, index) {
return acc.concat([
renderNode('br', { key: key + "-br-" + index }),
renderText(line, key + "-line-" + index),
]);
}, [renderText(lines[0], key + "-line-first")]), key);
}
export function renderMarkRule(guard, transform) {
return {
appliable: typeof guard === 'string' ? function (mark) { return mark === guard; } : guard,
apply: transform,
};
}
export function spanNodeRenderRule(_a) {
var customMarkRules = _a.customMarkRules;
return renderRule(isSpan, function (context) {
var adapter = context.adapter, key = context.key, node = context.node;
return (node.marks || []).reduce(function (children, mark) {
if (!children) {
return undefined;
}
var matchingCustomRule = customMarkRules.find(function (rule) {
return rule.appliable(mark);
});
if (matchingCustomRule) {
return matchingCustomRule.apply({ adapter: adapter, key: key, mark: mark, children: children });
}
return adapter.renderNode(markToTagName(mark), { key: key }, children);
}, renderSpanValue(context));
});
}
export var defaultMetaTransformer = function (_a) {

@@ -47,5 +84,5 @@ var meta = _a.meta;

};
export function render(adapter, structuredTextOrNode, customRules, metaTransformer) {
if (metaTransformer === void 0) { metaTransformer = defaultMetaTransformer; }
return genericRender(adapter, structuredTextOrNode, __spreadArrays(customRules, [
export function render(structuredTextOrNode, options) {
var metaTransformer = options.metaTransformer || defaultMetaTransformer;
return genericRender(options.adapter, structuredTextOrNode, __spreadArrays((options.customNodeRules || []), [
renderRule(isRoot, function (_a) {

@@ -92,20 +129,5 @@ var renderFragment = _a.adapter.renderFragment, key = _a.key, children = _a.children;

}),
renderRule(isSpan, function (_a) {
var _b = _a.adapter, renderNode = _b.renderNode, renderText = _b.renderText, key = _a.key, node = _a.node;
var marks = node.marks || [];
var lines = node.value.split(/\n/);
var textWithNewlinesConvertedToBr = lines.length > 0
? lines.slice(1).reduce(function (acc, line, index) {
return acc.concat([
renderNode('br', { key: key + "-br-" + index }),
renderText(line, key + "-line-" + index),
]);
}, [renderText(lines[0], key + "-line-first")])
: renderText(node.value, key);
return marks.reduce(function (children, mark) {
return renderNode(markToTagName(mark), { key: key }, children);
}, textWithNewlinesConvertedToBr);
}),
spanNodeRenderRule({ customMarkRules: options.customMarkRules || [] }),
]));
}
//# sourceMappingURL=index.js.map

@@ -1,4 +0,19 @@

import { Adapter, Mark, Record, RenderResult, RenderRule, renderRule, StructuredText, TrasformFn, RenderError, Node, Document, NodeWithMeta, MetaEntry } from 'datocms-structured-text-utils';
export { renderRule, RenderError };
import { Adapter, Mark, Record, RenderResult, RenderRule, renderRule, StructuredText, TrasformFn, RenderError, Node, Document, NodeWithMeta, MetaEntry, RenderContext, Span } from 'datocms-structured-text-utils';
export { renderRule as renderNodeRule, RenderError };
export declare function markToTagName(mark: Mark): string;
export declare function renderSpanValue<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>({ node, key, adapter: { renderNode, renderText, renderFragment }, }: RenderContext<H, T, F, Span>): RenderResult<H, T, F>;
declare type RenderMarkContext<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn> = {
mark: string;
adapter: Adapter<H, T, F>;
key: string;
children: Exclude<RenderResult<H, T, F>, null | undefined>[] | undefined;
};
export declare type RenderMarkRule<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn> = {
appliable: (mark: string) => boolean;
apply: (ctx: RenderMarkContext<H, T, F>) => RenderResult<H, T, F>;
};
export declare function renderMarkRule<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>(guard: string | ((mark: string) => boolean), transform: (ctx: RenderMarkContext<H, T, F>) => RenderResult<H, T, F>): RenderMarkRule<H, T, F>;
export declare function spanNodeRenderRule<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>({ customMarkRules, }: {
customMarkRules: RenderMarkRule<H, T, F>[];
}): RenderRule<H, T, F>;
export declare type TransformMetaContext = {

@@ -13,2 +28,8 @@ node: NodeWithMeta;

export declare const defaultMetaTransformer: TransformMetaFn;
export declare function render<R extends Record, H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>(adapter: Adapter<H, T, F>, structuredTextOrNode: StructuredText<R> | Document | Node | null | undefined, customRules: RenderRule<H, T, F>[], metaTransformer?: TransformMetaFn): RenderResult<H, T, F>;
export declare type RenderOptions<H extends TrasformFn, T extends TrasformFn, F extends TrasformFn> = {
adapter: Adapter<H, T, F>;
customNodeRules?: RenderRule<H, T, F>[];
metaTransformer?: TransformMetaFn;
customMarkRules?: RenderMarkRule<H, T, F>[];
};
export declare function render<R extends Record, H extends TrasformFn, T extends TrasformFn, F extends TrasformFn>(structuredTextOrNode: StructuredText<R> | Document | Node | null | undefined, options: RenderOptions<H, T, F>): RenderResult<H, T, F>;
{
"name": "datocms-structured-text-generic-html-renderer",
"version": "1.2.3-alpha.3",
"version": "1.3.0",
"description": "A set of Typescript types and helpers to work with DatoCMS Structured Text fields",

@@ -35,5 +35,5 @@ "keywords": [

"dependencies": {
"datocms-structured-text-utils": "^1.2.3-alpha.3"
"datocms-structured-text-utils": "^1.2.0"
},
"gitHead": "283340766136a58a5bf2046bc75fc34999c838db"
"gitHead": "c12c0a8f63562fc2bd11aa79cd51eb7f31eabbd4"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc