Open incrop opened 8 years ago
Trying to build deps for simplest bemdecl (using enb-bem-techs 2.2.1):
exports.blocks = [{"name": "a"}];
({ mustDeps: [ {mods: {m: 'v'}}, {elem: 'e', mods: {m: 'v'}}, {block: 'b', elems: {elem: 'e', mods: {m: 'v'}}} ] });
exports.deps = [ {"block": "a", "mod": "m"}, {"block": "a", "mod": "m", "val": "v"}, {"block": "a", "elem": "e"}, {"block": "a", "elem": "e", "mod": "m"}, {"block": "a", "elem": "e", "mod": "m", "val": "v"}, {"block": "b"}, {"block": "b", "elem": "e"}, {"block": "b", "elem": "e", "mod": "m"}, {"block": "b", "elem": "e", "mod": "m", "val": "v"}, {"block": "a"} ];
exports.deps = [ {"block": "a", "elem": "e"}, {"block": "a", "elem": "e", "mod": "m"}, {"block": "b"}, {"block": "b", "elem": "e"}, {"block": "b", "elem": "e", "mod": "m"}, {"block": "a", "elem": "e", "mod": "m", "val": "v"}, {"block": "b", "elem": "e", "mod": "m", "val": "v"}, {"block": "a", "mod": "m"}, {"block": "a", "mod": "m", "val": "v"}, {"block": "a"} ];
All seems good.
({ mustDeps: [ {mod: 'm', val: 'v'}, {elem: 'e', mod: 'm', val: 'v'}, {block: 'b', mod: 'm', val: 'v', elems: {elem: 'e', mod: 'm', val: 'v'}} // watch for elemMod here ] });
exports.deps = [ {"block": "a", "mod": "m", "val": "v"}, {"block": "a", "elem": "e", "mod": "m", "val": "v"}, {"block": "b", "mod": "m", "val": "v"}, {"block": "b", "elem": "e", "mod": "m", "val": "v"}, // still here for deps-old {"block": "a"} ];
exports.deps = [ {"block": "a", "elem": "e"}, {"block": "a", "elem": "e", "mod": "m"}, {"block": "b"}, {"block": "b", "elem": "e"}, // but not for deps {"block": "a", "elem": "e", "mod": "m", "val": "v"}, {"block": "b", "mod": "m"}, {"block": "b", "mod": "m", "val": "v"}, {"block": "a", "mod": "m"}, {"block": "a", "mod": "m", "val": "v"}, {"block": "a"} ];
(Extra mod-without-val entities are expected for deps tech because of implicit mustDeps *_mod_val → *_mod → *)
*_mod_val
*_mod
*
deps tech treats {elem, mod, val} as just {elem} inside elems. This is clearly a bug, since all other forms expand correctly.
{elem, mod, val}
{elem}
elems
By the way, {block: 'b', elem: {elem: 'e', mod: 'm', val: 'v'}} is not handled by both techs. Is it right behavior?
{block: 'b', elem: {elem: 'e', mod: 'm', val: 'v'}}
Trying to build deps for simplest bemdecl (using enb-bem-techs 2.2.1):
Scenario 1
a.deps.js
deps-old tech
deps tech
All seems good.
Scenario 2
a.deps.js
deps-old tech
deps tech
(Extra mod-without-val entities are expected for deps tech because of implicit mustDeps
*_mod_val
→*_mod
→*
)Issue
deps tech treats
{elem, mod, val}
as just{elem}
insideelems
. This is clearly a bug, since all other forms expand correctly.By the way,
{block: 'b', elem: {elem: 'e', mod: 'm', val: 'v'}}
is not handled by both techs. Is it right behavior?