Skip to content

Commit

Permalink
Feature: Nodejs as a Web Service - pt. 5. (madskristensen#381)
Browse files Browse the repository at this point in the history
* Server: Adds IcedCoffeeScript service.
* Server: Checks only presence for all boolean
  options.
  • Loading branch information
am11 authored and nycdotnet committed Jul 16, 2014
1 parent d4554c2 commit 7487b05
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ var handleAutoPrefixer = function (writer, params) {

fs.readFile(params.sourceFileName, 'utf8', function (err, data) {
if (err) {
writer.write(JSON.stringify({ Success: false, Remarks: err }));
writer.write(JSON.stringify({ Success: false, Remarks: "Error reading input file." }));
writer.end();
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ var coffeescript = require("coffee-script"),
var handleCoffeeScript = function (writer, params) {
var options = {
filename: params.sourceFileName,
bare: params.bare,
bare: params.bare !== null,
sourceMap: true,
sourceRoot: "",
sourceFiles: [path.relative(path.dirname(params.targetFileName), params.sourceFileName).replace(/\\/g, '/')],
Expand Down
47 changes: 44 additions & 3 deletions EditorExtensions/Resources/server/services/srv-icedcoffeescript.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,52 @@
//#region Imports
var icedcoffeescript = require("iced-coffee-script");
var icedcoffeescript = require("iced-coffee-script"),
path = require("path"),
fs = require("fs");
//#endregion

//#region Handler
var handleIcedCoffeeScript = function (writer, params) {
writer.write(JSON.stringify({ Success: false, Remarks: "Service Not Implemented." }));
writer.end();
var options = {
filename: params.sourceFileName,
bare: params.bare !== null,
runtime: "inline",
sourceMap: true,
sourceRoot: "",
sourceFiles: [path.relative(path.dirname(params.targetFileName), params.sourceFileName).replace(/\\/g, '/')],
};

fs.readFile(params.sourceFileName, 'utf8', function (err, data) {
if (err) {
writer.write(JSON.stringify({ Success: false, Remarks: "Error reading input file." }));
writer.end();
return;
}

try {
compiled = icedcoffeescript.compile(data, options);

var map = JSON.parse(compiled.v3SourceMap);
map.file = path.basename(params.targetFileName);
delete map.sourceRoot;

var js = compiled.js;
if (params.sourceMapURL != undefined)
js = "" + js + "\n//# sourceMappingURL=" + path.basename(params.targetFileName) + ".map\n";

writer.write(JSON.stringify({
Success: true,
Remarks: "Successful!",
Output: {
outputContent: js,
mapContent: map
}
}));
writer.end();
} catch (error) {
writer.write(JSON.stringify({ Success: false, Remarks: error.stack || ("" + error) }));
writer.end();
}
});
};
//#endregion

Expand Down
6 changes: 3 additions & 3 deletions EditorExtensions/Resources/server/services/srv-less.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ var handleLess = function (writer, params) {
try {
new (less.Parser)({ filename: params.sourceFileName }).parse(data, function (e, tree) {
if (e) {
writer.write(JSON.stringify({ Success: false, Remarks: e }));
writer.write(JSON.stringify({ Success: false, Remarks: "Error reading input file." }));
writer.end();
return;
}
Expand All @@ -31,13 +31,13 @@ var handleLess = function (writer, params) {
var mapFileName = params.targetFileName + ".map";
var mapDir = path.dirname(mapFileName);
var css = tree.toCSS({
relativeUrl: params.relativeUrl,
relativeUrl: true,
paths: [path.dirname(params.sourceFileName)],
sourceMap: mapFileName,
sourceMapURL: params.sourceMapURL != undefined ? path.basename(mapFileName) : null,
sourceMapBasepath: mapDir,
sourceMapOutputFilename: mapFileName,
strictMath: params.strictMath,
strictMath: params.strictMath !== null,
writeSourceMap: function (output) {
output = JSON.parse(output);
output.file = path.basename(params.targetFileName);
Expand Down
4 changes: 2 additions & 2 deletions EditorExtensions/Resources/server/services/srv-livescript.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ var livescript = require("LiveScript"),
var handleLiveScript = function (writer, params) {
var options = {
filename: params.sourceFileName,
bare: params.bare
bare: params.bare !== null
};

fs.readFile(params.sourceFileName, 'utf8', function (err, data) {
if (err) {
writer.write(JSON.stringify({ Success: false, Remarks: err }));
writer.write(JSON.stringify({ Success: false, Remarks: "Error reading input file." }));
writer.end();
return;
}
Expand Down
4 changes: 2 additions & 2 deletions EditorExtensions/Resources/server/services/srv-sweetjs.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ var sweetjs = require("sweet.js"),
var handleSweetJS = function (writer, params) {
var options = {
filename: params.sourceFileName,
sourceMap: true,
sourceMap: true
};

fs.readFile(params.sourceFileName, 'utf8', function (err, data) {
if (err) {
writer.write(JSON.stringify({ Success: false, Remarks: err }));
writer.write(JSON.stringify({ Success: false, Remarks: "Error reading input file." }));
writer.end();
return;
}
Expand Down

0 comments on commit 7487b05

Please sign in to comment.