diff --git a/EditorExtensions/Resources/server/services/srv-autoprefixer.js b/EditorExtensions/Resources/server/services/srv-autoprefixer.js index 163e38973..92c77b027 100644 --- a/EditorExtensions/Resources/server/services/srv-autoprefixer.js +++ b/EditorExtensions/Resources/server/services/srv-autoprefixer.js @@ -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; } diff --git a/EditorExtensions/Resources/server/services/srv-coffeescript.js b/EditorExtensions/Resources/server/services/srv-coffeescript.js index e947d2d11..707cff5f2 100644 --- a/EditorExtensions/Resources/server/services/srv-coffeescript.js +++ b/EditorExtensions/Resources/server/services/srv-coffeescript.js @@ -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, '/')], diff --git a/EditorExtensions/Resources/server/services/srv-icedcoffeescript.js b/EditorExtensions/Resources/server/services/srv-icedcoffeescript.js index 3044e1f0c..393624dac 100644 --- a/EditorExtensions/Resources/server/services/srv-icedcoffeescript.js +++ b/EditorExtensions/Resources/server/services/srv-icedcoffeescript.js @@ -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 diff --git a/EditorExtensions/Resources/server/services/srv-less.js b/EditorExtensions/Resources/server/services/srv-less.js index e4c63d56c..b27311f5d 100644 --- a/EditorExtensions/Resources/server/services/srv-less.js +++ b/EditorExtensions/Resources/server/services/srv-less.js @@ -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; } @@ -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); diff --git a/EditorExtensions/Resources/server/services/srv-livescript.js b/EditorExtensions/Resources/server/services/srv-livescript.js index 161f594f6..4498f5b5c 100644 --- a/EditorExtensions/Resources/server/services/srv-livescript.js +++ b/EditorExtensions/Resources/server/services/srv-livescript.js @@ -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; } diff --git a/EditorExtensions/Resources/server/services/srv-sweetjs.js b/EditorExtensions/Resources/server/services/srv-sweetjs.js index 1cd080b82..882adefd1 100644 --- a/EditorExtensions/Resources/server/services/srv-sweetjs.js +++ b/EditorExtensions/Resources/server/services/srv-sweetjs.js @@ -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; }