Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
wrap(() => {
for (const prop in props) {
if (prop === "children") continue;
const value = props[prop];
if (value === prevProps[prop]) continue;
if (prop === "style") {
Object.assign(node.style, value);
} else if (prop === "classList") {
classList(node, value, prevProps[prop]);
// really only for forwarding from Components, can't forward normal ref
} else if (prop === "ref" || prop === "forwardRef") {
value(node);
} else if (prop.slice(0, 2) === "on") {
const lc = prop.toLowerCase();
if (lc !== prop && !NonComposedEvents.has(lc.slice(2))) {
const name = lc.slice(2);
node[`__${name}`] = value;
delegateEvents([name]);
} else node[lc] = value;
} else if (prop === "events") {
for (const eventName in value)
node.addEventListener(eventName, value[eventName]);
} else if ((info = Attributes[prop])) {
if (info.type === "attribute") {
node.setAttribute(prop, value);
} else node[info.alias] = value;
} else if (isSVG) {
if ((info = SVGAttributes[prop])) {
if (info.alias) node.setAttribute(info.alias, value);
else node.setAttribute(prop, value);
} else
function spreadExpression(node, props, prevProps = {}, isSVG) {
let info;
for (const prop in props) {
const value = props[prop];
if (value === prevProps[prop]) continue;
if (prop === 'style') {
Object.assign(node.style, value);
} else if (prop === 'classList') {
classList(node, value);
// really only for forwarding from Components, can't forward normal ref
} else if (prop === 'ref' || prop === 'forwardRef') {
value(node);
} else if (prop.slice(0, 2) === 'on') {
const lc = prop.toLowerCase();
if (lc !== prop && !NonComposedEvents.has(lc.slice(2))) {
const name = lc.slice(2);
node[`__${name}`] = value;
delegateEvents([name]);
} else node[lc] = value;
} else if (prop === 'events') {
for (const eventName in value) node.addEventListener(eventName, value[eventName]);
} else if (prop === 'children') {
insertExpression(node, value, prevProps[prop]);
} else if (info = Attributes[prop]) {
if (info.type === 'attribute') {
node.setAttribute(prop, value);
} else node[info.alias] = value;
} else if (isSVG) {
if (info = SVGAttributes[prop]) {
if (info.alias) node.setAttribute(info.alias, value);
else node.setAttribute(prop, value);
wrap(() => {
for (const prop in props) {
if (prop === "children") continue;
const value = props[prop];
if (value === prevProps[prop]) continue;
if (prop === "style") {
Object.assign(node.style, value);
} else if (prop === "classList") {
classList(node, value, prevProps[prop]);
// really only for forwarding from Components, can't forward normal ref
} else if (prop === "ref" || prop === "forwardRef") {
value(node);
} else if (prop.slice(0, 2) === "on") {
const lc = prop.toLowerCase();
if (lc !== prop && !NonComposedEvents.has(lc.slice(2))) {
const name = lc.slice(2);
node[`__${name}`] = value;
delegateEvents([name]);
} else node[lc] = value;
} else if (prop === "events") {
for (const eventName in value)
node.addEventListener(eventName, value[eventName]);
} else if ((info = Attributes[prop])) {
if (info.type === "attribute") {
node.setAttribute(prop, value);
} else node[info.alias] = value;
} else if (isSVG) {
if ((info = SVGAttributes[prop])) {
if (info.alias) node.setAttribute(info.alias, value);
else node.setAttribute(prop, value);
} else
function spreadExpression(node, props, prevProps = {}, isSVG) {
let info;
for (const prop in props) {
const value = props[prop];
if (value === prevProps[prop]) continue;
if (prop === 'style') {
Object.assign(node.style, value);
} else if (prop === 'classList') {
classList(node, value);
// really only for forwarding from Components, can't forward normal ref
} else if (prop === 'ref' || prop === 'forwardRef') {
value(node);
} else if (prop.slice(0, 2) === 'on') {
const lc = prop.toLowerCase();
if (lc !== prop && !NonComposedEvents.has(lc.slice(2))) {
const name = lc.slice(2);
node[`__${name}`] = value;
delegateEvents([name]);
} else node[lc] = value;
} else if (prop === 'events') {
for (const eventName in value) node.addEventListener(eventName, value[eventName]);
} else if (prop === 'children') {
insertExpression(node, value, prevProps[prop]);
} else if (info = Attributes[prop]) {
if (info.type === 'attribute') {
node.setAttribute(prop, value);
} else node[info.alias] = value;
} else if (isSVG) {
if (info = SVGAttributes[prop]) {
if (info.alias) node.setAttribute(info.alias, value);
else node.setAttribute(prop, value);
results.exprs.unshift(
t.expressionStatement(
t.logicalExpression(
"&&",
value.expression,
t.callExpression(value.expression, [elem])
)
)
);
} else if (key.startsWith("on")) {
if (generate === "ssr") return;
const ev = toEventName(key);
if (
delegateEvents &&
key !== key.toLowerCase() &&
!NonComposedEvents.has(ev)
) {
const events =
path.scope.getProgramParent().data.events ||
(path.scope.getProgramParent().data.events = new Set());
events.add(ev);
results.exprs.unshift(
t.expressionStatement(
t.assignmentExpression(
"=",
t.memberExpression(
t.identifier(elem.name),
t.identifier(`__${ev}`)
),
value.expression
)
)