UNPKG

paperclip-loader

Version:

This project was bootstrapped by [create-neon](https://www.npmjs.com/package/create-neon).

72 lines (71 loc) 3.28 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); var _a = require("./main.node"), startLoader = _a.startLoader, compileFile = _a.compileFile, getConfigContext = _a.getConfigContext; // import { ConfigContext } from "@paperclip-ui/core/bindings/ConfigContext"; var path = require("path"); var fs = require("fs"); var DEFAULT_CONFIG_FILE_NAME = "paperclip.config.json"; var _loader; var getLoader = function (directory, configFileName) { if (!_loader) { _loader = startLoader(directory, configFileName); } return _loader; }; module.exports = function (source) { this.cacheable(); var callback = this.async(); var options = __assign({}, this.getOptions()); if (options.globalScript) { return callback(null, includeGlobalScript(options.globalScript)); } var _a = options.configFile, configFile = _a === void 0 ? DEFAULT_CONFIG_FILE_NAME : _a; var loader = getLoader(process.cwd(), configFile); var compiledFiles = compileFile(loader, this.resourcePath) || {}; var mainContent; for (var compiledFilePath in compiledFiles) { if (/\.js$/.test(compiledFilePath)) { mainContent = compiledFiles[compiledFilePath]; } } var configContext = getConfigContext(loader); // inspiration: https://github.com/sveltejs/svelte-loader/blob/master/index.js if (configContext.config.globalScripts) { for (var _i = 0, _b = configContext.config.globalScripts; _i < _b.length; _i++) { var relPath = _b[_i]; var scriptPath = relPath.includes("://") ? relPath : path.join(configContext.directory, relPath); mainContent = "import \"".concat(encodeURIComponent(scriptPath), ".js!=!paperclip-loader?globalScript=").concat(scriptPath, "!").concat(path.join(configContext.directory, configContext.fileName), "\";\n") + mainContent; } } callback(null, mainContent); }; var includeGlobalScript = function (script) { if (script.includes("://")) { if (/\.css$/.test(script)) { return "\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = \"".concat(script, "\";\n document.head.appendChild(link);\n "); } } else { var content = fs.readFileSync(script, "utf8"); if (/\.css$/.test(script)) { return "\n const style = document.createElement(\"style\");\n style.textContent = ".concat(JSON.stringify(content), ";\n document.head.appendChild(style);\n "); } else if (/\.js/.test(script)) { return "\n const script = document.createElement(\"script\");\n script.textContent = ".concat(JSON.stringify(content), ";\n document.head.appendChild(script);\n "); } } };