@msnraju/al-embed-file
Version:
Creates a codeunit with the Json / Xml / text file embedded.
59 lines • 2.88 kB
JavaScript
;
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