@Override public Reader getInputReader() { return new InputStreamReader(getInputStream()); }
@Override public Reader getInputReader() { return new InputStreamReader(getInputStream()); }
@Override public InputStream getInputStream() { BOMInputStream bs = new BOMInputStream(super.getInputStream(), false, ByteOrderMark.UTF_8, ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_32LE, ByteOrderMark.UTF_32BE); try { if (bs.hasBOM()) { System.err.println("removing BOM " + bs.getBOM()); } return bs; } catch (IOException e) { return super.getInputStream(); } } };
@Override public InputStream getInputStream() { BOMInputStream bs = new BOMInputStream(super.getInputStream(), false, ByteOrderMark.UTF_8, ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_32LE, ByteOrderMark.UTF_32BE); try { if (bs.hasBOM()) { System.err.println("removing BOM " + bs.getBOM()); } return bs; } catch (IOException e) { return super.getInputStream(); } } };
@Override public InputStream getInputStream() { String moduleSource = null; try (final InputStream inputStream = super.getInputStream()) { moduleSource = IOUtils.toString(inputStream); } catch (IOException e) { Assertions.UNREACHABLE(e.getMessage()); } String wrapperSource = null; String ext = FilenameUtils.getExtension(getFile().toString()).toLowerCase(); if (ext.equals("js")) { // JS file -> use module wrapper wrapperSource = MODULE_WRAPPER_SOURCE; } else if (ext.equals("json")) { // JSON file -> use JSON wrapper wrapperSource = JSON_WRAPPER_SOURCE; } else { // No clue -> try module wrapper System.err.println("NodejsRequiredSourceModule: Unsupported file type ("+ext+"), continue anyway."); wrapperSource = MODULE_WRAPPER_SOURCE; } String wrappedModuleSource = wrapperSource .replace(FILENAME_PLACEHOLDER, getFile().getName()) .replace(DIRNAME_PLACEHOLDER, getFile().getParent()) .replace(CODE_PLACEHOLDER, moduleSource); return IOUtils.toInputStream(wrappedModuleSource); }