UNPKG

vite-plugin-asciidoc

Version:

[![npm](https://img.shields.io/npm/v/vite-plugin-asciidoc?style=for-the-badge)](https://www.npmjs.com/package/vite-plugin-asciidoc)

99 lines (98 loc) 4.28 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getImportCode = exports.processHtml = exports.srcsetType = exports.srcType = exports.getModuleCode = exports.getExportCode = void 0; const sources_plugin_1 = __importDefault(require("html-loader/dist/plugins/sources-plugin")); const path_1 = __importDefault(require("path")); var utils_1 = require("html-loader/dist/utils"); Object.defineProperty(exports, "getExportCode", { enumerable: true, get: function () { return utils_1.getExportCode; } }); Object.defineProperty(exports, "getModuleCode", { enumerable: true, get: function () { return utils_1.getModuleCode; } }); Object.defineProperty(exports, "srcType", { enumerable: true, get: function () { return utils_1.srcType; } }); Object.defineProperty(exports, "srcsetType", { enumerable: true, get: function () { return utils_1.srcsetType; } }); function processHtml(html, sources, context, imports, errors, replacements) { const process = (0, sources_plugin_1.default)({ sources: { list: sources, }, context, imports, errors, replacements, }); return process(html); } exports.processHtml = processHtml; const GET_SOURCE_FROM_IMPORT_NAME = '___HTML_LOADER_GET_SOURCE_FROM_IMPORT___'; function getImportCode(html, context, imports) { if (imports.length === 0) { return ''; } const fileURLToHelper = contextify(context, require.resolve('./runtime/getUrl.js')); let code = `import ${GET_SOURCE_FROM_IMPORT_NAME} from "${fileURLToHelper}";\n`; for (const item of imports) { const { format, importName, request } = item; switch (format) { case 'import': code += `import ${importName} from ${JSON.stringify(request)};\n`; break; case 'url': default: code += `var ${importName} = new URL(${JSON.stringify(request)}, import.meta.url);\n`; } } return `// Imports\n${code}`; } exports.getImportCode = getImportCode; function contextify(context, request) { return request .split('!') .map(r => absoluteToRequest(context, r)) .join('!'); } const WINDOWS_ABS_PATH_REGEXP = /^[a-zA-Z]:[\\/]|^\\\\/; const WINDOWS_PATH_SEPARATOR_REGEXP = /\\/g; const RELATIVE_PATH_REGEXP = /^\.\.?[/\\]/; function absoluteToRequest(context, maybeAbsolutePath) { if (maybeAbsolutePath[0] === '/') { if (maybeAbsolutePath.length > 1 && maybeAbsolutePath[maybeAbsolutePath.length - 1] === '/') { // this 'path' is actually a regexp generated by dynamic requires. // Don't treat it as an absolute path. return maybeAbsolutePath; } const querySplitPos = maybeAbsolutePath.indexOf('?'); let resource = querySplitPos === -1 ? maybeAbsolutePath : maybeAbsolutePath.slice(0, querySplitPos); resource = path_1.default.posix.relative(context, resource); if (!resource.startsWith('../')) { resource = `./${resource}`; } return querySplitPos === -1 ? resource : resource + maybeAbsolutePath.slice(querySplitPos); } if (WINDOWS_ABS_PATH_REGEXP.test(maybeAbsolutePath)) { const querySplitPos = maybeAbsolutePath.indexOf('?'); let resource = querySplitPos === -1 ? maybeAbsolutePath : maybeAbsolutePath.slice(0, querySplitPos); resource = path_1.default.win32.relative(context, resource); if (!WINDOWS_ABS_PATH_REGEXP.test(resource)) { resource = resource.replace(WINDOWS_PATH_SEPARATOR_REGEXP, '/'); if (!resource.startsWith('../')) { resource = `./${resource}`; } } return querySplitPos === -1 ? resource : resource + maybeAbsolutePath.slice(querySplitPos); } if (!RELATIVE_PATH_REGEXP.test(maybeAbsolutePath)) { return `./${maybeAbsolutePath.replace(WINDOWS_PATH_SEPARATOR_REGEXP, '/')}`; } // not an absolute path return maybeAbsolutePath; }