UNPKG

qcobjects-cli

Version:

qcobjects cli command line tool

8 lines (7 loc) 8.72 kB
{ "version": 3, "sources": ["../../src/main-file.ts"], "sourcesContent": ["/**\n * QCObjects CLI 2.4.x\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\nimport path from \"path\";\nimport fs from \"fs\";\nimport mime from \"mime\";\n\nimport { InheritClass, CONFIG, logger, New, Component, Package } from \"qcobjects\";\n\nexport class FileDispatcher extends InheritClass {\n scriptname: any;\n filename: any;\n pathname!: string;\n headers: any;\n templateURI!: string;\n template: any;\n body: any;\n constructor({\n name = CONFIG.get(\"documentRootFileIndex\"),\n template = \"\",\n templateURI = CONFIG.get(\"documentRootFileIndex\"),\n headers = {},\n body = \"\",\n filename = \"\",\n done\n }: {\n name: string, template: string, templateURI: string, headers: any, body: string, filename: string,\n done: (headers: any, body: any, templateURI?: string, isTemplate?: boolean) => any\n }) {\n super({\n name,\n template,\n templateURI,\n headers,\n body,\n filename,\n done\n });\n\n var o = this;\n\n var scriptname = o.scriptname;\n this.filename = scriptname;\n var pathname = (o.pathname !== \"\") ? (o.pathname + \"/\") : (\"\");\n var appTemplateInstance = this;\n if (typeof appTemplateInstance.headers === \"undefined\") {\n appTemplateInstance.headers = {\n \":status\": 500,\n \"content-type\": \"text/html\"\n };\n }\n\n appTemplateInstance.done = o.done.bind(appTemplateInstance);\n appTemplateInstance.templateURI = CONFIG.get(\"documentRoot\") + pathname + scriptname;\n appTemplateInstance.templateURI = appTemplateInstance.templateURI.replace(\"//\", \"/\");\n\n if (appTemplateInstance.isTemplate()) {\n fs.readFile(appTemplateInstance.templateURI, function (err: any, data: any) {\n logger.debug(\"reading data from \" + appTemplateInstance.templateURI);\n if (typeof data !== \"undefined\") {\n appTemplateInstance.template = data.toString();\n appTemplateInstance._done();\n } else {\n appTemplateInstance.headers = {\n \":status\": 404,\n \"content-type\": \"text/html\"\n };\n appTemplateInstance.done(\n appTemplateInstance.headers,\n \"FILE NOT FOUND\", \"notfound.html\", false);\n logger.debug(\"file not found\");\n }\n });\n } else {\n appTemplateInstance.headers[\":status\"] = 200;\n appTemplateInstance.headers[\"content-type\"] = mime.getType(appTemplateInstance.templateURI);\n appTemplateInstance.done(\n appTemplateInstance.headers,\n \"\", appTemplateInstance.templateURI, false);\n }\n\n logger.info(\"FileDispatcher initialized\");\n\n }\n\n file_extension() {\n return this.filename.substr(this.filename.indexOf(\".\"));\n }\n isTemplate() {\n return CONFIG.get(\"useTemplate\") && (this.file_extension() == \".html\" || this.file_extension() == \".tpl.html\");\n }\n _done() {\n var appTemplateInstance = this;\n const source = appTemplateInstance.template;\n if (appTemplateInstance.isTemplate()) {\n\n (New(Component, {\n name: \"static_source\",\n template: source,\n cached: false,\n tplsource: \"inline\",\n data: {\n title: \"QCObjects\"\n },\n done({\n request,\n component\n }: { request: any, component: any }) {\n appTemplateInstance.body = component.parsedAssignmentText;\n return Promise.resolve({\n request,\n component\n });\n }\n }));\n\n } else {\n appTemplateInstance.body = source;\n }\n\n if ([\".png\",\n \".jpg\",\n \".jpeg\",\n \".json\",\n \".html\",\n \".tpl.html\",\n \".css\",\n \".js\",\n \".svg\"\n ].includes(appTemplateInstance.file_extension())) {\n appTemplateInstance.headers[\"content-type\"] = mime.getType(appTemplateInstance.templateURI);\n appTemplateInstance.headers[\"cache-control\"] = CONFIG.get(\"cacheControl\", \"max-age=31536000\");\n appTemplateInstance.done(\n appTemplateInstance.headers,\n appTemplateInstance.body,\n appTemplateInstance.templateURI,\n appTemplateInstance.isTemplate());\n } else {\n appTemplateInstance.done({\n \":status\": 403,\n \"content-type\": \"text/plain\"\n },\n \"FORBIDDEN\", \"notfound.html\", false);\n }\n }\n done(headers: any, body: any, templateURI = \"\", isTemplate = false) { }\n\n}\n\n\n( () => {\n \"use strict\";\n\n const absolutePath = path.resolve(__dirname, \"./\");\n\n\n\n Package(\"org.quickcorp.qcobjects.main.file\", [\n FileDispatcher\n ]);\n\n exports = {\n FileDispatcher\n };\n})();"], "mappings": "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", "names": [] }