@riotjs/parser
Advanced tools
Comparing version 4.0.0-rc.1 to 4.0.0-rc.2
# Changes for riot-parser | ||
### v4.0.0-rc.2 | ||
- Fix: support spread attributes together with other attribute expressions on the same DOM node | ||
### v4.0.0-rc.1 | ||
- Fix https://github.com/riot/riot/issues/2679 | ||
@@ -6,0 +8,0 @@ - Add support for `<a {href}>` expression attributes shortcuts |
17
index.js
@@ -1007,3 +1007,3 @@ 'use strict'; | ||
const expressionsContentRe = memoize(brackets => RegExp(`(${brackets[0]}[^${brackets[1]}]*?${brackets[1]})`)); | ||
const expressionsContentRe = memoize(brackets => RegExp(`(${brackets[0]}[^${brackets[1]}]*?${brackets[1]})`, 'g')); | ||
const isSpreadAttribute = name => SPREAD_OPERATOR.test(name); | ||
@@ -1068,3 +1068,3 @@ const isAttributeExpression = (name, brackets) => name[0] === brackets[0]; | ||
const re = ATTR_START; // (\S[^>/=\s]*)(?:\s*=\s*([^>/])?)? g | ||
const start = re.lastIndex = pos; // first non-whitespace | ||
const start = re.lastIndex = expressionContent.lastIndex = pos; // first non-whitespace | ||
const attrMatches = re.exec(data); | ||
@@ -1173,11 +1173,10 @@ const isExpressionName = isAttributeExpression(attrMatches[1], state.options.brackets); | ||
if (isExpressionName) { | ||
if (isSpreadAttribute(attr.name)) { | ||
return parseSpreadAttribute(state, attr) | ||
} | ||
switch (true) { | ||
case isSpreadAttribute(attr.name): | ||
return parseSpreadAttribute(state, attr) | ||
case isExpressionName === true: | ||
return parseExpressionNameAttribute(state, attr) | ||
default: | ||
return parseNomalAttribute(state, attr, quote) | ||
} | ||
return parseNomalAttribute(state, attr, quote) | ||
} | ||
@@ -1184,0 +1183,0 @@ |
{ | ||
"name": "@riotjs/parser", | ||
"version": "4.0.0-rc.1", | ||
"version": "4.0.0-rc.2", | ||
"description": "The parser for Riot tags", | ||
@@ -53,3 +53,3 @@ "main": "./index.js", | ||
"eslint-config-riot": "^2.0.0", | ||
"mocha": "^6.0.2", | ||
"mocha": "^6.1.4", | ||
"nyc": "^13.3.0", | ||
@@ -56,0 +56,0 @@ "rollup": "^1.8.0", |
@@ -11,3 +11,3 @@ import {ATTR, TEXT} from '../node-types' | ||
const expressionsContentRe = memoize(brackets => RegExp(`(${brackets[0]}[^${brackets[1]}]*?${brackets[1]})`)) | ||
const expressionsContentRe = memoize(brackets => RegExp(`(${brackets[0]}[^${brackets[1]}]*?${brackets[1]})`, 'g')) | ||
const isSpreadAttribute = name => SPREAD_OPERATOR.test(name) | ||
@@ -72,3 +72,3 @@ const isAttributeExpression = (name, brackets) => name[0] === brackets[0] | ||
const re = ATTR_START // (\S[^>/=\s]*)(?:\s*=\s*([^>/])?)? g | ||
const start = re.lastIndex = pos // first non-whitespace | ||
const start = re.lastIndex = expressionContent.lastIndex = pos // first non-whitespace | ||
const attrMatches = re.exec(data) | ||
@@ -177,11 +177,10 @@ const isExpressionName = isAttributeExpression(attrMatches[1], state.options.brackets) | ||
if (isExpressionName) { | ||
if (isSpreadAttribute(attr.name)) { | ||
return parseSpreadAttribute(state, attr) | ||
} | ||
switch (true) { | ||
case isSpreadAttribute(attr.name): | ||
return parseSpreadAttribute(state, attr) | ||
case isExpressionName === true: | ||
return parseExpressionNameAttribute(state, attr) | ||
default: | ||
return parseNomalAttribute(state, attr, quote) | ||
} | ||
return parseNomalAttribute(state, attr, quote) | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
97851
2750