
Security News
PodRocket Podcast: Inside the Recent npm Supply Chain Attacks
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
cherow-dummy-plugin
Advanced tools
This is just a demo repo to show how a plugin can be developed and integrated with Cherow parser.
import { parseScript } from 'cherow';
import { dummy } from 'cherow-dummy-plugin';
// Parse with the new plugin enabled
parseScript('1', {
plugins: [
dummy(123); // '123' will be the value on the literal node
]
});
Start a new node with this.getLocations()
and finish it with this.finishNode()
as shown in this example:
const pos = this.getLocations();
return this.finishNode(pos, {
type: 'dummy'
});
Note! The location tracking will not be enabled unless the options are set for it - { loc: true, ranges: true }
By default Cherow pass around context masks everywhere as a simple immutable bit set.
It's also possible to extend this with your own set of context masks.
export const Context = {
None = 0,
Foo = 1 << 0,
Bar = 1 << 1,
}
export default function(value) {
return (parser) => {
parser.dummy(context | Context.Foo) {
// do something with the context mask
};
};
}
Cherow also let you use mutable parser flags, in case any flags need passed by reference. For this you can create your
own bitmasks and hook them on the this.flags
.
export const Flags = {
None = 0,
Literal = 1 << 0,
Identifier = 1 << 1,
}
export default function(value) {
return (parser) => {
// Set the mutable parser flag
parser.flags |= Flags.Identifier;
parser.dummy(context) {
// If the mutable parser flag is the 'Literal' mask, Cherow will return
// a literal AST node. Else it return a identifier AST node
if (this.flags & Flags.Literal) return this.parseLiteral(context);
return this.parseIdentifier(context);
};
};
};
parse(context) {}
- the main parser functionparseLiteral(context) {}
- parses a literal nodeparseIdentifier(context) {}
- parses a identifier nodeFor others, please see the Cherow
source code
FAQs
Cherow dummy plugin
We found that cherow-dummy-plugin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
Product
Socket Firewall is a free tool that blocks malicious packages at install time, giving developers proactive protection against rising supply chain attacks.