UNPKG

@msnraju/al-embed-file

Version:

Creates a codeunit with the Json / Xml / text file embedded.

59 lines 2.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Writer = void 0; var fs_1 = __importDefault(require("fs")); var path_1 = __importDefault(require("path")); var helper_1 = require("./helper"); var Writer = /** @class */ (function () { function Writer() { } Writer.generateCodeunit = function (options) { var filePath = path_1.default.resolve(options.fileName); var buffer = fs_1.default.readFileSync(filePath); var content = buffer.toString('utf-8'); this.toALCode(content); var getMethod = ''; var extname = path_1.default.extname(filePath).toLowerCase(); switch (extname) { case '.json': getMethod = " procedure GetJObject(): JsonObject\n var \n JObject: JsonObject;\n begin\n JObject.ReadFrom(GetText());\n exit(JObject);\n end;"; break; case '.xml': getMethod = " procedure GetXmlDocument(): XmlDocument\n var \n XmlDoc: XmlDocument;\n begin \n XmlDocument.ReadFrom(GetText(), XmlDoc);\n exit(XmlDoc);\n end;"; break; default: getMethod = " procedure GetTextContent(): Text\n begin \n exit(GetText());\n end;"; break; } var codeunit = "codeunit " + options.codeunitID + " \"" + options.codeunitName + "\"\n{ \n" + getMethod + "\n\n procedure GetText(): Text\n var\n builder: TextBuilder;\n begin\n" + this.toALCode(content).join('\r\n') + "\n\n exit(builder.ToText());\n end;\n}"; var outFile = path_1.default.resolve(options.outputFileName); fs_1.default.writeFileSync(outFile, codeunit); console.log("'" + options.outputFileName + "' codeunit generated."); }; Writer.toALCode = function (content) { content = content.replace(/'/g, "''"); var lines = helper_1.Helper.splitByLength(content, 100); var delFirstChar = false; var alCode = []; lines.forEach(function (line) { if (line.endsWith("'") && !line.endsWith("''")) { delFirstChar = true; alCode.push(" builder.Append('" + line + "'');"); } else { if (delFirstChar) { line = line.substr(1); delFirstChar = false; } alCode.push(" builder.Append('" + line + "');"); } }); return alCode; }; return Writer; }()); exports.Writer = Writer; //# sourceMappingURL=writer.js.map