Skip to content

Instantly share code, notes, and snippets.

Avatar
🏐
Focusing

ORES ORESoftware

🏐
Focusing
View GitHub Profile
@ORESoftware
ORESoftware / exampleModule.js
Last active May 10, 2016
Hot reloading with React + RequireJS
View exampleModule.js
define(['require'],function(require){ // 'require' is a reserved dependency keyword in RequireJS
var module = require('someModule'); //if we know for sure that someModule is already loaded, then we can load it here synchrounously
});
@ORESoftware
ORESoftware / example.js
Last active Jan 22, 2016
Example RequireJS synchronous call
View example.js
define(['require'],function(require){ // 'require' is a reserved dependency keyword in RequireJS
//if we know for sure that some-module is already loaded, then we can load it here synchrounously
//we don't even need to reference it in the dependency array above, if we know it's already loaded
var module = require('some-module');
});
@ORESoftware
ORESoftware / gulpfile.js
Created Sep 6, 2015
Gulpfile for project
View gulpfile.js
var gulp = require('gulp');
var socketio = require('socket.io');
var EE = require('events').EventEmitter;
var react = require('gulp-react');
var io = socketio.listen('3002', function (err, msg) {
if (err) {
View hotReloadHandler.js
define([
'socketio',
'#allCollections',
'#allCSS',
'#hotReload',
'app/js/cssAdder'
],
View serviceChooser.js
define([
'react',
'app/js/jsx/reactComponents/Service' // this 'child view' needs to be loaded before calling render on ServiceChooser, so that we can require it synchronously in the render function
'require'
],
function (React, Service, require) {
View allViews.js
//app/js/meta/allViews.js
define([
"app/js/jsx/BaseView",
"app/js/jsx/reactComponents/FluxCart",
"app/js/jsx/reactComponents/FluxCartApp",
"app/js/jsx/reactComponents/FluxProduct",
"app/js/jsx/reactComponents/Item",
"app/js/jsx/reactComponents/Job",
View main.js
// the # and @ notation is mine just to identify certain modules as my own and to make it easier to grep for things
// as you can see in the bottom of the file, RequireJS loads all dependencies in app/js/application before starting the app
// so if you put #allViews, #allCSS and #allTemplates as dependencies of your app/js/application module then this allows us to preload certain dependences so that we can later use *synchronous* require calls
// the synchronous require calls will allow us to do hot reloading with React and Backbone. We *could* make the render functions asynchronous, but there are two problems with that
// one problem is that Backbone conventions recommend returning 'this' from render(), the second is that React needs you return a valid React component from render, so render has to be synchronous
View application.js
define(
[
'*windowPatches',
'*backbonePatches',
'*jsPatches',
'observe',
'backbone',
'jquery',
@ORESoftware
ORESoftware / read_SE_API.js
Last active Jul 14, 2017
StackExchange API Node.js
View read_SE_API.js
/**
* Created by amills001c on 9/15/15.
*/
var url = 'http://api.stackexchange.com/2.2/answers?order=desc&sort=activity&site=stackoverflow';
var http = require("http");
var zlib = require("zlib");
View hotReloader.js
define(function () {
var hotReloadSimple = function (item, callback) {
require.undef(item); //delete cache representing module; this means the next require call to the same module will then have to pull the module from filesystem
require([item], function (module) { //load the file asynchronously, because the cache has been deleted
callback(null, module);
});
};