Fix linting errors

pull/1339/head
ioedeveloper 4 years ago
parent 936f4e81f8
commit 241b334c4f
  1. 30
      libs/remix-ui/publish-to-storage/.eslintrc
  2. 33
      libs/remix-ui/publish-to-storage/src/lib/publish-to-storage.tsx
  3. 2
      libs/remix-ui/publish-to-storage/src/lib/publishOnSwarm.tsx
  4. 2
      libs/remix-ui/publish-to-storage/src/lib/publishToIPFS.tsx
  5. 31
      libs/remix-ui/solidity-compiler/.eslintrc
  6. 20
      libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx
  7. 52
      libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx
  8. 4
      libs/remix-ui/solidity-compiler/src/lib/logic/compiler-helpers.ts
  9. 2
      libs/remix-ui/solidity-compiler/src/lib/logic/compiler-utils.ts
  10. 2
      libs/remix-ui/solidity-compiler/src/lib/logic/index.ts
  11. 4
      libs/remix-ui/solidity-compiler/src/lib/reducers/compiler.ts
  12. 12
      libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx
  13. 4
      package.json

@ -1,16 +1,18 @@
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"jsx": "react",
"allowJs": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true
"env": {
"browser": true,
"es6": true
},
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
}
]
}
"extends": "../../../.eslintrc",
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 11,
"sourceType": "module"
},
"rules": {
"standard/no-callback-literal": "off"
}
}

@ -1,6 +1,6 @@
import React, { useEffect, useState } from 'react' // eslint-disable-line
import { ModalDialog } from '@remix-ui/modal-dialog' // eslint-disable-line
import { RemixUiPublishToStorageProps } from './types'
import { RemixUiPublishToStorageProps } from './types' // eslint-disable-line
import { publishToIPFS } from './publishToIPFS'
import { publishToSwarm } from './publishOnSwarm'
@ -31,10 +31,11 @@ export const PublishToStorage = (props: RemixUiPublishToStorageProps) => {
// triggered each time there's a new verified publish (means hash correspond)
fileProvider.addExternal('swarm/' + result.item.hash, result.item.content)
} catch (err) {
let parseError = err
try {
err = JSON.stringify(err)
parseError = JSON.stringify(err)
} catch (e) {}
modal(`Swarm Publish Failed`, publishMessageFailed(storage, err))
modal('Swarm Publish Failed', publishMessageFailed(storage, parseError))
}
} else {
try {
@ -44,7 +45,7 @@ export const PublishToStorage = (props: RemixUiPublishToStorageProps) => {
// triggered each time there's a new verified publish (means hash correspond)
fileProvider.addExternal('ipfs/' + result.item.hash, result.item.content)
} catch (err) {
modal(`IPFS Publish Failed`, publishMessageFailed(storage, err))
modal('IPFS Publish Failed', publishMessageFailed(storage, err))
}
}
}
@ -67,7 +68,7 @@ export const PublishToStorage = (props: RemixUiPublishToStorageProps) => {
const publishMessageFailed = (storage, err) => (
<span>Failed to publish metadata file to { storage }, please check the { storage } gateways is available. <br />
{err}
{err}
</span>
)
@ -86,23 +87,23 @@ export const PublishToStorage = (props: RemixUiPublishToStorageProps) => {
...prevState.modal,
hide: false,
message,
title,
title
}
}
})
}
return (
<ModalDialog
id='publishToStorage'
title={ state.modal.title }
message={ state.modal.message }
hide={ state.modal.hide }
okLabel='OK'
okFn={() => {}}
handleHide={ handleHideModal }>
{ (typeof state.modal.message !== 'string') && state.modal.message }
</ModalDialog>
<ModalDialog
id='publishToStorage'
title={ state.modal.title }
message={ state.modal.message }
hide={ state.modal.hide }
okLabel='OK'
okFn={() => {}}
handleHide={ handleHideModal }>
{ (typeof state.modal.message !== 'string') && state.modal.message }
</ModalDialog>
)
}

@ -6,7 +6,7 @@ export const publishToSwarm = async (contract, fileManager) => {
// gather list of files to publish
const sources = []
let metadata
let item = { content: null, hash: null }
const item = { content: null, hash: null }
const uploaded = []
try {

@ -10,7 +10,7 @@ export const publishToIPFS = async (contract, fileManager) => {
// gather list of files to publish
const sources = []
let metadata
let item = { content: null, hash: null }
const item = { content: null, hash: null }
const uploaded = []
try {

@ -1,16 +1,19 @@
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"jsx": "react",
"allowJs": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true
"env": {
"browser": true,
"es6": true
},
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
}
]
}
"extends": "../../../.eslintrc",
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 11,
"sourceType": "module"
},
"rules": {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error"
}
}

