Skip to content

Instantly share code, notes, and snippets.

View oleh-zaporozhets's full-sized avatar

Oleh Zaporozhets oleh-zaporozhets

View GitHub Profile
on(name, listener) {
if (!this._events[name]) {
this._events[name] = [];
}
this._events[name].push(listener);
}
removeListener(name, listenerToRemove) {
if (!this._events[name]) {
throw new Error(`Can't remove a listener. Event "${name}" doesn't exits.`);
}
const filterListeners = (listener) => listener !== listenerToRemove;
this._events[name] = this._events[name].filter(filterListeners);
}
constructor() {
this._events = {};
}
emit(name, data) {
if (!this._events[name]) {
throw new Error(`Can't emit an event. Event "${name}" doesn't exits.`);
}
const fireCallbacks = (callback) => {
callback(data);
};
this._events[name].forEach(fireCallbacks);
class MyEventEmitter {
constructor() {
this._events = {};
}
on(name, listener) {
if (!this._events[name]) {
this._events[name] = [];
}
class MyEventEmitter {}
const fs = require('fs');
const str = fs.readFileSync('./str.txt', 'utf8');
console.log('String length:', str.length);
console.log('---------');
function test() {
console.time('Split speed');
const fs = require('fs');
const str = fs.readFileSync('./str.txt', 'utf8');
console.log('String length:', str.length);
console.log('---------');
function test() {
console.time('Call speed');
const fs = require('fs');
const str = fs.readFileSync('./str.txt', 'utf8');
console.log('String length:', str.length);
console.log('---------');
function test() {
console.time('Loop speed');
@oleh-zaporozhets
oleh-zaporozhets / webpack.config.js
Created April 5, 2020 11:50
Webpack for aliases
const path = require('path');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
module.exports = {
mode: process.env.NODE_ENV,
devtool: 'none',
target: 'node',
context: path.resolve(__dirname, 'src'),
entry: 'index.ts',
output: {