UNPKG

beyond

Version:

The Full Stack Universal Typescript Framework

36 lines (29 loc) 1.15 kB
const InternalModule = require('./im'); const {join, resolve, sep} = require('path'); module.exports = class extends Map { constructor(files) { super(); files.forEach(({declaration: code, declarationMap: map}, filename) => { const id = `ns_${this.size}`; const im = new InternalModule(id, filename, {code, map}); this.set(filename, im); }); } resolve(id, from) { let module = (resolve('/', from, '..', id)); module = sep === '/' ? module : module.replace(/\//g, sep); module = module.slice(module.indexOf(sep) + 1); const extensions = ['ts', 'tsx']; let found; extensions.find(ext => { const filename = `${module}.${ext}`; return this.has(filename) ? !!(found = this.get(filename)) : false; }); if (found) return found; extensions.find(ext => { const filename = join(module, `index.${ext}`); return this.has(filename) ? !!(found = this.get(filename)) : false; }); if (found) return found; } }