Hello, I'm Stanko, a software engineer in Belgrade. If you are looking for frontend development stuff, you might be at the right place.

Latest post

Marvin v1.0

Marvin just got better!

Few days ago I’ve released version 1.0 of my Also known as Marvin There are some big changes, and I’m pretty happy with it’s current state. At least 20 applications were shipped using Marvin. It has about seven hundred stars on GitHub with quite a few community contributions.

Read more

My programming story

This was intended to be a single paragraph in the post I’m still writing. It ended up much longer so I decided to publish it on it’s own. So without further due, I present you my programming story.

Read more

Consume less, create more

That’s my new year’s resolution. Code, write, play and craft more!

Get scrollbar width in JavaScript

Another onliner I love, that returns body scrollbar width. If scrollbar is not shown it will return zero (including mobile devices).

function getScrollbarWidth() {
  return window.innerWidth - document.documentElement.clientWidth;
}

Click on the button to try it yourself:

Browser support

Tested on:

  • Windows: IE9, IE10, IE11, Edge
  • MacOS: Safari, Firefox, Chrome, Opera
  • iOS: Safari, Chrome
  • Android: Chrome

Simple JavaScript API wrapper

2 Comments

For handling API calls I have a small snippet I’m copying from project to project. I decided to clean it up, make more generic and share it. It is intended to be a starting point, so you might want to customize it to your custom needs.

What it does?

It is a simple wrapper around If you need a polyfill isomorphic-fetch is a great one.

  • For successful requests it will parse the response and return it.
  • When It detects errors based on request’s HTTP status. it will throw a custom error with status code, error message and response (parsed if it is a JSON).
  • If request never gets resolved, same custom error will be thrown but response will be set to null and status code to REQUEST_FAILED.

Please note that function will return a Promise so you need to handle how it resolves.

Read more