Skip to content

Instantly share code, notes, and snippets.

View BrunoMiguens's full-sized avatar
🇵🇹

Bruno Miguens BrunoMiguens

🇵🇹
  • iOS Developer @ Tripadvisor
  • Lisbon, Portugal
View GitHub Profile
@BrunoMiguens
BrunoMiguens / Swift_Playground_File.swift
Created May 27, 2019 16:01
[Medium] Swift: Using Javascript library - Swift Playground File
import UIKit
import JavaScriptCore
import PlaygroundSupport
func generateContextJS() -> JSContext? {
let context = JSContext()
context?.evaluateScript("var console = { log: function(message) { _consoleLog(message) } }")
@BrunoMiguens
BrunoMiguens / Generate_JSContext.swift
Created May 27, 2019 15:17
[Medium] Swift: Using Javascript library - Generate JSContext
import JavaScriptCore
func generateJSContext() -> JSContext? {
let context = JSContext()
context?.evaluateScript("var console = { log: function(message) { _consoleLog(message) } }")
let consoleLog: (String) -> Void = { message in
print("JS Log: \(message)")
@BrunoMiguens
BrunoMiguens / cson_sample.cson
Created May 27, 2019 14:37
[Medium] Swift: Using Javascript library - CSON Sample
title: "Sample"
tags: ["One", "Two"]
message: '''
This is a Sample Message
'''
isStarred: false
@BrunoMiguens
BrunoMiguens / Load_JS_Code_and_Parse_File.swift
Created May 27, 2019 14:29
[Medium] Swift: Using Javascript library - Load JS Code and Parse File
let context = generateJSContext()
loadJSBundle(for: context)
if let csonPath = Bundle.main.path(forResource: "cson-sample", ofType: "cson"), let csonData = try? String(contentsOfFile: csonPath) {
context?.setObject(csonData, forKeyedSubscript: "parseStringData" as NSCopying & NSObjectProtocol)
let jsonData = context?.evaluateScript("CSON.parse(parseStringData)")?.toDictionary()
print(jsonData?.description ?? "")
@BrunoMiguens
BrunoMiguens / Load_Library-to_JSContext.swift
Created May 27, 2019 14:28
[Medium] Swift: Using Javascript library - Load Library to JSContext
import JavaScriptCore
func loadJSBundle(for context: JSContext?) {
guard let libraryPath = Bundle.main.path(forResource: "cson-parser-bundle", ofType: "js"),
let libraryCode = try? String(contentsOfFile: libraryPath) else {
return
}
context?.evaluateScript(libraryCode)
@BrunoMiguens
BrunoMiguens / Download_and_Run_Browserify.sh
Created May 27, 2019 10:40
[Medium] Swift: Using Javascript library - Download and Run Browserify
npm install -g browserify
npm install --save cson-parser
browserify ./cson-parser/cson-parser.js --standalone CSON > ./cson-parser-bundle.js
@BrunoMiguens
BrunoMiguens / JSContext_Console_Log_Handler.swift
Last active March 24, 2020 09:34
[Medium] Swift: Using Javascript library - JSContext Console Log Handler
import JavaScriptCore
let context = JSContext()
context?.evaluateScript("var console = { log: function(message) { _consoleLog(message) } }")
let consoleLog: (String) -> Void = { message in
print("JS Log: \(message)")
}
@BrunoMiguens
BrunoMiguens / JSContext_Exception_Handler.swift
Last active May 24, 2019 15:35
[Medium] Swift: Using Javascript library - JSContext Exception Handler
import JavaScriptCore
let context = JSContext()
context?.exceptionHandler = { context, exception in
print("JS Error: \(exception!)") // Do not use force unwrap `!`
}
@BrunoMiguens
BrunoMiguens / update_recent_podfile.tool
Last active May 5, 2017 12:43
This is a script to fetch and install pods on the most recent Podfile. Run 'chmod a+x update_recent_podfile.tool' to make this script runnable.
#!/usr/bin/env bash
BLUE=`tput setaf 4`
CYAN=`tput setaf 6`
NOCOLOR=`tput sgr0`
# Change '~/Documents' to whatever path/directory you want to fetch the pod files.
find ~/Documents -name 'Podfile' -type f -mtime -1 -print0 | xargs -0 | sort -nr | while read str; do
echo ""