Skip to content

Instantly share code, notes, and snippets.

View semeleven's full-sized avatar

Semen Levenson semeleven

View GitHub Profile
@semeleven
semeleven / readme.md
Created December 10, 2023 17:56
Выступления

ПК в HolyJS

  • 2018
    • Про Apollo и GraphQL (видео), Frontend Conf (Москва, 05 октября)
  • 2019
    • Про собеседования в стиле вредных советов, BeerJS Summit (Минск, 20 июля)
    • Про собеседования для лидов и разработчиков (видео), YaTalks (Екатеринбург, 14 сентября)
    • Про собеседования для HR (видео), IndexTech (Москва, 11 октября)
    • Про пагинацию (видео), HolyJS (Москва, 08 ноября)
  • 2020
@semeleven
semeleven / common.js
Last active May 31, 2024 10:03
Хелперы для плохометров
const fs = require("fs");
const path = require("path");
const util = require("util");
const { exec } = require("child_process");
const yargs = require("yargs/yargs");
const { hideBin } = require("yargs/helpers");
const execAsync = util.promisify(exec);
function commonYargs() {
const argv = yargs(hideBin(process.argv))
@semeleven
semeleven / mask.js
Last active June 15, 2018 21:38
Element ui email mask input vue directive
import { createTextMaskInputElement } from 'text-mask-core';
import emailMask from 'text-mask-addons/dist/emailMask';
function inputHandler(el) {
el.textMaskInputElement.update(el.value);
el.dispatchEvent(new Event('input'));
}
function setupTextMask(outEl) {
const el = outEl;
@semeleven
semeleven / ip.js
Created July 14, 2016 15:35
IP address mask directory angular
directive('ip', function () {
return {
require: 'ngModel',
link: function (scope, element, attr, ngModelCtrl) {
if(!ngModelCtrl) {
return;
}
ngModelCtrl.$parsers.push(function(val) {
if (angular.isUndefined(val)) {
var val = '';