Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
ember-cli-hot-loader
Advanced tools
An early look at what hot reloading might look like in the ember ecosystem
ember install ember-cli-hot-loader
During installation Ember CLI will prompt you to update the resolver code. This is required for ember-cli-hot-loader to work. If you have never modified the resolver, you can simply accept the changes or do a diff and update it manually. The final code should look something like:
import Resolver from 'ember-resolver';
import HotReloadMixin from 'ember-cli-hot-loader/mixins/hot-reload-resolver';
export default Resolver.extend(HotReloadMixin);
After installing it, simply run ember serve
as usual, any changes you do to supported types, will result in a hotreload (no brower refresh).
Any additional changes will result in a regular liveReload.
An example application that hot reloads styles/components/reducers
https://github.com/toranb/ember-hot-reload-demo
//my-app/config/environment.js
ENV['ember-cli-hot-loader'] = {
supportedTypes: ['components', 'reducers']
}
Next write a service that will respond to the events willLiveReload
and willHotReload
import { get } from '@ember/object';
import { combineReducers } from 'redux';
import Evented from '@ember/object/evented';
import Service, { inject as service } from '@ember/service';
import { getOwner } from '@ember/application';
const getReducerModule = function(modulePath, modulePrefix) {
const fileNamePattern = new RegExp('(.*)/app/reducers/(.*)');
const match = fileNamePattern.exec(modulePath);
if (match && match.length === 3) {
const reducer = match[2].replace('.js', '');
return `${modulePrefix}/reducers/${reducer}`;
}
};
export default Service.extend(Evented, {
redux: service(),
init () {
this._super(...arguments);
this.on('willLiveReload', this, 'confirmLiveReload');
this.on('willHotReload', this, 'attemptLiveReload');
const factory = getOwner(this).factoryFor('config:environment');
this.modulePrefix = factory.class.modulePrefix;
},
confirmLiveReload(event) {
const module = getReducerModule(event.modulePath, this.modulePrefix);
if (module) {
event.cancel = true;
window.requirejs.unsee(module);
}
},
attemptLiveReload(modulePath) {
const module = getReducerModule(modulePath, this.modulePrefix);
if (module) {
const redux = get(this, 'redux');
const hotReloadedReducer = window.require(module);
redux.replaceReducer(combineReducers({
todos: hotReloadedReducer['default']
}));
}
}
});
FAQs
The default blueprint for ember-cli addons.
The npm package ember-cli-hot-loader receives a total of 8 weekly downloads. As such, ember-cli-hot-loader popularity was classified as not popular.
We found that ember-cli-hot-loader demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.