74 lines
2.7 KiB
JavaScript
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;
|