Socket
Socket
Sign inDemoInstall

@shopify/react-html

Package Overview
Dependencies
Maintainers
12
Versions
191
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@shopify/react-html - npm Package Compare versions

Comparing version 6.2.0 to 7.0.0

dist/components/DomEffect.d.ts

2

dist/common.d.ts
export * from './components';
export { default as Manager } from './manager';
export { default as Manager, EFFECT_ID } from './manager';
export { Provider } from './context';
export { showPage, getSerialized } from './utilities';
export { createSerializer } from './serializer';

@@ -7,2 +7,3 @@ "use strict";

exports.Manager = manager_1.default;
exports.EFFECT_ID = manager_1.EFFECT_ID;
var context_1 = require("./context");

@@ -9,0 +10,0 @@ exports.Provider = context_1.Provider;

import * as React from 'react';
declare type Props = React.HTMLProps<HTMLLinkElement>;
export default class Link extends React.PureComponent<Props> {
private removeLink?;
componentWillUnmount(): void;
render(): JSX.Element;
}
export default function Link(props: Props): JSX.Element;
export {};

@@ -5,26 +5,6 @@ "use strict";

var React = tslib_1.__importStar(require("react"));
var react_effect_1 = require("@shopify/react-effect");
var context_1 = require("../context");
var utilities_1 = require("../utilities");
var Link = /** @class */ (function (_super) {
tslib_1.__extends(Link, _super);
function Link() {
return _super !== null && _super.apply(this, arguments) || this;
}
Link.prototype.componentWillUnmount = function () {
if (this.removeLink) {
this.removeLink();
}
};
Link.prototype.render = function () {
var _this = this;
return (React.createElement(context_1.Context.Consumer, null, function (manager) { return (React.createElement(react_effect_1.Effect, { key: JSON.stringify(_this.props), kind: utilities_1.EFFECT_ID, perform: function () {
if (_this.removeLink) {
_this.removeLink();
}
_this.removeLink = manager.addLink(_this.props);
} })); }));
};
return Link;
}(React.PureComponent));
var DomEffect_1 = tslib_1.__importDefault(require("./DomEffect"));
function Link(props) {
return (React.createElement(DomEffect_1.default, { key: JSON.stringify(props), perform: function (manager) { return manager.addLink(props); } }));
}
exports.default = Link;
import * as React from 'react';
declare type Props = React.HTMLProps<HTMLMetaElement>;
export declare const EXTRACT_ID: unique symbol;
export default class Meta extends React.PureComponent<Props> {
private removeMeta?;
componentWillUnmount(): void;
render(): JSX.Element;
}
export default function Meta(props: Props): JSX.Element;
export {};

@@ -5,27 +5,6 @@ "use strict";

var React = tslib_1.__importStar(require("react"));
var react_effect_1 = require("@shopify/react-effect");
var context_1 = require("../context");
var utilities_1 = require("../utilities");
exports.EXTRACT_ID = Symbol('html');
var Meta = /** @class */ (function (_super) {
tslib_1.__extends(Meta, _super);
function Meta() {
return _super !== null && _super.apply(this, arguments) || this;
}
Meta.prototype.componentWillUnmount = function () {
if (this.removeMeta) {
this.removeMeta();
}
};
Meta.prototype.render = function () {
var _this = this;
return (React.createElement(context_1.Context.Consumer, null, function (manager) { return (React.createElement(react_effect_1.Effect, { key: JSON.stringify(_this.props), kind: utilities_1.EFFECT_ID, perform: function () {
if (_this.removeMeta) {
_this.removeMeta();
}
_this.removeMeta = manager.addMeta(_this.props);
} })); }));
};
return Meta;
}(React.PureComponent));
var DomEffect_1 = tslib_1.__importDefault(require("./DomEffect"));
function Meta(props) {
return (React.createElement(DomEffect_1.default, { key: JSON.stringify(props), perform: function (manager) { return manager.addMeta(props); } }));
}
exports.default = Meta;

@@ -1,10 +0,6 @@

import * as React from 'react';
/// <reference types="react" />
interface Props {
children: string;
}
export default class Title extends React.PureComponent<Props> {
private removeTitle?;
componentWillUnmount(): void;
render(): JSX.Element;
}
export default function Title({ children: title }: Props): JSX.Element;
export {};

@@ -5,27 +5,7 @@ "use strict";

var React = tslib_1.__importStar(require("react"));
var react_effect_1 = require("@shopify/react-effect");
var context_1 = require("../context");
var utilities_1 = require("../utilities");
var Title = /** @class */ (function (_super) {
tslib_1.__extends(Title, _super);
function Title() {
return _super !== null && _super.apply(this, arguments) || this;
}
Title.prototype.componentWillUnmount = function () {
if (this.removeTitle) {
this.removeTitle();
}
};
Title.prototype.render = function () {
var _this = this;
var title = this.props.children;
return (React.createElement(context_1.Context.Consumer, null, function (manager) { return (React.createElement(react_effect_1.Effect, { key: title, kind: utilities_1.EFFECT_ID, perform: function () {
if (_this.removeTitle) {
_this.removeTitle();
}
_this.removeTitle = manager.addTitle(title);
} })); }));
};
return Title;
}(React.PureComponent));
var DomEffect_1 = tslib_1.__importDefault(require("./DomEffect"));
function Title(_a) {
var title = _a.children;
return React.createElement(DomEffect_1.default, { key: title, perform: function (manager) { return manager.addTitle(title); } });
}
exports.default = Title;
/// <reference types="react" />
import { EffectKind } from '@shopify/react-effect';
export interface State {

@@ -10,3 +11,5 @@ title?: string;

}
export declare const EFFECT_ID: unique symbol;
export default class Manager {
effect: EffectKind;
private isServer;

@@ -22,2 +25,5 @@ private serializations;

});
reset({ includeSerializations }?: {
includeSerializations?: boolean | undefined;
}): void;
subscribe(subscription: Subscription): void;

