Skip to content

Instantly share code, notes, and snippets.

View Karan-Palan's full-sized avatar

KaranPalan Karan-Palan

View GitHub Profile
@Karan-Palan
Karan-Palan / Promises.js
Created December 22, 2023 05:46
Callbacks and Promises
// Callbacks
function square(n) {
return n * n;
}
function cube(n) {
return n * n * n;
}
@Karan-Palan
Karan-Palan / PromiseAll.js
Created December 22, 2023 05:48
Promise.all (PromiseAPIs)
// Promise.all
const p1 = new Promise((resolve, reject) => {
setTimeout(() => resolve("P1 Sucess"), 3000);
});
const p2 = new Promise((resolve, reject) => {
//setTimeout(() => resolve("P2 Sucess"), 1000);
setTimeout(() => reject("P2 failure"), 1000);
});
@Karan-Palan
Karan-Palan / PromiseAllSettled.js
Last active December 22, 2023 05:53
Promise.allSettled(PromiseAPIs)
// Promise.all Settled
const p1 = new Promise((resolve, reject) => {
setTimeout(() => resolve("P1 Sucess"), 3000);
});
const p2 = new Promise((resolve, reject) => {
//setTimeout(() => resolve("P2 Sucess"), 1000);
setTimeout(() => reject("P2 failure"), 1000);
});
@Karan-Palan
Karan-Palan / PromiseAny.js
Created December 22, 2023 06:02
Promise.any(PromiseAPIs)
// Promise.any
const p1 = new Promise((resolve, reject) => {
setTimeout(() => reject("P1 failure"), 3000);
});
const p2 = new Promise((resolve, reject) => {
setTimeout(() => resolve("P2 Sucess"), 5000);
});
@Karan-Palan
Karan-Palan / AsyncAwait.js
Created December 22, 2023 11:54
AsyncAwait
// Real world usecase of Async await
const API_URL = "https://api.github.com/users/Karan-Palan"
async function handlePromise() {
const data = await fetch(API_URL);
const jsonValue = await data.json()
@Karan-Palan
Karan-Palan / BuilderWrapper.ts
Created March 15, 2024 12:54
Example code for Wrapper component in Music blocks v4
import React, { useState, useEffect } from 'react';
import ProjectBuilder from 'musicblocks-v4-builder-framework';
interface BuilderWrapperProps {}
const BuilderWrapper: React.FC<BuilderWrapperProps> = (props) => {
const [builderInstance, setBuilderInstance] = useState<ProjectBuilder | null>(null);
useEffect(() => {
// Initialize the Project Builder instance
@Karan-Palan
Karan-Palan / App.ts
Created March 15, 2024 12:56
Integration of Project Builder in the main app for Music-Blocks example code
import React from 'react';
import BuilderWrapper from './BuilderWrapper';
const App: React.FC = () => {
return (
<div>
{/* Existing MusicBlocks Code */}
<BuilderWrapper />
</div>
);
@Karan-Palan
Karan-Palan / BuilderWrapper.ts
Created March 15, 2024 12:59
Example code for communication with programming framework of Music-blocks v-4
import React, { useState, useEffect } from 'react';
import ProjectBuilder from 'musicblocks-v4-builder-framework';
import { SpecificationAPI, SyntaxTreeAPI } from 'musicblocks-v4-programming-framework';
interface BuilderWrapperProps {}
const BuilderWrapper: React.FC<BuilderWrapperProps> = (props) => {
const [builderInstance, setBuilderInstance] = useState<ProjectBuilder | null>(null);
const [specificationAPI, setSpecificationAPI] = useState<SpecificationAPI | null>(null);
const [syntaxTreeAPI, setSyntaxTreeAPI] = useState<SyntaxTreeAPI | null>(null);
@Karan-Palan
Karan-Palan / Patette.ts
Created March 15, 2024 13:52
Example code for a palette in MB4
import React, { useState, useEffect } from 'react';
interface PaletteProps {
onItemClick: (item: any) => void;
}
const Palette: React.FC<PaletteProps> = (props) => {
const [items, setItems] = useState<any[]>([]);
useEffect(() => {
@Karan-Palan
Karan-Palan / SVGresizeExp.tsx
Last active April 1, 2024 09:57
SVG resize on collision detection basic example for Musicblocks
import React, { useState, useEffect } from 'react';
const Brick: React.FC<{ x: number; y: number; width: number; height: number }> = ({ x, y, width, height }) => {
return (
<rect x={x} y={y} width={width} height={height} fill="blue" />
);
};
const SVGResize: React.FC = () => {
const [brickSize, setBrickSize] = useState({ width: 100, height: 100 });