repl-pad demo

Demonstrates taking some static HTML and decorating with repl-pad 'edit' links.

Click one of these edit links to see repl-pad in action.

Example 1 - Simple

const x = 1;
x;
  

Example 2 - Loops and timeout

Math.random();
const x = Math.random();
for (let i=0;i<10;i++) {
  i;
}

const fn = (x) => x * 2;

setTimeout(() => {
  console.log(`result: ${fn(10)}`);
}, 5000);

Example 3 - Import

import {Normalise} from 'https://unpkg.com/ixfx/dist/temporal.js';

// Initialise a streaming normaliser
const n = Normalise.stream();

// Yields 1, because 5 is the highest seen
n(5);

// Yields 1, because now 10 is the highest seen
n(10);

// Yields 0, because it's so far the lowest seen
n(5);

// Yields 0.5, becaause it's in the middle of the range seen thus far
n(7.5);

// Yields 1, because now it's the largest seen
n(11);
  

Example 4 - Fault tolerance

let x = 0;
const fn = () => x++;
fn();
some-error
fn();
fn();
  

Example 5 - Async

import { interval } from "https://unpkg.com/ixfx/dist/flow.js"
console.log(`Before`);
let loops = 0;
const randomGenerator = interval(() => Math.random(), 1000);
for await (const r of randomGenerator) {
  // Prints a new random number every second
  console.log(r);
  if (++loops > 10) break;
}
console.log(`After`); 
  

Example 6 - Alt import

import * as Generators from "https://unpkg.com/ixfx/dist/generators.js"

// Yields the array: [0,1,2,3,4]
const a = [...Generators.count(5)];

for (let i of Generators.count(5)) {
  // Loop runs five times, with i being 0, 1, 2, 3 and then 4
  console.log(i);
}
  

Example 7 - Loop

import {shuffle} from 'https://unpkg.com/ixfx/dist/arrays.js';
const a = [`apples`, `oranges`, `melons`, `bananas`];
// Yields a randomly ordered version, eg: [`melons`,`apples`,`bananas`,`oranges`];
const b = shuffle(a);

const items = [1,2,3,4,5,6,7,8,9,10];
for (const i of shuffle(items)) {
  console.log(i);
}