@@ -24,0 +30,0 @@ addTitle(title: string): any;

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

var utilities_1 = require("./utilities");
exports.EFFECT_ID = Symbol('html');
var Manager = /** @class */ (function () {
function Manager(_a) {
var _b = (_a === void 0 ? {} : _a).isServer, isServer = _b === void 0 ? typeof document === 'undefined' : _b;
var _this = this;
this.effect = {
id: exports.EFFECT_ID,
betweenEachPass: function () { return _this.reset(); },
};
this.serializations = utilities_1.getSerializationsFromDocument();

@@ -28,2 +34,12 @@ this.titles = [];

});
Manager.prototype.reset = function (_a) {
var _b = (_a === void 0 ? {} : _a).includeSerializations, includeSerializations = _b === void 0 ? false : _b;
this.titles = [];
this.metas = [];
this.links = [];
this.subscriptions.clear();
if (includeSerializations) {
this.serializations.clear();
}
};
Manager.prototype.subscribe = function (subscription) {

@@ -30,0 +46,0 @@ this.subscriptions.add(subscription);

import * as React from 'react';
export declare const EXTRACT_ID: unique symbol;
interface SerializeProps<T> {
data(): T;
data(): T | Promise<T>;
}

@@ -6,0 +6,0 @@ interface WithSerializedProps<T> {

@@ -11,3 +11,9 @@ "use strict";

var data = _a.data;
return (React.createElement(context_1.Context.Consumer, null, function (manager) { return (React.createElement(react_effect_1.Effect, { serverOnly: true, kind: exports.EXTRACT_ID, perform: function () { return manager.setSerialization(id, data()); } })); }));
return (React.createElement(context_1.Context.Consumer, null, function (manager) { return (React.createElement(react_effect_1.Effect, { kind: manager.effect, perform: function () {
var result = data();
var handleResult = manager.setSerialization.bind(manager, id);
return typeof result === 'object' && isPromise(result)
? result.then(handleResult)
: handleResult(result);
} })); }));
}

@@ -21,1 +27,4 @@ function WithSerialized(_a) {

exports.createSerializer = createSerializer;
function isPromise(maybePromise) {
return maybePromise != null && maybePromise.then != null;
}

@@ -9,3 +9,3 @@ import * as React from 'react';

manager?: Manager;
children: React.ReactNode;
children: React.ReactElement<any> | string;
locale?: string;

@@ -12,0 +12,0 @@ styles?: Asset[];

@@ -12,3 +12,3 @@ "use strict";

var _h;
var markup = server_1.renderToString(children);
var markup = typeof children === 'string' ? children : server_1.renderToString(children);
var extracted = manager && manager.extract();

@@ -15,0 +15,0 @@ var serializationMarkup = extracted

export declare const SERIALIZE_ATTRIBUTE = "data-serialized-id";
export declare const MANAGED_ATTRIBUTE = "data-react-html";
export declare const EFFECT_ID: unique symbol;
export declare function getSerializationsFromDocument(): Map<string, unknown>;
export declare function getSerialized<Data>(id: string): Data | undefined;
export declare function showPage(): Promise<void>;

@@ -6,3 +6,2 @@ "use strict";

exports.MANAGED_ATTRIBUTE = 'data-react-html';
exports.EFFECT_ID = Symbol('html');
function getSerializationsFromDocument() {

@@ -9,0 +8,0 @@ var e_1, _a;

{
"name": "@shopify/react-html",
"version": "6.2.0",
"version": "7.0.0",
"license": "MIT",

@@ -26,3 +26,5 @@ "description": "A component to render your react app with no static HTML.",

"dependencies": {
"@shopify/react-effect": "^2.0.0",
"@shopify/react-serialize": "^1.0.12",
"@shopify/useful-types": "^1.1.0",
"tslib": "^1.9.3"

@@ -29,0 +31,0 @@ },

export * from './components';
export {default as Manager} from './manager';
export {default as Manager, EFFECT_ID} from './manager';
export {Provider} from './context';
export {showPage, getSerialized} from './utilities';
export {createSerializer} from './serializer';

@@ -0,1 +1,2 @@

import {EffectKind} from '@shopify/react-effect';
import {getSerializationsFromDocument} from './utilities';

@@ -17,3 +18,10 @@

export const EFFECT_ID = Symbol('html');
export default class Manager {
effect: EffectKind = {
id: EFFECT_ID,
betweenEachPass: () => this.reset(),
};
private isServer: boolean;

@@ -40,2 +48,13 @@ private serializations = getSerializationsFromDocument();

reset({includeSerializations = false} = {}) {
this.titles = [];
this.metas = [];
this.links = [];
this.subscriptions.clear();
if (includeSerializations) {
this.serializations.clear();
}
}
subscribe(subscription: Subscription) {

@@ -42,0 +61,0 @@ this.subscriptions.add(subscription);

export const SERIALIZE_ATTRIBUTE = 'data-serialized-id';
export const MANAGED_ATTRIBUTE = 'data-react-html';
export const EFFECT_ID = Symbol('html');

@@ -5,0 +4,0 @@ export function getSerializationsFromDocument() {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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