
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
g5-component
Advanced tools
Browserify Component Scaffold
Install the package and use it as a module
npm i g5-component
Or clone the repo and use it as a scaffold/boilerplate for your component
git clone https://github.com/MajorLeagueBaseball/g5-component.git && cd g5-component
Install dependencies, run the initial build, and start the development server
npm i && npm run build && npm run start-dev
Based on the provided linescore example
<section class="g5-component g5-component--linescore"></section>
let linescoreComponent = g5Component({
component: 'g5-component--linescore',
container: document.querySelector('.g5-component--linescore'),
css: 'g5-component--linescore-initiated',
interval: 15000,
path: '/src/data/linescore.json'
});
linescoreComponent.init();
A single shared options
Object
| Option | Type | Description | Default |
|---|---|---|---|
component | String | component name/class | '' |
container | Element | primary container | '' |
css | String | classes to add after instantiation | g5-component |
i18n | String | localization | en |
interval | Number | polling interval | 40000 |
path | String | data path to fetch (remote or local) | '' |
enableFetch | Boolean | flag to enable/disable initial data fetch | true |
enablePolling | Boolean | flag to enable/disable data polling | true |
extendListeners | Function | callback executed after all event listeners have been added | undefined |
Simple set of core methods
linescoreComponent.init(); // initiates component
linescoreComponent.hasInstance(); // checks if container has an instance of g5-component
linescoreComponent.detachEvents(); // detaches all events
linescoreComponent.attachEvents(); // attaches all events
linescoreComponent.destroy(); // kills component instance, cleans everything out to prevent memory leaks
Events must be attached before the component is instantiated
linescoreComponent.on('ready', (obj) => {
// console.log('component model and viewModel have been initiated', obj);
});
linescoreComponent.on('data', (data) => {
// console.log('component data from model', data);
});
linescoreComponent.on('data-error', (err) => {
// console.log('component model data error', err);
});
linescoreComponent.on('destroy', (obj) => {
// console.log('component instance killed', obj);
});
linescoreComponent.on('start', () => {
// console.log('component start fetch');
});
linescoreComponent.on('stop', () => {
// console.log('component stop fetch');
});
Events must be triggered after the component is instantiated
//
// Used with the `enableFetch` option (which toggles the initial data fetch), this
// event allows direct passing of a data Object via an event
//
linescoreComponent.emit('synthetic-data', data);
//
// stops data polling on component
// event is ignored if data polling is already stopped
//
linescoreComponent.emit('stop');
//
// resumes data polling on component
// event is ignored if already polling data
//
linescoreComponent.emit('start');
Server running on http://localhost:9966 with automatic split builds (vendor dependencies are built separately for faster build times) [Ctrl+C] to kill server
npm run start-dev
Server running on http://localhost:9966 with full build [Ctrl+C] to kill server
npm run start
Builds JS, CSS, and compresses images
npm run build
runs test directory through the babel-tape-runner
npm test
lint via JSHint, options set in .jshintrc
npm run lint
compresses all images in src/images/ and outputs to src/images/build
npm run compress-images
![]() | ![]() | ![]() | ![]() | ![]() |
|---|---|---|---|---|
| ✔ | ✔ | 10+ ✔ | ✔ | 6.1+ ✔ |
______
_\ _~-\___
= = ==(____G5____D
\_____\___________________,-~~~~~~~`-.._
/ o O o o o o O O o o o o o o O o |\_
`~-.__ ___..----.. )
`---~~\___________/------------`````
= ===(_________D
FAQs
Browserify Component Scaffold
We found that g5-component 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.