onelang
Version:
OneLang transpiler framework core
51 lines • 2.69 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports"], factory);
}
})(function (require, exports) {
"use strict";
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
Object.defineProperty(exports, "__esModule", { value: true });
class PackagesFolderSource {
constructor(packagesDir = "packages") {
this.packagesDir = packagesDir;
}
getPackageBundle(ids, cachedOnly) {
throw new Error("Method not implemented.");
}
async getAllCached() {
const fs = await (__syncRequire ? Promise.resolve().then(() => require("fs")) : new Promise((resolve_1, reject_1) => { require(["fs"], resolve_1, reject_1); }));
const glob = await (__syncRequire ? Promise.resolve().then(() => require("glob")) : new Promise((resolve_2, reject_2) => { require(["glob"], resolve_2, reject_2); }));
const path = await (__syncRequire ? Promise.resolve().then(() => require("path")) : new Promise((resolve_3, reject_3) => { require(["path"], resolve_3, reject_3); }));
const packages = {};
const allFiles = glob.sync(`${this.packagesDir}/**/*`, { nodir: true });
for (const fn of allFiles) {
const [type, pkgDir, ...pathParts] = path.relative(this.packagesDir, fn).split("/"); // [0]=implementations/interfaces, [1]=package-name, [2:]=path
if (type !== "implementations" && type !== "interfaces")
continue; // skip e.g. bundle.json
let pkg = packages[`${type}/${pkgDir}`];
if (!pkg) {
const pkgDirParts = pkgDir.split("-");
const version = pkgDirParts.pop().replace(/^v/, "");
pkg = packages[`${type}/${pkgDir}`] = {
id: {
name: pkgDirParts.join("-"),
type: type === "implementations" ? "Implementation" : "Interface",
version
},
fromCache: true,
files: {}
};
}
pkg.files[pathParts.join("/")] = fs.readFileSync(fn, "utf-8");
}
return { packages: Object.values(packages) };
}
}
exports.PackagesFolderSource = PackagesFolderSource;
});
//# sourceMappingURL=PackagesFolderSource.js.map