UNPKG

onelang

Version:

OneLang transpiler framework core

51 lines 2.69 kB
(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