Skip to content

Instantly share code, notes, and snippets.

View PaulRosset's full-sized avatar
😃
WIP

Paul Rosset PaulRosset

😃
WIP
View GitHub Profile
@PaulRosset
PaulRosset / ViewController.swift
Last active November 25, 2022 16:20
Spawning a IOS fullscreen Webview view
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate, WKScriptMessageHandler {
var webView: WKWebView!
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
print("Hello world")
}
@PaulRosset
PaulRosset / loadScript.js
Created October 6, 2022 15:02
Load a script in the page programatically in javascript.
function loadScript(src, { scriptId = '', insertBeforeAllTags = false } = {}) {
return new Promise((resolve, reject) => {
let script = document.createElement('script');
script.id = scriptId;
script.onload = resolve;
script.onerror = event => {
reject(new ExternalScriptError(event.target.src));
};
script.src = src;
const videoSegments = new WeakMap()
let options = { id: "1234", timeStart: 1653831957378, size: 10000 }
const segment = { data: new Uint8Array(200) }
videoSegments.set(options, segment)
console.warn(videoSegments.get(options)) // { data: new Uint8Array(200) }
options = null
console.warn(videoSegments.has(options)) // false, the `options` key object is deleted from the WeakMap
@PaulRosset
PaulRosset / catch-async-await.js
Created June 29, 2022 13:31
Catching throwing async/await promise with catch helper
const results = await getPosts().catch((err) => {
return {
type: "error",
message: err.message
}
});
console.warn(results) // { type: "error", message: "cannot get posts from this endpoint" }
@PaulRosset
PaulRosset / return-fn-value.js
Created June 29, 2022 13:31
Javascript checking returns value from function
const contacts = [
{ address: "20B Rue Lafayette", name: "work" },
{ address: "90B Rue laffite", name: "bar" }
];
const contact = contacts.find(contact => contact.name === "home")
console.warn(contact) // undefined
@PaulRosset
PaulRosset / reference-non-primitive.js
Created June 29, 2022 13:30
Javascript reference for non primitive value
const contactInfos = { address: "20B Rue Lafayette" };
function setAddress(infos) {
infos.address = "90B Rue laffite";
}
console.warn(contactInfos); // { address: "20B Rue Lafayette" }
setAddress(contactInfos);
console.warn(contactInfos); // { address: "90B Rue laffite" }
@PaulRosset
PaulRosset / and-operator.js
Created June 29, 2022 13:29
Javascript AND operator
console.warn(true && "1") // "1"
console.warn(false && "1") // false
@PaulRosset
PaulRosset / condition-add-property-object.js
Created June 29, 2022 13:28
Conditionally add a property to an object
const moreInfos = { info: "Please go to the desk." }
return {
address: "20B Rue Lafayette",
postcode: "75009",
...(moreInfos !== undefined && { moreInfos })
}
@PaulRosset
PaulRosset / coalescing-operator-example.js
Created June 29, 2022 13:28
Coalescing operator example
const contactInfos = { address: "20B Rue Lafayette", addressNumber: 0 };
console.warn(contactInfos.addressNumber || undefined) // undefined
console.warn(contactInfos.addressNumber ?? undefined) // 0
@PaulRosset
PaulRosset / coalescing-operator.js
Created June 29, 2022 13:27
Coalescing operator
const contactInfos = { address: "20B Rue Lafayette" };
console.warn(contactInfos.user?.phoneNumber ?? "")
// ""