Skip to content

Commit

Permalink
refactor(parse): replaces lodash.assign with modern native variants (#60
Browse files Browse the repository at this point in the history
)
  • Loading branch information
sverweij authored Jul 13, 2024
1 parent a78b9cc commit 5eac3fe
Show file tree
Hide file tree
Showing 15 changed files with 157 additions and 150 deletions.
1 change: 0 additions & 1 deletion config/.peggy-config.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"format": "umd",
"dependencies": {
"_assign": "lodash/assign",
"parserHelpers": "./parserHelpers"
}
}
2 changes: 1 addition & 1 deletion dist/bundle/index.min.js

Large diffs are not rendered by default.

24 changes: 14 additions & 10 deletions dist/cjs/parse/mscgenparser.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
// https://peggyjs.org/
(function(root, factory) {
if (typeof define === "function" && define.amd) {
define(["lodash/assign", "./parserHelpers"], factory);
define(["./parserHelpers"], factory);
} else if (typeof module === "object" && module.exports) {
module.exports = factory(require("lodash/assign"), require("./parserHelpers"));
module.exports = factory(require("./parserHelpers"));
}
})(this, function(_assign, parserHelpers) {
})(this, function(parserHelpers) {
"use strict";

function peg$subclass(child, parent) {
Expand Down Expand Up @@ -358,10 +358,10 @@ function peg$parse(input, options) {
declarations.entities = declarations.entities || [];
parserHelpers.checkForUndeclaredEntities(declarations.entities, declarations.arcs);

declarations = _assign ({meta: getMetaInfo()}, declarations);
declarations = {meta: getMetaInfo(), ...declarations};

if (pre.length > 0) {
declarations = _assign({precomment: pre}, declarations);
declarations = {precomment: pre, ...declarations};
}
return declarations;
};
Expand All @@ -382,7 +382,9 @@ function peg$parse(input, options) {
var peg$f3 = function(o) {return o};
var peg$f4 = function(options) {
// make the option array into an options object
return options[0].concat(options[1]).reduce(_assign, {})
return options[0]
.concat(options[1])
.reduce((pAll, pCurrent) => Object.assign(pAll, pCurrent), {});
};
var peg$f5 = function(name, value) {
return parserHelpers.nameValue2Option(name, value);
Expand All @@ -397,14 +399,14 @@ function peg$parse(input, options) {
};
var peg$f10 = function(name, a) {return a};
var peg$f11 = function(name, attrList) {
return _assign ({name:name}, attrList);
return {name:name, ...attrList};
};
var peg$f12 = function(name, a) {return a};
var peg$f13 = function(name, attrList) {
if (parserHelpers.isMscGenKeyword(name)){
error("Keywords aren't allowed as entity names (embed them in quotes if you need them)");
}
return _assign ({name:name}, attrList);
return {name:name, ...attrList};
};
var peg$f14 = function(a) {return a};
var peg$f15 = function(a) {return a};
Expand All @@ -417,7 +419,7 @@ function peg$parse(input, options) {
var peg$f20 = function(a) {return a};
var peg$f21 = function(a, al) {return al};
var peg$f22 = function(a, al) {
return _assign (a, al);
return {...a, ...al};
};
var peg$f23 = function(kind) {return {kind:kind}};
var peg$f24 = function(kind) {return {kind:kind}};
Expand All @@ -430,7 +432,9 @@ function peg$parse(input, options) {
var peg$f31 = function(a) {return a};
var peg$f32 = function(attributes) {
// transform the array of attributes into an object
return attributes[0].concat(attributes[1]).reduce(_assign, {});
return attributes[0]
.concat(attributes[1])
.reduce((pAll, pCurrent) => Object.assign(pAll, pCurrent), {});
};
var peg$f33 = function(name, value) {
var lAttribute = {};
Expand Down
22 changes: 12 additions & 10 deletions dist/cjs/parse/msgennyparser.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
// https://peggyjs.org/
(function(root, factory) {
if (typeof define === "function" && define.amd) {
define(["lodash/assign", "./parserHelpers"], factory);
define(["./parserHelpers"], factory);
} else if (typeof module === "object" && module.exports) {
module.exports = factory(require("lodash/assign"), require("./parserHelpers"));
module.exports = factory(require("./parserHelpers"));
}
})(this, function(_assign, parserHelpers) {
})(this, function(parserHelpers) {
"use strict";

function peg$subclass(child, parent) {
Expand Down Expand Up @@ -356,13 +356,13 @@ function peg$parse(input, options) {

var peg$f0 = function(pre, declarations) {
declarations.entities = extractUndeclaredEntities(declarations.entities || [], declarations.arcs);
declarations = _assign (
{meta: parserHelpers.getMetaInfo(declarations.options, declarations.arcs)},
declarations
);
declarations = {
meta: parserHelpers.getMetaInfo(declarations.options, declarations.arcs),
...declarations
};

if (pre.length > 0) {
declarations = _assign({precomment: pre}, declarations);
declarations = {precomment: pre, ...declarations};
}
return declarations;
};
Expand All @@ -383,7 +383,9 @@ function peg$parse(input, options) {
var peg$f3 = function(o) {return o};
var peg$f4 = function(options) {
// make the option array into an options object
return options[0].concat(options[1]).reduce(_assign, {});
return options[0]
.concat(options[1])
.reduce((pAll, pCurrent) => Object.assign(pAll, pCurrent), {});
};
var peg$f5 = function(name, value) {
return parserHelpers.nameValue2Option(name, value);
Expand Down Expand Up @@ -3041,7 +3043,7 @@ function peg$parse(input, options) {
// if the arc kind is arcspanning recurse into its arcs
if (pArc.arcs){
pEntityNamesToIgnore[pArc.to] = true;
_assign (pEntities, extractUndeclaredEntities (pEntities, pArc.arcs, pEntityNamesToIgnore));
Object.assign (pEntities, extractUndeclaredEntities (pEntities, pArc.arcs, pEntityNamesToIgnore));
delete pEntityNamesToIgnore[pArc.to];
}
if (entityNeedsExtracting (pEntities, pArc.to, pEntityNamesToIgnore)) {
Expand Down
34 changes: 15 additions & 19 deletions dist/cjs/parse/xuparser.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
// https://peggyjs.org/
(function(root, factory) {
if (typeof define === "function" && define.amd) {
define(["lodash/assign", "./parserHelpers"], factory);
define(["./parserHelpers"], factory);
} else if (typeof module === "object" && module.exports) {
module.exports = factory(require("lodash/assign"), require("./parserHelpers"));
module.exports = factory(require("./parserHelpers"));
}
})(this, function(_assign, parserHelpers) {
})(this, function(parserHelpers) {
"use strict";

function peg$subclass(child, parent) {
Expand Down Expand Up @@ -407,10 +407,10 @@ function peg$parse(input, options) {
declarations.entities = declarations.entities || [];
parserHelpers.checkForUndeclaredEntities(declarations.entities, declarations.arcs);

declarations = _assign ({meta: parserHelpers.getMetaInfo(declarations.options, declarations.arcs)}, declarations);
declarations = {meta: parserHelpers.getMetaInfo(declarations.options, declarations.arcs), ...declarations};

if (pre.length > 0) {
declarations = _assign({precomment: pre}, declarations);
declarations = {precomment: pre, ...declarations};
}

return declarations;
Expand All @@ -432,7 +432,9 @@ function peg$parse(input, options) {
var peg$f3 = function(o) {return o};
var peg$f4 = function(options) {
// make the option array into an options object
return options[0].concat(options[1]).reduce(_assign, {})
return options[0]
.concat(options[1])
.reduce((pAll, pCurrent) => Object.assign(pAll, pCurrent), {});
};
var peg$f5 = function(name, value) {
return parserHelpers.nameValue2Option(name, value);
Expand All @@ -459,14 +461,14 @@ function peg$parse(input, options) {
};
var peg$f14 = function(name, a) {return a};
var peg$f15 = function(name, attrList) {
return _assign ({name:name}, attrList);
return {name:name, ...attrList};
};
var peg$f16 = function(name, a) {return a};
var peg$f17 = function(name, attrList) {
if (parserHelpers.isMscGenKeyword(name)){
error("MscGen keywords aren't allowed as entity names (embed them in quotes if you need them)");
}
return _assign ({name:name}, attrList);
return {name:name, ...attrList};
};
var peg$f18 = function(a) {return a};
var peg$f19 = function(a) {return a};
Expand All @@ -479,7 +481,7 @@ function peg$parse(input, options) {
var peg$f24 = function(a) {return a};
var peg$f25 = function(a, al) {return al};
var peg$f26 = function(a, al) {
return _assign (a, al);
return {...a, ...al};
};
var peg$f27 = function(kind) {return {kind:kind}};
var peg$f28 = function(kind) {return {kind:kind}};
Expand All @@ -489,15 +491,7 @@ function peg$parse(input, options) {
var peg$f32 = function(from, kind) {return {kind:kind, from: from, to:"*"}};
var peg$f33 = function(from, kind, to, al) {return al};
var peg$f34 = function(from, kind, to, al, arclist) {
return _assign (
{
kind : kind,
from : from,
to : to,
arcs : arclist
},
al
);
return {kind: kind, from: from, to: to, arcs: arclist, ...al};
};
var peg$f35 = function(kind) {return kind.toLowerCase()};
var peg$f36 = function(kind) {
Expand All @@ -507,7 +501,9 @@ function peg$parse(input, options) {
var peg$f38 = function(a) {return a};
var peg$f39 = function(attributes) {
// transform the array of attributes into an object
return attributes[0].concat(attributes[1]).reduce(_assign, {});
return attributes[0]
.concat(attributes[1])
.reduce((pAll, pCurrent) => Object.assign(pAll, pCurrent), {});
};
var peg$f40 = function(name) {
return { activation: name.toLowerCase() === "activate"}
Expand Down
24 changes: 14 additions & 10 deletions dist/es2015/parse/mscgenparser.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
// https://peggyjs.org/
(function(root, factory) {
if (typeof define === "function" && define.amd) {
define(["lodash/assign", "./parserHelpers"], factory);
define(["./parserHelpers"], factory);
} else if (typeof module === "object" && module.exports) {
module.exports = factory(require("lodash/assign"), require("./parserHelpers"));
module.exports = factory(require("./parserHelpers"));
}
})(this, function(_assign, parserHelpers) {
})(this, function(parserHelpers) {
"use strict";

function peg$subclass(child, parent) {
Expand Down Expand Up @@ -358,10 +358,10 @@ function peg$parse(input, options) {
declarations.entities = declarations.entities || [];
parserHelpers.checkForUndeclaredEntities(declarations.entities, declarations.arcs);

declarations = _assign ({meta: getMetaInfo()}, declarations);
declarations = {meta: getMetaInfo(), ...declarations};

if (pre.length > 0) {
declarations = _assign({precomment: pre}, declarations);
declarations = {precomment: pre, ...declarations};
}
return declarations;
};
Expand All @@ -382,7 +382,9 @@ function peg$parse(input, options) {
var peg$f3 = function(o) {return o};
var peg$f4 = function(options) {
// make the option array into an options object
return options[0].concat(options[1]).reduce(_assign, {})
return options[0]
.concat(options[1])
.reduce((pAll, pCurrent) => Object.assign(pAll, pCurrent), {});
};
var peg$f5 = function(name, value) {
return parserHelpers.nameValue2Option(name, value);
Expand All @@ -397,14 +399,14 @@ function peg$parse(input, options) {
};
var peg$f10 = function(name, a) {return a};
var peg$f11 = function(name, attrList) {
return _assign ({name:name}, attrList);
return {name:name, ...attrList};
};
var peg$f12 = function(name, a) {return a};
var peg$f13 = function(name, attrList) {
if (parserHelpers.isMscGenKeyword(name)){
error("Keywords aren't allowed as entity names (embed them in quotes if you need them)");
}
return _assign ({name:name}, attrList);
return {name:name, ...attrList};
};
var peg$f14 = function(a) {return a};
var peg$f15 = function(a) {return a};
Expand All @@ -417,7 +419,7 @@ function peg$parse(input, options) {
var peg$f20 = function(a) {return a};
var peg$f21 = function(a, al) {return al};
var peg$f22 = function(a, al) {
return _assign (a, al);
return {...a, ...al};
};
var peg$f23 = function(kind) {return {kind:kind}};
var peg$f24 = function(kind) {return {kind:kind}};
Expand All @@ -430,7 +432,9 @@ function peg$parse(input, options) {
var peg$f31 = function(a) {return a};
var peg$f32 = function(attributes) {
// transform the array of attributes into an object
return attributes[0].concat(attributes[1]).reduce(_assign, {});
return attributes[0]
.concat(attributes[1])
.reduce((pAll, pCurrent) => Object.assign(pAll, pCurrent), {});
};
var peg$f33 = function(name, value) {
var lAttribute = {};
Expand Down
22 changes: 12 additions & 10 deletions dist/es2015/parse/msgennyparser.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
// https://peggyjs.org/
(function(root, factory) {
if (typeof define === "function" && define.amd) {
define(["lodash/assign", "./parserHelpers"], factory);
define(["./parserHelpers"], factory);
} else if (typeof module === "object" && module.exports) {
module.exports = factory(require("lodash/assign"), require("./parserHelpers"));
module.exports = factory(require("./parserHelpers"));
}
})(this, function(_assign, parserHelpers) {
})(this, function(parserHelpers) {
"use strict";

function peg$subclass(child, parent) {
Expand Down Expand Up @@ -356,13 +356,13 @@ function peg$parse(input, options) {

var peg$f0 = function(pre, declarations) {
declarations.entities = extractUndeclaredEntities(declarations.entities || [], declarations.arcs);
declarations = _assign (
{meta: parserHelpers.getMetaInfo(declarations.options, declarations.arcs)},
declarations
);
declarations = {
meta: parserHelpers.getMetaInfo(declarations.options, declarations.arcs),
...declarations
};

if (pre.length > 0) {
declarations = _assign({precomment: pre}, declarations);
declarations = {precomment: pre, ...declarations};
}
return declarations;
};
Expand All @@ -383,7 +383,9 @@ function peg$parse(input, options) {
var peg$f3 = function(o) {return o};
var peg$f4 = function(options) {
// make the option array into an options object
return options[0].concat(options[1]).reduce(_assign, {});
return options[0]
.concat(options[1])
.reduce((pAll, pCurrent) => Object.assign(pAll, pCurrent), {});
};
var peg$f5 = function(name, value) {
return parserHelpers.nameValue2Option(name, value);
Expand Down Expand Up @@ -3041,7 +3043,7 @@ function peg$parse(input, options) {
// if the arc kind is arcspanning recurse into its arcs
if (pArc.arcs){
pEntityNamesToIgnore[pArc.to] = true;
_assign (pEntities, extractUndeclaredEntities (pEntities, pArc.arcs, pEntityNamesToIgnore));
Object.assign (pEntities, extractUndeclaredEntities (pEntities, pArc.arcs, pEntityNamesToIgnore));
delete pEntityNamesToIgnore[pArc.to];
}
if (entityNeedsExtracting (pEntities, pArc.to, pEntityNamesToIgnore)) {
Expand Down
Loading

0 comments on commit 5eac3fe

Please sign in to comment.