Skip to content

Instantly share code, notes, and snippets.

View kmoskwiak's full-sized avatar
🦄
woof!

Kasper Moskwiak kmoskwiak

🦄
woof!
View GitHub Profile
@kmoskwiak
kmoskwiak / app.js
Created July 14, 2018 21:36
Create HTML element
class MyCustomElement {
constructor(id) {
let html = this.getHtml(id);
let temporaryContainer = document.createElement('div');
temporaryContainer.innerHTML = html.trim();
this.element = temporaryContainer.firstChild;
}
getElement() {
return this.element;
@kmoskwiak
kmoskwiak / convert-html-to-mobiledoc.js
Last active September 30, 2019 11:10
Parse HTML into mobiledoc format. Just run `npm install` and `npm start`. Original code in issue: https://github.com/bustle/mobiledoc-kit/issues/631
//import refetchMediaCards from './refetch-media-cards' //refetch media cards is our logic for rehosting images and refetching embeds. Totally up to you what to do here
function refetchMediaCards(item) {
return Promise.resolve(item);
}
export async function convertHTMLToMobiledoc(post, domContext) {
try {
return domContext.evaluate(postObject => window.tzrPostContentToMobiledoc(postObject), post)
.then((bodies) => {
@kmoskwiak
kmoskwiak / database_async.js
Created September 6, 2018 00:14
Asynchroniczność
const FORCE_ERROR = false;
function countUsersInDatabase() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
if(FORCE_ERROR) {
return reject(new Error('database error'));
} else {
return resolve(44);
}
class Promyse {
constructor(userFunction) {
this.state = 'pending';
this.thenCallback = null;
this.errorCallback = null;
userFunction(this._resolve.bind(this), this._reject.bind(this));
}
_resolve(data) {
import React, { useEffect, useState } from "react";
const App = () => {
cosnt [article, setArticle] = useState({});
useEffect(() => {
fetch('https://api.example.com')
.then(res => res.json())
.then(data => setArticle(data));
});
const CHUNK_SIZE = 10000000; // 10MB
const data = fs.readFileSync('./file');
for(let bytesRead = 0; bytesRead < data.length; bytesRead = bytesRead + CHUNK_SIZE) {
// do something with data
}
const CHUNK_SIZE = 10000000; // 10MB
async function start() {
const stream = fs.createReadStream('./file', { highWaterMark: CHUNK_SIZE });
for await(const data of stream) {
// do something with data
}
}
start();
@kmoskwiak
kmoskwiak / grafana.yml
Last active December 10, 2020 08:52
Grafana minikube #minikube
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana-deployment
spec:
selector:
matchLabels:
run: grafana
replicas: 1
template:
@kmoskwiak
kmoskwiak / read.js
Created December 23, 2020 17:04
read with shared buffer
function readBytes(fd, sharedBuffer) {
return new Promise((resolve, reject) => {
fs.read(
fd,
sharedBuffer,
0,
sharedBuffer.length,
null,
(err) => {
if(err) { return reject(err); }
@kmoskwiak
kmoskwiak / read.js
Last active December 23, 2020 17:06
generateChunks
async function* generateChunks(filePath, size) {
const sharedBuffer = Buffer.alloc(size);
const stats = fs.statSync(filePath); // file details
const fd = fs.openSync(filePath); // file descriptor
let bytesRead = 0; // how many bytes were read
let end = size;
for(let i = 0; i < Math.ceil(stats.size / size); i++) {
await readBytes(fd, sharedBuffer);
bytesRead = (i + 1) * size;