UNPKG

esbuild-plugin-vue-iii

Version:
52 lines 2.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setDescriptor = exports.getDescriptor = exports.setPrevDescriptor = exports.getPrevDescriptor = exports.createDescriptor = void 0; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const slash_1 = __importDefault(require("slash")); const hash_sum_1 = __importDefault(require("hash-sum")); const compiler_sfc_1 = require("@vue/compiler-sfc"); const cache = new Map(); const prevCache = new Map(); function createDescriptor(filename, source, root, isProduction) { const { descriptor, errors } = compiler_sfc_1.parse(source, { filename, sourceMap: true }); // ensure the path is normalized in a way that is consistent inside // project (relative to root) and on different systems. const normalizedPath = slash_1.default(path_1.default.normalize(path_1.default.relative(root, filename))); descriptor.id = hash_sum_1.default(normalizedPath + (isProduction ? source : '')); cache.set(filename, descriptor); return { descriptor, errors }; } exports.createDescriptor = createDescriptor; function getPrevDescriptor(filename) { return prevCache.get(filename); } exports.getPrevDescriptor = getPrevDescriptor; function setPrevDescriptor(filename, entry) { prevCache.set(filename, entry); } exports.setPrevDescriptor = setPrevDescriptor; function getDescriptor(filename, root, isProduction, createIfNotFound = true) { if (cache.has(filename)) { return cache.get(filename); } if (createIfNotFound) { const { descriptor, errors } = createDescriptor(filename, fs_1.default.readFileSync(filename, 'utf-8'), root, isProduction); if (errors) { throw errors[0]; } return descriptor; } } exports.getDescriptor = getDescriptor; function setDescriptor(filename, entry) { cache.set(filename, entry); } exports.setDescriptor = setDescriptor; //# sourceMappingURL=descriptorCache.js.map