st-bundle
Version:
CLI for watching and bundling SpringType projects.
65 lines (64 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var AssembleState;
(function (AssembleState) {
AssembleState[AssembleState["VENDOR_REQUIRED"] = 0] = "VENDOR_REQUIRED";
})(AssembleState = exports.AssembleState || (exports.AssembleState = {}));
function assembleContext(ctx) {
let packages = new Map();
let ftlModules = [];
let ftlContent;
const obj = {
setFTLModule: (module) => {
if (ftlModules.indexOf(module) === -1) {
ftlModules.push(module);
}
},
setFTLGeneratedContent: str => {
ftlContent = str;
},
getFTLGeneratedContent: () => {
return ftlContent;
},
getFTLModules: () => ftlModules,
flush: () => {
ftlModules = [];
packages = new Map();
ftlContent = '';
obj.collection.modules = new Map();
},
getPackageCollection() {
return packages;
},
collection: {
modules: new Map(),
packages: {
getAll: (fn) => {
packages.forEach(items => {
items.forEach(pkg => fn(pkg));
});
},
get: (name, version) => {
if (packages.has(name)) {
return packages.get(name).get(version);
}
},
add: (pkg) => {
const name = pkg.props.meta.name;
const version = pkg.props.meta.version;
if (packages.has(name)) {
pkg.isFlat = false;
packages.get(name).set(version, pkg);
}
else {
const record = packages.set(name, new Map());
pkg.isFlat = true;
record.get(name).set(version, pkg);
}
},
},
},
};
return obj;
}
exports.assembleContext = assembleContext;