forked from madskristensen/WebEssentials2013
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feature: Nodejs as a Web Service - pt. 1. (madskristensen#381)
* Set server foundation: * Established a Server. * Controller. * File/Folder structure for services. * Added LESS service. * Set client foundation: * Build-time actions.
- Loading branch information
Showing
17 changed files
with
538 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
//#region Imports | ||
var compilers = require("./services/compilers/index.js"), | ||
linters = require("./services/linters/index.js"); | ||
//#endregion | ||
|
||
//#region Controller | ||
var handleRequest = function (writer, params) { | ||
switch (params.service) { | ||
case 'autoprefixer': | ||
handleAutoPrefixer(writer, params); | ||
break; | ||
case 'less': | ||
handleLess(writer, params); | ||
break; | ||
case 'sass': | ||
handleSass(writer, params); | ||
break; | ||
case 'coffeescript': | ||
handleCoffeeScript(writer, params); | ||
break; | ||
case 'icedcoffeescript': | ||
handleIcedCoffeeScript(writer, params); | ||
break; | ||
case 'livescript': | ||
handleLiveScript(writer, params); | ||
break; | ||
case 'sweetjs': | ||
handleSweetJS(writer, params); | ||
break; | ||
case 'jscs': | ||
handleJSCS(writer, params); | ||
break; | ||
case 'jshint': | ||
handleJSHint(writer, params); | ||
break; | ||
case 'tslint': | ||
handleTSLint(writer, params); | ||
break; | ||
default: | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Invalid Service Name" })); | ||
writer.end(); | ||
break; | ||
} | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleRequest = handleRequest; | ||
//#endregion |
21 changes: 21 additions & 0 deletions
21
EditorExtensions/Resources/server/services/compilers/_commons.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
//#region Imports | ||
var fs = require("fs"), | ||
path = require("path"), | ||
mkdirp = require("mkdirp"); | ||
//#endregion | ||
|
||
//#region Functions | ||
var ensureDirectory = function (filepath) { | ||
var dir = path.dirname(filepath), | ||
cmd, | ||
existsSync = fs.existsSync || path.existsSync; | ||
if (!existsSync(dir)) { | ||
cmd = mkdirp && mkdirp.sync || fs.mkdirSync; | ||
cmd(dir); | ||
} | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.ensureDirectory = ensureDirectory; | ||
//#endregion |
14 changes: 14 additions & 0 deletions
14
EditorExtensions/Resources/server/services/compilers/autoprefixer.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//#region Imports | ||
var autoprefixer = require("autoprefixer"); | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleAutoPrefixer = function (writer, params) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." })); | ||
writer.end(); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleAutoPrefixer = handleAutoPrefixer; | ||
//#endregion |
14 changes: 14 additions & 0 deletions
14
EditorExtensions/Resources/server/services/compilers/coffeescript.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//#region Imports | ||
var coffeescript = require("coffee-script"); | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleCoffeeScript = function (writer, params) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." })); | ||
writer.end(); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleCoffeeScript = handleCoffeeScript; | ||
//#endregion |
14 changes: 14 additions & 0 deletions
14
EditorExtensions/Resources/server/services/compilers/icedcoffeescript.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//#region Imports | ||
var icedcoffeescript = require("iced-coffee-script");; | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleIcedCoffeeScript = function (writer, params) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." })); | ||
writer.end(); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleIcedCoffeeScript = handleIcedCoffeeScript; | ||
//#endregion |
9 changes: 9 additions & 0 deletions
9
EditorExtensions/Resources/server/services/compilers/index.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
//#region Exports | ||
exports.autoprefixer = require("./autoprefixer.js"); | ||
exports.coffeescript = require("./coffeescript.js"); | ||
exports.icedcoffeescript = require("./icedcoffeescript.js"); | ||
exports.less = require("./less.js"); | ||
exports.livescript = require("./livescript.js"); | ||
exports.sass = require("./sass.js"); | ||
exports.sweetjs = require("./sweetjs.js"); | ||
//#endregion |
53 changes: 53 additions & 0 deletions
53
EditorExtensions/Resources/server/services/compilers/less.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
//#region Imports | ||
var less = require("less"), | ||
fs = require("fs"), | ||
path = require("path"), | ||
commons = require("./_commons.js"); | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleLess = function (writer, params) { | ||
var parser = new less.Parser(); | ||
|
||
fs.readFile(params.sourceFileName, 'utf8', function (err, data) { | ||
if (err) { | ||
writer.write(JSON.stringify({ Error: err })); | ||
writer.end; | ||
return; | ||
} | ||
|
||
try { | ||
parser.parse(data, function (e, tree) { | ||
var css = tree.toCSS({ | ||
relativeUrl: true, | ||
paths: [path.dirname(params.sourceFileName)], | ||
filename: params.sourceFileName, | ||
sourceMap: true, | ||
sourceMapBasepath: path.dirname(params.mapFileName), | ||
sourceMapOutputFilename: params.mapFileName, | ||
strictMath: params.strictMath, | ||
writeSourceMap: function (output) { | ||
commons.ensureDirectory(params.mapFileName); | ||
fs.writeFileSync(params.mapFileName, output, 'utf8'); | ||
} | ||
}); | ||
|
||
commons.ensureDirectory(params.targetFileName); | ||
fs.writeFileSync(params.targetFileName, css, 'utf8'); | ||
|
||
writer.write(JSON.stringify({ Success: true, Remarks: "Successful!", Output: css })); | ||
writer.end(); | ||
}); | ||
} catch (e) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: e.stack })); | ||
writer.end(); | ||
} | ||
}); | ||
|
||
writer.write("output1"); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleLess = handleLess; | ||
//#endregion |
14 changes: 14 additions & 0 deletions
14
EditorExtensions/Resources/server/services/compilers/livescript.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//#region Imports | ||
var autoprefixer = require("LiveScript"); | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleLiveScript = function (writer, params) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." })); | ||
writer.end(); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleLiveScript = handleLiveScript; | ||
//#endregion |
14 changes: 14 additions & 0 deletions
14
EditorExtensions/Resources/server/services/compilers/sass.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//#region Imports | ||
//var sass = require("node-sass"); | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleSass = function (writer, params) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." })); | ||
writer.end(); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleSass = handleSass; | ||
//#endregion |
14 changes: 14 additions & 0 deletions
14
EditorExtensions/Resources/server/services/compilers/sweetjs.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//#region Imports | ||
var sweetjs = require("sweet.js"); | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleSweetJS = function (writer, params) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." })); | ||
writer.end(); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleSweetJS = handleSweetJS; | ||
//#endregion |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
//#region Exports | ||
exports.jscs = require("./jscs.js"); | ||
exports.jshint = require("./jshint.js"); | ||
exports.tslint = require("./tslint.js"); | ||
//#endregion |
14 changes: 14 additions & 0 deletions
14
EditorExtensions/Resources/server/services/linters/jscs.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//#region Imports | ||
var jscs = require("jscs"); | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleJSCS = function (writer, params) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." })); | ||
writer.end(); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleJSCS = handleJSCS; | ||
//#endregion |
14 changes: 14 additions & 0 deletions
14
EditorExtensions/Resources/server/services/linters/jshint.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//#region Imports | ||
var jshint = require("jshint"); | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleJSHint = function (writer, params) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." })); | ||
writer.end(); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleJSHint = handleJSHint; | ||
//#endregion |
14 changes: 14 additions & 0 deletions
14
EditorExtensions/Resources/server/services/linters/tslint.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
//#region Imports | ||
var tslint = require("tslint"); | ||
//#endregion | ||
|
||
//#region Handler | ||
var handleTSLint = function (writer, params) { | ||
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." })); | ||
writer.end(); | ||
}; | ||
//#endregion | ||
|
||
//#region Exports | ||
exports.handleAutoPrefixer = handleTSLint; | ||
//#endregion |
Oops, something went wrong.