@ -60,13 +60,13 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
const optimize = params.optimize === 'false' ? false : params.optimize === 'true' ? true : null
const runs = params.runs
const evmVersion = params.evmVersion
return {
...prevState,
hideWarnings: config.get('hideWarnings') || false,
autoCompile: config.get('autoCompile') || false,
includeNightlies: config.get('includeNightlies') || false,
optimise: (optimize !== null) && (optimize !== undefined) ? optimize : config.get('optimise') || false,
optimise: (optimize !== null) && (optimize !== undefined) ? optimize : config.get('optimise') || false,
runs: (runs !== null) && (runs !== 'null') && (runs !== undefined) && (runs !== 'undefined') ? runs : 200,
evmVersion: (evmVersion !== null) && (evmVersion !== 'null') && (evmVersion !== undefined) && (evmVersion !== 'undefined') ? evmVersion : 'default'
}
@ -100,7 +100,7 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
resetCompilerMode()(dispatch)
break
case 'compilationFinished':
compilationFinished(compilerContainer.compiler.args)
compilationFinished()
resetCompilerMode()(dispatch)
break
}
@ -274,11 +274,11 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
if (state.autoCompile) compile()
}
const compilationFinished = ({ success, data, source }) => {
if (!compileIcon.current) return
compileIcon.current.setAttribute('title', 'idle')
compileIcon.current.classList.remove('remixui_spinningIcon')
compileIcon.current.classList.remove('remixui_bouncingIcon')
const compilationFinished = () => {
if (!compileIcon.current) return
compileIcon.current.setAttribute('title', 'idle')
compileIcon.current.classList.remove('remixui_spinningIcon')
compileIcon.current.classList.remove('remixui_bouncingIcon')
}
const scheduleCompilation = () => {
@ -490,7 +490,7 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
setHardHatCompilation(checked)
}
/*
/*
The following functions map with the above event handlers.
They are an external API for modifying the compiler configuration.
*/
@ -514,7 +514,7 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
<select value={ state.selectedVersion || state.defaultVersion } onChange={(e) => handleLoadVersion(e.target.value) } className="custom-select" id="versionSelector" disabled={state.allversions.length <= 0}>
{ state.allversions.length <= 0 && <option disabled data-id={state.selectedVersion === state.defaultVersion ? 'selected' : ''}>{ state.defaultVersion }</option> }
{ state.allversions.length <= 0 && <option disabled data-id={state.selectedVersion === 'builtin' ? 'selected' : ''}>builtin</option> }
{ state.customVersions.map((url, i) => <option key={i} data-id={state.selectedVersion === url ? 'selected' : ''} value={url}>custom</option> )}
{ state.customVersions.map((url, i) => <option key={i} data-id={state.selectedVersion === url ? 'selected' : ''} value={url}>custom</option>)}
{ state.allversions.map((build, i) => {
return _shouldBeAdded(build.longVersion)
? <option key={i} value={build.path} data-id={state.selectedVersion === build.path ? 'selected' : ''}>{build.longVersion}</option>

@ -1,8 +1,8 @@
import React, { useState, useEffect } from 'react' // eslint-disable-line
import { ContractSelectionProps } from './types'
import { PublishToStorage } from '@remix-ui/publish-to-storage'
import { TreeView, TreeViewItem } from '@remix-ui/tree-view'
import { CopyToClipboard } from '@remix-ui/clipboard'
import { PublishToStorage } from '@remix-ui/publish-to-storage' // eslint-disable-line
import { TreeView, TreeViewItem } from '@remix-ui/tree-view' // eslint-disable-line
import { CopyToClipboard } from '@remix-ui/clipboard' // eslint-disable-line
import './css/style.css'
@ -61,7 +61,7 @@ export const ContractSelection = (props: ContractSelectionProps) => {
return content
// addTooltip('Copied value to clipboard')
}
const getContractProperty = (property) => {
if (!selectedContract) throw new Error('No contract compiled yet')
const contractProperties = contractsDetails[selectedContract]
@ -78,9 +78,9 @@ export const ContractSelection = (props: ContractSelectionProps) => {
return (
<TreeViewItem id={`treeViewItem${key}`} key={keyPath} label={
<div className="d-flex mt-2 flex-row remixui_label_item">
<label className="small font-weight-bold pr-1 remixui_label_key">{ key }:</label>
<label className="m-0 remixui_label_value">{ data.self }</label>
</div>
<label className="small font-weight-bold pr-1 remixui_label_key">{ key }:</label>
<label className="m-0 remixui_label_value">{ data.self }</label>
</div>
}>
<TreeView id={`treeView${key}`} key={keyPath}>
{children}
@ -90,15 +90,15 @@ export const ContractSelection = (props: ContractSelectionProps) => {
} else {
return <TreeViewItem id={key.toString()} key={keyPath} label={
<div className="d-flex mt-2 flex-row remixui_label_item">
<label className="small font-weight-bold pr-1 remixui_label_key">{ key }:</label>
<label className="m-0 remixui_label_value">{ data.self }</label>
</div>
<label className="small font-weight-bold pr-1 remixui_label_key">{ key }:</label>
<label className="m-0 remixui_label_value">{ data.self }</label>
</div>
} />
}
}
const extractData = (item) => {
let ret = { children: null, self: null }
const ret = { children: null, self: null }
if (item instanceof Array) {
ret.children = item.map((item, index) => ({ key: index, value: item }))
@ -121,16 +121,16 @@ export const ContractSelection = (props: ContractSelectionProps) => {
if (details[propertyName] !== '') {
try {
node = <div>
{ (typeof details[propertyName] === 'object') ?
<TreeView id="treeView">
{
Object.keys(details[propertyName]).map((innerkey) => renderData(details[propertyName][innerkey], innerkey, innerkey))
}
</TreeView> : <TreeView id="treeView">
{
Object.keys(JSON.parse(details[propertyName])).map((innerkey) => renderData(JSON.parse(details[propertyName])[innerkey], innerkey, innerkey))
}
</TreeView>
{ (typeof details[propertyName] === 'object')
? <TreeView id="treeView">
{
Object.keys(details[propertyName]).map((innerkey) => renderData(details[propertyName][innerkey], innerkey, innerkey))
}
</TreeView> : <TreeView id="treeView">
{
Object.keys(JSON.parse(details[propertyName])).map((innerkey) => renderData(JSON.parse(details[propertyName])[innerkey], innerkey, innerkey))
}
</TreeView>
}
</div> // catch in case the parsing fails.
} catch (e) {
@ -147,7 +147,7 @@ export const ContractSelection = (props: ContractSelectionProps) => {
const details = () => {
if (!selectedContract) throw new Error('No contract compiled yet')
const help = {
Assembly: 'Assembly opcodes describing the contract including corresponding solidity source code',
Opcodes: 'Assembly opcodes describing the contract',
@ -168,7 +168,7 @@ export const ContractSelection = (props: ContractSelectionProps) => {
Object.keys(contractProperties).map((propertyName, index) => {
const copyDetails = <span className="remixui_copyDetails"><CopyToClipboard content={contractProperties[propertyName]} direction='top' /></span>
const questionMark = <span className="remixui_questionMark"><i title={ help[propertyName] } className="fas fa-question-circle" aria-hidden="true"></i></span>
return (<div className="remixui_log" key={index}>
<div className="remixui_key">{ propertyName } { copyDetails } { questionMark }</div>
{ insertValue(contractProperties, propertyName) }
@ -187,8 +187,8 @@ export const ContractSelection = (props: ContractSelectionProps) => {
return (
// define swarm logo
<>
{ contractList.length ?
<section className="remixui_compilerSection pt-3">
{ contractList.length
? <section className="remixui_compilerSection pt-3">
{/* Select Compiler Version */}
<div className="mb-3">
<label className="remixui_compilerLabel form-check-label" htmlFor="compiledContracts">Contract</label>
@ -197,7 +197,7 @@ export const ContractSelection = (props: ContractSelectionProps) => {
</select>
</div>
<article className="mt-2 pb-0">
<button id="publishOnSwarm" className="btn btn-secondary btn-block" title="Publish on Swarm" onClick={() => { handlePublishToStorage('swarm')}}>
<button id="publishOnSwarm" className="btn btn-secondary btn-block" title="Publish on Swarm" onClick={() => { handlePublishToStorage('swarm') }}>
<span>Publish on Swarm</span>
<img id="swarmLogo" className="remixui_storageLogo ml-2" src="assets/img/swarm.webp" />
</button>

@ -4,7 +4,7 @@ import { Compiler } from '@remix-project/remix-solidity'
import { CompilerAbstract } from './compiler-abstract'
export const compile = async (compilationTargets, settings, contentResolverCallback) => {
return new Promise((resolve, reject) => {
return new Promise((resolve) => {
const compiler = new Compiler(contentResolverCallback)
compiler.set('evmVersion', settings.evmVersion)
compiler.set('optimize', settings.optimize)
@ -14,6 +14,6 @@ export const compile = async (compilationTargets, settings, contentResolverCallb
compiler.event.register('compilationFinished', (success, compilationData, source) => {
resolve(new CompilerAbstract(settings.version, compilationData, source))
})
compiler.event.register('compilerLoaded', _ => compiler.compile(compilationTargets, ''))
compiler.event.register('compilerLoaded', () => compiler.compile(compilationTargets, ''))
})
}

@ -38,7 +38,7 @@ function browserSupportWorker () {
// returns a promise for minixhr
export function promisedMiniXhr (url) {
return new Promise((resolve, reject) => {
return new Promise((resolve) => {
minixhr(url, (json, event) => {
resolve({ json, event })
})

@ -2,4 +2,4 @@ export * from './compileTabLogic'
export * from './compiler-abstract'
export * from './compiler-helpers'
export * from './compiler-utils'
export * from './contract-parser'
export * from './contract-parser'

@ -56,8 +56,8 @@ export const compilerReducer = (state = compilerInitialState, action: Action) =>
}
}
}
default:
throw new Error()
}
}
}

@ -1,15 +1,15 @@
import React, { useState } from 'react' // eslint-disable-line
import { SolidityCompilerProps } from './types'
import { CompilerContainer } from './compiler-container' // eslint-disable-line
import { ContractSelection } from './contract-selection'
import { ContractSelection } from './contract-selection' // eslint-disable-line
import { Toaster } from '@remix-ui/toaster' // eslint-disable-line
import { ModalDialog } from '@remix-ui/modal-dialog' // eslint-disable-line
import { Renderer } from '@remix-ui/renderer'
import { Renderer } from '@remix-ui/renderer' // eslint-disable-line
import './css/style.css'
export const SolidityCompiler = (props: SolidityCompilerProps) => {
const { plugin, plugin : { editor, config, queryParams, compileTabLogic, currentFile, fileProvider, fileManager, contractsDetails, contractMap, compileErrors, isHardHatProject, setHardHatCompilation, configurationSettings } } = props
const { plugin, plugin: { editor, config, queryParams, compileTabLogic, currentFile, fileProvider, fileManager, contractsDetails, contractMap, compileErrors, isHardHatProject, setHardHatCompilation, configurationSettings } } = props
const [state, setState] = useState({
contractsDetails: {},
eventHandlers: {},
@ -28,7 +28,7 @@ export const SolidityCompiler = (props: SolidityCompilerProps) => {
handleHide: null
}
})
const [currentVersion, setCurrentVersion] = useState('')
const [currentVersion, setCurrentVersion] = useState('')
const toast = (message: string) => {
setState(prevState => {
@ -36,10 +36,6 @@ export const SolidityCompiler = (props: SolidityCompilerProps) => {
})
}
const clearAnnotations = () => {
plugin.call('editor', 'clearAnnotations')
}
const updateCurrentVersion = (value) => {
setCurrentVersion(value)
plugin.setSelectedVersion(value)

@ -41,8 +41,8 @@
"workspace-schematic": "nx workspace-schematic",
"dep-graph": "nx dep-graph",
"help": "nx help",
"lint:libs": "nx run-many --target=lint --projects=remix-analyzer,remix-astwalker,remix-debug,remix-lib,remix-simulator,remix-solidity,remix-tests,remix-url-resolver,remixd,remix-ui-tree-view,remix-ui-modal-dialog,remix-ui-toaster,remix-ui-file-explorer,remix-ui-debugger-ui,remix-ui-workspace,remix-ui-static-analyser,remix-ui-checkbox,remix-ui-settings,remix-core-plugin",
"build:libs": "nx run-many --target=build --parallel=false --with-deps=true --projects=remix-analyzer,remix-astwalker,remix-debug,remix-lib,remix-simulator,remix-solidity,remix-tests,remix-url-resolver,remixd,remix-core-plugin",
"lint:libs": "nx run-many --target=lint --projects=remix-analyzer,remix-astwalker,remix-debug,remix-lib,remix-simulator,remix-solidity,remix-tests,remix-url-resolver,remixd,remix-ui-tree-view,remix-ui-modal-dialog,remix-ui-toaster,remix-ui-file-explorer,remix-ui-debugger-ui,remix-ui-workspace,remix-ui-static-analyser,remix-ui-checkbox,remix-ui-settings,remix-core-plugin,remix-ui-renderer,remix-ui-publish-to-storage,remix-ui-solidity-compiler",
"build:libs": "nx run-many --target=build --parallel=false --with-deps=true --projects=remix-analyzer,remix-astwalker,remix-debug,remix-lib,remix-simulator,remix-solidity,remix-tests,remix-url-resolver,remixd",
"test:libs": "nx run-many --target=test --projects=remix-analyzer,remix-astwalker,remix-debug,remix-lib,remix-simulator,remix-solidity,remix-tests,remix-url-resolver,remixd",
"publish:libs": "npm run build:libs && lerna publish --skip-git && npm run bumpVersion:libs",
"build:e2e": "tsc -p apps/remix-ide-e2e/tsconfig.e2e.json",

Loading…
Cancel
Save