Skip to content

Instantly share code, notes, and snippets.

View timneutkens's full-sized avatar
👋

Tim Neutkens timneutkens

👋
View GitHub Profile
@timneutkens
timneutkens / gist:1c18c1add7151a3b3821bba6e4298bfe
Last active March 18, 2024 13:07
Turbopack rules that output TypeScript
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
experimental: {
turbo: {
rules: {
'./pages/**/*.tsx': {
loaders: [require.resolve('./test-file-loader.js')],
as: '*.tsx'
@timneutkens
timneutkens / gist:252011d8f6fbd141c77157f796a806dd
Created March 18, 2024 13:01
Turbopack rules that output TypeScript
turbo: {
rules: {
'*.mdx': {
loaders: ['turbopack-mdx-loader'],
as: '*.tsx',
},
},
},
@timneutkens
timneutkens / index.js
Last active March 4, 2024 14:01
Clear console/terminal in node.js the right way
const readline = require('readline')
const blank = '\n'.repeat(process.stdout.rows)
console.log(blank)
readline.cursorTo(process.stdout, 0, 0)
readline.clearScreenDown(process.stdout)
@timneutkens
timneutkens / fpdf-image.php
Created April 14, 2016 14:36
Insert base64 image data into fpdf
<?php
// load the 'fpdf' extension
require('fpdf.php');
// just for demonstration purpose, the OP gets the content from a database instead
$h_img = fopen('img.jpg', "rb");
$img = fread($h_img, filesize('img.jpg'));
fclose($h_img);
// prepare a base64 encoded "data url"
@timneutkens
timneutkens / route.js
Created February 17, 2023 08:39
Streaming example
// https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream#convert_async_iterator_to_stream
function iteratorToStream(iterator: any) {
return new ReadableStream({
async pull(controller) {
const { value, done } = await iterator.next()
if (done) {
controller.close()
} else {
controller.enqueue(value)
@timneutkens
timneutkens / jquery-ui-accordion-opened-tab-scroll.js
Created July 19, 2016 10:26
jQuery UI accordion scroll to clicked tab
function scrollTo(element) {
jQuery('html, body').animate({
scrollTop: jQuery(element).offset().top
}, 500);
}
jQuery('.accordion').on('accordionactivate', function( event, ui ) {
scrollTo(jQuery(event.target).find('.ui-accordion-header-active'))
});
@timneutkens
timneutkens / bootstrap-popover-hover.js
Last active June 2, 2021 13:24
Keep Bootstrap popover open when the popover itself is being hovered
jQuery('[data-toggle="popover-hover"]').popover({
trigger: 'manual',
html: true,
animation:false,
viewport: '.container'
}).on('mouseenter', function () {
var self = this;
jQuery(this).popover("show");
jQuery(".popover").on('mouseleave', function () {
jQuery(self).popover('hide');
@timneutkens
timneutkens / README.md
Last active April 15, 2021 12:10
Magento2 | Execute data-mage-init and x-magento-init in dynamic content (ajax request)

Execute data-mage-init and x-magento-init in dynamic content (ajax response)

Trigger .trigger('contentUpdated') on the element where dynamic content is injected.

$.ajax({
    url: 'https://www.example.com',
    method: 'POST',
    data: {
 id: '1'
@timneutkens
timneutkens / index.js
Created November 25, 2016 11:37
Save PDF using javascript (isomorphic-fetch and file-saver)
import fetch from 'isomorphic-fetch'
import { saveAs } from 'file-saver'
fetch('/url/with/pdf', {
headers: {
'Content-Type': 'application/pdf'
},
responseType: 'blob'
}).then(response => response.blob())
.then(blob => saveAs(blob, 'test.pdf'))
@timneutkens
timneutkens / magento2-mage-template.md
Created September 23, 2016 14:16
Magento2 mage/template example

How to use mage/template in Magento2

define(['mage/template'], function (mageTemplate) {
  // mageTemplate is a wrapper around `_.template`. See http://underscorejs.org/#template
  var template = mageTemplate('<underscore.js template string>')
  var html = mageTemplate({ /* optional data object */ })
  document.getElementById('<id here'>).innerHTML = html
})