UNPKG

@magic/core

Version:

@magic core. generate static pages and serverless lambdas. ~5kb client boilerplate.

38 lines (30 loc) 991 B
import path from 'path' import fs from '@magic/fs' import is from '@magic/types' import log from '@magic/log' import { saveImport } from '../../../lib/index.mjs' export const findLocalModules = async dir => { let modules = {} const assetModules = await fs.getFiles(dir) const assetPromises = assetModules .filter(m => is.case.upper(path.basename(m)[0])) .filter(m => ['.mjs', '.js'].some(ext => m.endsWith(ext))) .map(async m => { try { const name = path.basename(m).replace(path.extname(m), '') const mod = await saveImport(m) if (mod.default) { modules[name] = mod.default } else if (is.fn(mod)) { modules[name] = mod } else { modules[name] = { ...mod } } } catch (e) { const stack = e.stack.split('at') log.error('Error', `requiring local magic-module: ${m}, error:`, stack[0], stack[1]) } }) await Promise.all(assetPromises) return modules }