parent
593c14c44a
commit
a25f1ef088
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"presets": ["@nrwl/react/babel"], |
||||||
|
"plugins": [] |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
{ |
||||||
|
"env": { |
||||||
|
"browser": true, |
||||||
|
"es6": true |
||||||
|
}, |
||||||
|
"extends": "../../../.eslintrc", |
||||||
|
"globals": { |
||||||
|
"Atomics": "readonly", |
||||||
|
"SharedArrayBuffer": "readonly" |
||||||
|
}, |
||||||
|
"parserOptions": { |
||||||
|
"ecmaVersion": 11, |
||||||
|
"sourceType": "module" |
||||||
|
}, |
||||||
|
"rules": { |
||||||
|
"no-unused-vars": "off", |
||||||
|
"@typescript-eslint/no-unused-vars": "error" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,7 @@ |
|||||||
|
# remix-ui-renderer |
||||||
|
|
||||||
|
This library was generated with [Nx](https://nx.dev). |
||||||
|
|
||||||
|
## Running unit tests |
||||||
|
|
||||||
|
Run `nx test remix-ui-renderer` to execute the unit tests via [Jest](https://jestjs.io). |
@ -0,0 +1 @@ |
|||||||
|
export * from './lib/renderer' |
@ -0,0 +1,63 @@ |
|||||||
|
import React from 'react' //eslint-disable-line
|
||||||
|
|
||||||
|
interface RendererProps { |
||||||
|
message: any; |
||||||
|
opt: any, |
||||||
|
warningErrors: any |
||||||
|
editor: any |
||||||
|
} |
||||||
|
|
||||||
|
export const Renderer = ({ message, opt, editor }: RendererProps) => { |
||||||
|
const getPositionDetails = (msg: any) => { |
||||||
|
const result = { } as Record<string, number | string> |
||||||
|
|
||||||
|
// To handle some compiler warning without location like SPDX license warning etc
|
||||||
|
if (!msg.includes(':')) return { errLine: -1, errCol: -1, errFile: msg } |
||||||
|
|
||||||
|
// extract line / column
|
||||||
|
let position = msg.match(/^(.*?):([0-9]*?):([0-9]*?)?/) |
||||||
|
result.errLine = position ? parseInt(position[2]) - 1 : -1 |
||||||
|
result.errCol = position ? parseInt(position[3]) : -1 |
||||||
|
|
||||||
|
// extract file
|
||||||
|
position = msg.match(/^(https:.*?|http:.*?|.*?):/) |
||||||
|
result.errFile = position ? position[1] : '' |
||||||
|
return result |
||||||
|
} |
||||||
|
|
||||||
|
const handlePointToErrorOnClick = (location, fileName) => { |
||||||
|
editor.call('editor', 'discardHighlight') |
||||||
|
editor.call('editor', 'highlight', location, fileName) |
||||||
|
} |
||||||
|
|
||||||
|
if (!message) return |
||||||
|
let position = getPositionDetails(message) |
||||||
|
if (!position.errFile || (opt.errorType && opt.errorType === position.errFile)) { |
||||||
|
// Updated error reported includes '-->' before file details
|
||||||
|
const errorDetails = message.split('-->') |
||||||
|
// errorDetails[1] will have file details
|
||||||
|
if (errorDetails.length > 1) position = getPositionDetails(errorDetails[1]) |
||||||
|
} |
||||||
|
opt.errLine = position.errLine |
||||||
|
opt.errCol = position.errCol |
||||||
|
opt.errFile = position.errFile.trim() |
||||||
|
const classList = opt.type === 'error' ? 'alert alert-danger' : 'alert alert-warning' |
||||||
|
return ( |
||||||
|
<div> |
||||||
|
<div className={`sol ${opt.type} ${classList}`}> |
||||||
|
<div className="close" data-id="renderer"> |
||||||
|
<i className="fas fa-times"></i> |
||||||
|
</div> |
||||||
|
<span className='d-flex flex-column' onClick={() => handlePointToErrorOnClick(opt.location, opt.fileName)}> |
||||||
|
<span className='h6 font-weight-bold'>{opt.name}</span> |
||||||
|
{ opt.item.warning } |
||||||
|
{opt.item.more |
||||||
|
? <span><a href={opt.item.more} target='_blank'>more</a></span> |
||||||
|
: <span> </span> |
||||||
|
} |
||||||
|
<span title={`Position in ${opt.errFile}`}>Pos: {opt.locationString}</span> |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
) |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
{ |
||||||
|
"extends": "../../../tsconfig.json", |
||||||
|
"compilerOptions": { |
||||||
|
"jsx": "react", |
||||||
|
"allowJs": true, |
||||||
|
"esModuleInterop": true, |
||||||
|
"allowSyntheticDefaultImports": true |
||||||
|
}, |
||||||
|
"files": [], |
||||||
|
"include": [], |
||||||
|
"references": [ |
||||||
|
{ |
||||||
|
"path": "./tsconfig.lib.json" |
||||||
|
} |
||||||
|
] |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
{ |
||||||
|
"extends": "./tsconfig.json", |
||||||
|
"compilerOptions": { |
||||||
|
"outDir": "../../../dist/out-tsc", |
||||||
|
"types": ["node"] |
||||||
|
}, |
||||||
|
"files": [ |
||||||
|
"../../../node_modules/@nrwl/react/typings/cssmodule.d.ts", |
||||||
|
"../../../node_modules/@nrwl/react/typings/image.d.ts" |
||||||
|
], |
||||||
|
"exclude": ["**/*.spec.ts", "**/*.spec.tsx"], |
||||||
|
"include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] |
||||||
|
} |
Loading…
Reference in new issue