Skip to content

Instantly share code, notes, and snippets.

View loopmode's full-sized avatar

Jovica Aleksic loopmode

  • ETECTURE
  • Fulda, Frankfurt
View GitHub Profile
// ----
// libsass (v3.5.4)
// ----
@mixin spacing-helpers(
$style,
$sizes: (0, 5, 10, 15, 20, 25, 30, 50),
$positions: ('', 'top', 'left', 'bottom', 'right')
) {
@each $size in $sizes {
@loopmode
loopmode / dockerized-shell.bashrc
Last active November 8, 2022 08:22
dockerized ubuntu shell
dockerized-ubuntu() { dockerized ubuntu ubuntu:latest /bin/bash bash }
dockerized-curl() { dockerized curl pstauffer/curl:latest /bin/sh sh }
# based on https://stackoverflow.com/a/56690087/368254
dockerized()
{
name=$1
image=$2
containercmd=$3
runcmd=$4
@loopmode
loopmode / getGitlabSecrets.console.js
Last active August 21, 2019 12:09
printing Gitlab CI/CD variables as key/value pairs.
(function getGitlabSecrets() {
const secrets = [
...document.querySelectorAll('.ci-variable-row-body'),
].reduce((result, row) => {
const key = row.querySelector(
'[name="variables[variables_attributes][][key]"]',
).value;
const value = row.querySelector(
'[name="variables[variables_attributes][][secret_value]"]',
).value;
@loopmode
loopmode / renameObjKeys.js
Last active August 6, 2019 06:43
A JS function for renaming properties of an object while maintaining the original iteration order
export function renameObjKeys(obj, mapping) {
// based on https://stackoverflow.com/a/48110891/368254
const renameObjKey = (obj, { oldKey, newKey }) => {
const keys = Object.keys(obj);
const newObj = keys.reduce((acc, val) => {
if (val === oldKey) {
acc[newKey] = obj[oldKey];
} else {
acc[val] = obj[val];
}
@loopmode
loopmode / get-dev-dependencies.js
Last active November 11, 2019 06:45
Node.js function to get the names of all devDependencies in a yarn or lerna workspace
module.exports = async function getDevDependencies(globs = ['package.json', 'packages/*/*.json']) {
const globby = require('globby');
const packageFiles = await globby(globs, { absolute: true });
return packageFiles.reduce((result, file) => {
const pkg = require(file);
if (pkg.devDependencies) {
const names = Object.keys(pkg.devDependencies);
return result.concat(names.filter(name => !result.includes(name)));
}
@loopmode
loopmode / windows-kill.bashrc
Last active November 8, 2022 08:23
"kill" function for git bash on windows
kill() {
local name="${1}"
if [ -z "$name" ];
then
echo ">> Enter a process name and press [ENTER] (partial matching)"
read name
fi
wmic process where "name like '%$name%'" delete
}
@loopmode
loopmode / orient-passport-adapter.js
Last active November 8, 2022 08:25
node+express+orientjs+passport+redis
// orientdb/adapter.js
import connect from './connect';
import autobind from 'autobind-decorator';
import applySchema from './applySchema';
import createBaseData from './createBaseData';
const EventEmitter = require('events');
import * as spauth from 'node-sp-auth';
import getBaseUrl from '../utils/getBaseUrl';
export const AuthMethod = {
NONE: 'NONE',
NTLM: 'NTLM',
BASIC: 'BASIC'
};
@loopmode
loopmode / README.md
Created June 27, 2018 08:51
monkey-patching jscodeshift for decorators support

Execute scripts/patch/patch-jscodeshift.js. It will monkey-patch node_modules/jscodeshift/parser/babel5compat.js by prepending 'decorators-legacy' to the plugins array.

@loopmode
loopmode / DefaultComponent.js
Last active July 9, 2020 08:34
Safeguarding async chains in React
// we have an async "initialize" method that performs several calls consecutively.
// after each step in the async chain, we might have been unmounted already
// and performing any further calls becomes obsolete
class DefaultComponent extends React.Component {
// ...
componentDidMount() {
this._isMounted = true;
this.initialize();
}
componentWillUnmount() {