From 0b732e1a7cde8cc6d554045f6562643c80a78843 Mon Sep 17 00:00:00 2001 From: TLO Date: Wed, 20 May 2015 12:33:38 +0200 Subject: [PATCH] Added architecture option for Alt (http://alt.js.org), actions and stores --- action/index.js | 3 +++ app/index.js | 5 +++-- main/index.js | 6 ++++++ store/index.js | 3 +++ templates/common/_package.json | 3 ++- templates/javascript/AltAction.js | 11 +++++++++++ templates/javascript/AltStore.js | 21 +++++++++++++++++++++ templates/javascript/alt.js | 4 ++++ 8 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 templates/javascript/AltAction.js create mode 100644 templates/javascript/AltStore.js create mode 100644 templates/javascript/alt.js diff --git a/action/index.js b/action/index.js index be324a3..228642b 100644 --- a/action/index.js +++ b/action/index.js @@ -24,6 +24,9 @@ ActionGenerator.prototype.createActionFile = function createActionFile() { case 'reflux': actionTemplate = 'RefluxAction'; break; + case 'alt': + actionTemplate = 'AltAction'; + break; } console.log('Creating ' + this.architecture + ' action'); diff --git a/app/index.js b/app/index.js index c434b3f..888f39d 100644 --- a/app/index.js +++ b/app/index.js @@ -72,11 +72,12 @@ ReactWebpackGenerator.prototype.askForArchitecture = function() { this.prompt({ type : 'list', name : 'architecture', - message : 'Would you like to use one of those architectures?', + message : 'Would you like to use one of these architectures?', choices: [ {name:'No need for that, thanks',value:false}, {name:'Flux',value:'flux'}, - {name:'ReFlux',value:'reflux'} + {name:'ReFlux',value:'reflux'}, + {name:'Alt',value:'alt'} ], default : false }, function(props) { diff --git a/main/index.js b/main/index.js index d28ad0d..0317a5e 100644 --- a/main/index.js +++ b/main/index.js @@ -27,3 +27,9 @@ MainGenerator.prototype.createDispatcher = function createDispatcher() { this.appTemplate('Dispatcher', 'dispatcher/' + this.scriptAppName + 'Dispatcher'); } }; + +MainGenerator.prototype.createAltjsFile = function createAltjsFile() { + if(this.env.options.architecture=='alt') { + this.appTemplate('alt', 'alt'); + } +}; diff --git a/store/index.js b/store/index.js index b338678..98db828 100644 --- a/store/index.js +++ b/store/index.js @@ -26,6 +26,9 @@ StoreGenerator .prototype.createStoreFile = function createStoreFile() { case 'reflux': storeTemplate = 'RefluxStore'; break; + case 'alt': + storeTemplate = 'AltStore'; + break; } console.log('Creating ' + this.architecture + ' store'); diff --git a/templates/common/_package.json b/templates/common/_package.json index 5ae80ad..026efab 100644 --- a/templates/common/_package.json +++ b/templates/common/_package.json @@ -14,7 +14,8 @@ "flux": "^2.0.1", "events": "^1.0.2", "object-assign": "^2.0.0", <% } if (architecture === 'reflux') {%> - "reflux": "^0.2.7", <% } %> + "reflux": "^0.2.7", <% } if (architecture === 'alt') { %> + "alt": "^0.16.5", <% } %> "react": "~0.12.2", "normalize.css": "~3.0.3" }, diff --git a/templates/javascript/AltAction.js b/templates/javascript/AltAction.js new file mode 100644 index 0000000..98629df --- /dev/null +++ b/templates/javascript/AltAction.js @@ -0,0 +1,11 @@ +var alt = require('../alt'); + +<% if (es6) { %>class <%= classedName %> { + +}; <% } +else { %>var <%= classedName %> = alt.createActions(function () { + +}); <% } %> + +<% if (es6) { %>export default alt.createActions(<%= classedName %>); <% } +else { %>module.exports = <%= classedName %>; <% } %> diff --git a/templates/javascript/AltStore.js b/templates/javascript/AltStore.js new file mode 100644 index 0000000..a59a350 --- /dev/null +++ b/templates/javascript/AltStore.js @@ -0,0 +1,21 @@ +var alt = require('../alt'); + +<% if (es6) { %>class <%= classedName %> { + constructor() { + + this.bindListeners({ + + }); + + } +} <% } +else { %>var <%= classedName %> = alt.createStore({ + + bindListeners: { + + } + +}); <% } %> + +<% if (es6) { %>export default alt.createStore(<%= classedName %>, '<%= classedName %>'); <% } +else { %>module.exports = <%= classedName %>; <% } %> diff --git a/templates/javascript/alt.js b/templates/javascript/alt.js new file mode 100644 index 0000000..baa5fef --- /dev/null +++ b/templates/javascript/alt.js @@ -0,0 +1,4 @@ +var Alt = require('alt'); +var alt = new Alt(); + +module.exports = alt;