UNPKG

qcobjects-cli

Version:

qcobjects cli command line tool

195 lines (194 loc) 6.34 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var main_file_exports = {}; __export(main_file_exports, { FileDispatcher: () => FileDispatcher }); module.exports = __toCommonJS(main_file_exports); var import_path = __toESM(require("path")); var import_fs = __toESM(require("fs")); var import_mime = __toESM(require("mime")); var import_qcobjects = require("qcobjects"); class FileDispatcher extends import_qcobjects.InheritClass { static { __name(this, "FileDispatcher"); } scriptname; filename; pathname; headers; templateURI; template; body; constructor({ name = import_qcobjects.CONFIG.get("documentRootFileIndex"), template = "", templateURI = import_qcobjects.CONFIG.get("documentRootFileIndex"), headers = {}, body = "", filename = "", done }) { super({ name, template, templateURI, headers, body, filename, done }); var o = this; var scriptname = o.scriptname; this.filename = scriptname; var pathname = o.pathname !== "" ? o.pathname + "/" : ""; var appTemplateInstance = this; if (typeof appTemplateInstance.headers === "undefined") { appTemplateInstance.headers = { ":status": 500, "content-type": "text/html" }; } appTemplateInstance.done = o.done.bind(appTemplateInstance); appTemplateInstance.templateURI = import_qcobjects.CONFIG.get("documentRoot") + pathname + scriptname; appTemplateInstance.templateURI = appTemplateInstance.templateURI.replace("//", "/"); if (appTemplateInstance.isTemplate()) { import_fs.default.readFile(appTemplateInstance.templateURI, function(err, data) { import_qcobjects.logger.debug("reading data from " + appTemplateInstance.templateURI); if (typeof data !== "undefined") { appTemplateInstance.template = data.toString(); appTemplateInstance._done(); } else { appTemplateInstance.headers = { ":status": 404, "content-type": "text/html" }; appTemplateInstance.done( appTemplateInstance.headers, "FILE NOT FOUND", "notfound.html", false ); import_qcobjects.logger.debug("file not found"); } }); } else { appTemplateInstance.headers[":status"] = 200; appTemplateInstance.headers["content-type"] = import_mime.default.getType(appTemplateInstance.templateURI); appTemplateInstance.done( appTemplateInstance.headers, "", appTemplateInstance.templateURI, false ); } import_qcobjects.logger.info("FileDispatcher initialized"); } file_extension() { return this.filename.substr(this.filename.indexOf(".")); } isTemplate() { return import_qcobjects.CONFIG.get("useTemplate") && (this.file_extension() == ".html" || this.file_extension() == ".tpl.html"); } _done() { var appTemplateInstance = this; const source = appTemplateInstance.template; if (appTemplateInstance.isTemplate()) { (0, import_qcobjects.New)(import_qcobjects.Component, { name: "static_source", template: source, cached: false, tplsource: "inline", data: { title: "QCObjects" }, done({ request, component }) { appTemplateInstance.body = component.parsedAssignmentText; return Promise.resolve({ request, component }); } }); } else { appTemplateInstance.body = source; } if ([ ".png", ".jpg", ".jpeg", ".json", ".html", ".tpl.html", ".css", ".js", ".svg" ].includes(appTemplateInstance.file_extension())) { appTemplateInstance.headers["content-type"] = import_mime.default.getType(appTemplateInstance.templateURI); appTemplateInstance.headers["cache-control"] = import_qcobjects.CONFIG.get("cacheControl", "max-age=31536000"); appTemplateInstance.done( appTemplateInstance.headers, appTemplateInstance.body, appTemplateInstance.templateURI, appTemplateInstance.isTemplate() ); } else { appTemplateInstance.done( { ":status": 403, "content-type": "text/plain" }, "FORBIDDEN", "notfound.html", false ); } } done(headers, body, templateURI = "", isTemplate = false) { } } (() => { "use strict"; const absolutePath = import_path.default.resolve(__dirname, "./"); (0, import_qcobjects.Package)("org.quickcorp.qcobjects.main.file", [ FileDispatcher ]); exports = { FileDispatcher }; })(); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { FileDispatcher }); //# sourceMappingURL=main-file.cjs.map