Sha256: d331d315ee01be07810eca546ca49dd1973bc939c3071845fb559d0dd2b66646
Contents?: true
Size: 1.29 KB
Versions: 36
Compression:
Stored size: 1.29 KB
Contents
import { join } from 'std/path/mod.ts' import { parseFromString } from 'import-maps/resolve' const baseURL = new URL('file://') class ImportMapError extends Error { constructor(fileName, ...params) { super(...params) if (Error.captureStackTrace) { Error.captureStackTrace(this, ImportMapError) } this.name = 'ImportMapError' this.file = fileName } } export function readImportMap(fileName, rootDir) { let importMap if (fileName) { importMap = readFile(fileName, rootDir, true) } else { fileName = ['config/import_map.json', 'config/import_map.js'].find(f => { const result = readFile(f, rootDir) if (result) { importMap = result return true } }) } return importMap } function readFile(file, rootDir, required = false) { let contents = null try { contents = Deno.readTextFileSync(join(rootDir, file)) } catch (error) { if (required) { throw new ImportMapError(file, error.message, { cause: error }) } } if (contents === null) return null try { if (file.endsWith('.js')) { contents = JSON.stringify(eval(contents)(Deno.env.get('RAILS_ENV'))) } return parseFromString(contents, baseURL) } catch (error) { throw new ImportMapError(file, error.message, { cause: error }) } }
Version data entries
36 entries across 36 versions & 1 rubygems