Skip to content

Instantly share code, notes, and snippets.

@olegpolyakov
olegpolyakov / with-firebase.jsx
Last active August 3, 2019 21:22
React Firebase HOC
import React, { Component } from 'react';
const firebase = window.firebase;
const config = {
apiKey: "",
authDomain: "",
databaseURL: "",
storageBucket: "",
messagingSenderId: ""
};
import { stringify } from "query-string";
export const HTTP_HEADER_TYPES = {
json: "application/json",
text: "application/text",
form: "application/x-www-form-urlencoded",
multipart: "multipart/form-data"
};
const status = response => {
@olegpolyakov
olegpolyakov / textarea.html
Created March 16, 2019 16:36
Tabbable textarea
<textarea onkeydown='if(event.keyCode===9){var v=this.value,s=this.selectionStart,e=this.selectionEnd;this.value=v.substring(0, s)+" "+v.substring(e);this.selectionStart=this.selectionEnd=s+4;return false;}'></textarea>
@olegpolyakov
olegpolyakov / www.js
Created February 1, 2019 10:25
Express middleware to ensure that there is no www in the url.
function noWww(req, res, next) {
if (req.hostname.match(/^www\./) !== null) {
res.redirect(301, req.protocol + '://' + req.hostname.replace(/^www\./, '') + req.originalUrl);
} else {
next();
}
}
@olegpolyakov
olegpolyakov / https.js
Created February 1, 2019 10:22
Express middleware to ensure HTTPS
function https(req, res, next) {
if (req.secure)
next();
else if (req.method === 'GET')
res.redirect(301, `https://${req.headers.host}${req.originalUrl}`);
else
res.status(403).send('Для доступа к сайту необходимо использовать защищенное соединение через HTTPS.');
}
@olegpolyakov
olegpolyakov / repl.js
Created December 19, 2018 14:49
Browser REPL
function(module, exports) {
var __styleE = document.getElementById("style");
(window.React = parent.React),
(window.ReactDOM = parent.ReactDOM),
(window.PropTypes = parent.PropTypes),
(window._ = parent._),
(window.axios = parent.axios),
(window.subscribeEmail = parent.subscribeEmail),
(window.__REACT_DEVTOOLS_GLOBAL_HOOK__ =
parent.__REACT_DEVTOOLS_GLOBAL_HOOK__),
@olegpolyakov
olegpolyakov / passport-local.js
Created December 17, 2018 22:54
Passport Local Strategies
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const options = {
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true
};
passport.use('register', new LocalStrategy(options, (req, email, password, done) => {
@olegpolyakov
olegpolyakov / passport-jwt.js
Last active December 17, 2018 22:52
Passport JWT Strategy
const JwtStrategy = require('passport-jwt').Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const User = require('../../shared/models/data').User;
const errorHandler = require('../../shared/utils').errorHandler;
const options = {
secretOrKey: cfg.jwtSecret,
jwtFromRequest: ExtractJwt.fromAuthHeader()
};
'use strict';
var subjects = ['программирование', 'веб-разработку', 'HTML', 'CSS', 'JavaScript', 'React', 'Angular', 'Node.js'];
var element = $('#hero .subject');
var subjectIndex = 0;
(function printSubjects() {
printSubject(subjects[subjectIndex])
.then(function() {
var timeout = setTimeout(function() {
'use strict';
var $choices = $('.choice');
var $total = $('.total .number');
$choices.on('click', function (event) {
var price = $(this).data('price');
$total.text(price);
changeNumber('.total .number');
});