uni-ticket-system/node_modules/@dcloudio/uni-cli-shared/dist/mp/template.js
2023-12-05 10:11:10 +08:00

74 lines
2.7 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.addMiniProgramTemplateFilter = exports.clearMiniProgramTemplateFilter = exports.addMiniProgramTemplateFile = exports.clearMiniProgramTemplateFiles = exports.findMiniProgramTemplateFiles = void 0;
const path_1 = __importDefault(require("path"));
const uni_shared_1 = require("@dcloudio/uni-shared");
const utils_1 = require("../utils");
const templateFilesCache = new Map();
const templateFiltersCache = new Map();
function relativeFilterFilename(filename, filter) {
if (!filter.src) {
return '';
}
return ('./' +
(0, utils_1.normalizeMiniProgramFilename)(path_1.default.relative(path_1.default.dirname(filename), filter.src)));
}
function findMiniProgramTemplateFiles(genFilter) {
const files = Object.create(null);
templateFilesCache.forEach((code, filename) => {
if (!genFilter) {
files[filename] = code;
}
else {
const filters = getMiniProgramTemplateFilters(filename);
if (filters && filters.length) {
files[filename] =
filters
.map((filter) => genFilter(filter, relativeFilterFilename(filename, filter)))
.join(uni_shared_1.LINEFEED) +
uni_shared_1.LINEFEED +
code;
}
else {
files[filename] = code;
}
}
});
return files;
}
exports.findMiniProgramTemplateFiles = findMiniProgramTemplateFiles;
function clearMiniProgramTemplateFiles() {
templateFilesCache.clear();
}
exports.clearMiniProgramTemplateFiles = clearMiniProgramTemplateFiles;
function addMiniProgramTemplateFile(filename, code) {
templateFilesCache.set(filename, code);
}
exports.addMiniProgramTemplateFile = addMiniProgramTemplateFile;
function getMiniProgramTemplateFilters(filename) {
return templateFiltersCache.get(filename);
}
function clearMiniProgramTemplateFilter(filename) {
templateFiltersCache.delete(filename);
}
exports.clearMiniProgramTemplateFilter = clearMiniProgramTemplateFilter;
function addMiniProgramTemplateFilter(filename, filter) {
const filters = templateFiltersCache.get(filename);
if (filters) {
const filterIndex = filters.findIndex((f) => f.id === filter.id);
if (filterIndex > -1) {
filters.splice(filterIndex, 1, filter);
}
else {
filters.push(filter);
}
}
else {
templateFiltersCache.set(filename, [filter]);
}
}
exports.addMiniProgramTemplateFilter = addMiniProgramTemplateFilter;