Skip to content

Instantly share code, notes, and snippets.


Satyajit Sahoo satya164

Block or report user

Report or block satya164

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
satya164 / class-properties-to-methods.js
Created Jan 8, 2016
Codemod to convert class methods to properties, and remove `.bind(this)` in JSX props
View class-properties-to-methods.js
// Codemod to convert class methods to properties, and remove `.bind(this)` in JSX props.
// Doesn't support Flow annotations yet
export default function(file, api) {
const j = api.jscodeshift;
const convertToClassProps = p => {
const node = p.node;
if ('_') === 0) {
node.type = 'ClassProperty';
satya164 / tslint.json
Created Dec 20, 2018
My TSLint config
View tslint.json
"extends": ["tslint:recommended", "tslint-config-prettier"],
"rulesDirectory": ["tslint-plugin-prettier", "tslint-microsoft-contrib"],
"rules": {
"prettier": true,
"deprecation": true,
"interface-over-type-literal": false,
"member-access": [true, "no-public"],
"no-default-export": false,
View babel-codemod-aphrodite-to-styled-components.js
const dashify = text => text.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
const unitless = {
animationIterationCount: true,
borderImageOutset: true,
borderImageSlice: true,
borderImageWidth: true,
boxFlex: true,
boxFlexGroup: true,
boxOrdinalGroup: true,
columnCount: true,
satya164 / quantity-query.scss
Last active Jul 26, 2017
Quantity Queries in Sass
View quantity-query.scss
@mixin quantity-query($selector, $type, $amount, $max: null) {
@if $type == at-least {
#{$selector}:nth-last-child(n+#{$amount}) ~ #{$selector} { @content; }
} @else if $type == at-most {
#{$selector}:nth-last-child(-n+#{$amount}):first-child ~ #{$selector} { @content; }
} @else if $type == between {
@if type-of($max) != "number" {
@error "Max value must be a number for quantity-query.";
satya164 / sbc-api-react.sublime-settings
Last active Jun 4, 2017
Sublime Text auto-completions for ReactJS
View sbc-api-react.sublime-settings
// Usage:
// Go to `Sublime Text > Browse Packages`
// Place the file under `User` directory
// Enable the `react` in `sb-setting.sublime-settings` (refer <>)
"scope": "source.js",

JavaScript Style Library Wishlist

  • Familiar CSS syntax: Using CSS syntax makes it easier to copy/paste code from devtools and the internet, and a huge productivity boost.
  • SCSS like & shorhand: Super nice to write things like &:hover without having to write selectors again.
  • Nesting media queries: Nice to nest media queries inside a style block instead of having to declare it like plain CSS.
  • Support for CSS animations: CSS animations are great :)
  • No coupling to HTML tag: HTML tags have semantic meaning, and coupling styles to HTML tags makes it harder to re-use the same styles, for example, sometimes some of my buttons and links have similar styles and I don't wanna repeat them.
  • Easy to override styles: Overriding styles is one of the main pain points. Many libs don't do anything special and just produce different class names for the styles I declare. Due to no class name having higher specificity, the styles depend on the declaration order which can produce inconsistent
View findModuleDependencies.js
/* @flow */
import types from 'ast-types';
import { parse } from 'babylon';
const config = {
"sourceType": "module",
"plugins": [
View CollapsingHeaderScrollView.js
/* @flow */
import React, { PureComponent, PropTypes } from 'react';
import {
} from 'react-native';
satya164 /
Last active Dec 2, 2016
react-native-fbsdk in React Native 0.29.+
public class MainActivity extends ReactActivity {
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
protected String getMainComponentName() {
return "MyApp";
View lace.js
"use strict";
function Lace(selector) {
var nodes, el;
// Handle situation where called without "new" keyword
if (false === (this instanceof Lace)) {
return new Lace(selector);
You can’t perform that action at this time.