Skip to content

Instantly share code, notes, and snippets.

@culttm
culttm / .manifest
Created October 10, 2017 22:04
chrome extension using a content script to access the `window` object
{
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["inject.js"],
"all_frames": true
}
],
"web_accessible_resources": [
"content.js"
@culttm
culttm / axios.refresh_token.js
Created October 5, 2017 18:46
axios interceptors for refresh token
axios.interceptors.response.use(function (response) {
return response;
}, function (error) {
const originalRequest = error.config;
if (error.response.status === 401 && !originalRequest._retry) {
originalRequest._retry = true;
@culttm
culttm / manifest.json
Created September 17, 2017 19:13 — forked from greatghoul/manifest.json
Chrome Extension Sample - detect if an extension is installed.
{
"name": "Detect if an extension installed",
"description": "Detect if an extension installed",
"version": "0.1",
"manifest_version": 2,
"permissions": [
"management"
],
"browser_action": {
"default_popup": "popup.html"
@culttm
culttm / getRandomColor.js
Created September 17, 2017 10:50
getRandomColor
getRandomColor() {
let letters = '0123456789ABCDEF';
let color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
},
@culttm
culttm / interceptors.js
Created September 11, 2017 06:27 — forked from Rebolon/interceptors.js
#vuejs : vue-resource cache plugin with PouchDB
/**
* allow to cache response and/or to listen on newRequest event
*
* for cache system, it's freely adapted from https://github.com/pagekit/vue-resource/issues/252 @airtonix sample
*/
export class HttpInterceptors {
_cache
constructor (Vue, ttlInHours) {
@culttm
culttm / limitLoop.js
Created September 10, 2017 00:50
limitLoop
var limitLoop = function (fn, fps) {
// Use var then = Date.now(); if you
// don't care about targetting < IE9
var then = new Date().getTime();
// custom fps, otherwise fallback to 60
fps = fps || 60;
var interval = 1000 / fps;
let r = Vue.compile(res.data);
let vm = new Vue({
render: r.render
});
vm.$mount(this.$refs['t'])
UserSchema.method('toJSON', function() {
var user = this.toObject();
delete user.salt;
delete user.hash;
delete user.__v;
return user;
});
jQuery.extend(jQuery.validator.messages, {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
String.prototype.replaceAll = function(search, replacement) {
var target = this;
return target.replace(new RegExp(search, 'g'), replacement);
};