@truffle/compile-solidity
Version:
Compiler helper and artifact manager for Solidity files
35 lines (28 loc) • 1.21 kB
text/typescript
const expect = require("@truffle/expect");
import type Config from "@truffle/config";
export const normalizeOptions = (options: Config) => {
if (options.logger === undefined) options.logger = console;
expect.options(options, ["contracts_directory", "compilers"]);
expect.options(options.compilers, ["solc"]);
options.compilers.solc.settings.evmVersion =
options.compilers.solc.settings.evmVersion ||
options.compilers.solc.evmVersion;
options.compilers.solc.settings.optimizer =
options.compilers.solc.settings.optimizer ||
options.compilers.solc.optimizer ||
{};
// Grandfather in old solc config
if (options.solc) {
options.compilers.solc.settings.evmVersion = options.solc.evmVersion;
options.compilers.solc.settings.optimizer = options.solc.optimizer;
}
// Certain situations result in `{}` as a value for compilationTargets
// Previous implementations treated any value lacking `.length` as equivalent
// to `[]`
// (This also happens when run() is called from sources(), so
// compilationTargets is not passed)
if (!options.compilationTargets || !options.compilationTargets.length) {
options.compilationTargets = [];
}
return options;
};