Add schema assertions on public methods of @0xproject/sol-compiler
This commit is contained in:
parent
ed5b9c2b56
commit
549e6d57c4
@ -72,6 +72,7 @@
|
||||
"zeppelin-solidity": "1.8.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0xproject/assert": "0.2.10",
|
||||
"@0xproject/json-schemas": "0.7.22",
|
||||
"@0xproject/sol-resolver": "^0.0.5",
|
||||
"@0xproject/types": "^0.7.0",
|
||||
|
@ -35,7 +35,7 @@ const SEPARATOR = ',';
|
||||
: argv.contracts === DEFAULT_CONTRACTS_LIST
|
||||
? DEFAULT_CONTRACTS_LIST
|
||||
: argv.contracts.split(SEPARATOR);
|
||||
const opts: CompilerOptions = {
|
||||
const opts = {
|
||||
contractsDir: argv.contractsDir,
|
||||
artifactsDir: argv.artifactsDir,
|
||||
contracts,
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { assert } from '@0xproject/assert';
|
||||
import { schemas } from '@0xproject/json-schemas';
|
||||
import {
|
||||
ContractSource,
|
||||
ContractSources,
|
||||
@ -22,6 +24,7 @@ import * as requireFromString from 'require-from-string';
|
||||
import * as semver from 'semver';
|
||||
import solc = require('solc');
|
||||
|
||||
import { compilerOptionsSchema } from './schemas/compiler_options_schema';
|
||||
import { binPaths } from './solc/bin_paths';
|
||||
import {
|
||||
createDirIfDoesNotExistAsync,
|
||||
@ -81,10 +84,12 @@ export class Compiler {
|
||||
* @return An instance of the Compiler class.
|
||||
*/
|
||||
constructor(opts: CompilerOptions) {
|
||||
assert.doesConformToSchema('opts', opts, compilerOptionsSchema);
|
||||
// TODO: Look for config file in parent directories if not found in current directory
|
||||
const config: CompilerOptions = fs.existsSync(CONFIG_FILE)
|
||||
? JSON.parse(fs.readFileSync(CONFIG_FILE).toString())
|
||||
: {};
|
||||
assert.doesConformToSchema('compiler.json', config, compilerOptionsSchema);
|
||||
this._contractsDir = opts.contractsDir || config.contractsDir || DEFAULT_CONTRACTS_DIR;
|
||||
this._solcVersionIfExists = opts.solcVersion || config.solcVersion;
|
||||
this._compilerSettings = opts.compilerSettings || config.compilerSettings || DEFAULT_COMPILER_SETTINGS;
|
||||
|
26
packages/sol-compiler/src/schemas/compiler_options_schema.ts
Normal file
26
packages/sol-compiler/src/schemas/compiler_options_schema.ts
Normal file
@ -0,0 +1,26 @@
|
||||
export const compilerOptionsSchema = {
|
||||
id: '/CompilerOptions',
|
||||
properties: {
|
||||
contractsDir: { type: 'string' },
|
||||
artifactsDir: { type: 'string' },
|
||||
solcVersion: { type: 'string', pattern: '^d+.d+.d+$' },
|
||||
compilerSettings: { type: 'object' },
|
||||
contracts: {
|
||||
oneOf: [
|
||||
{
|
||||
type: 'string',
|
||||
pattern: '^\\*$',
|
||||
},
|
||||
{
|
||||
type: 'array',
|
||||
items: {
|
||||
type: 'string',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
type: 'object',
|
||||
required: [],
|
||||
additionalProperties: false,
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user