@slippy-lint/slippy
Version:
A simple but powerful linter for Solidity
182 lines (181 loc) • 5.3 kB
TypeScript
import { RuleDefinition } from "./types.js";
import * as z from "zod";
declare enum PredefinedFormats {
camelCase = 1,
strictCamelCase = 2,
PascalCase = 3,
StrictPascalCase = 4,
snake_case = 5,
UPPER_CASE = 6
}
declare enum UnderscoreOptions {
forbid = 1,
allow = 2,
require = 3,
requireDouble = 4,
allowDouble = 5,
allowSingleOrDouble = 6
}
export declare enum Selectors {
contract = 1,
interface = 2,
library = 4,
stateVariable = 8,
function = 16,
variable = 32,
struct = 64,
structMember = 128,
enum = 256,
enumMember = 512,
parameter = 1024,
modifier = 2048,
event = 4096,
eventParameter = 8192,
userDefinedValueType = 16384,
error = 32768,
errorParameter = 65536,
mappingParameter = 131072
}
export declare enum MetaSelectors {
default = -1,
typeLike = 53575,
variableLike = 208056
}
declare enum Modifiers {
constant = 1,
immutable = 2,
public = 4,
internal = 8,
private = 16,
external = 32,
view = 64,
pure = 128,
payable = 256,
virtual = 512,
override = 1024,
abstract = 2048,
noParameters = 4096,
hasParameters = 8192,
contract = 16384,
interface = 32768,
library = 65536
}
interface NormalizedMatchRegex {
match: boolean;
regex: RegExp;
}
interface NormalizedSelector {
custom: NormalizedMatchRegex | null;
filter: NormalizedMatchRegex | null;
format: PredefinedFormats[] | null;
leadingUnderscore: UnderscoreOptions | null;
modifiers: Modifiers[] | null;
modifierWeight: number;
selector: MetaSelectors | Selectors;
trailingUnderscore: UnderscoreOptions | null;
}
type NamingConventionNormalizedConfig = NormalizedSelector[];
export declare function normalizeConfig(userConfig: Config): NamingConventionNormalizedConfig;
export declare const Schema: z.ZodDefault<z.ZodArray<z.ZodObject<{
custom: z.ZodOptional<z.ZodObject<{
match: z.ZodBoolean;
regex: z.ZodString;
}, z.core.$strip>>;
filter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
match: z.ZodBoolean;
regex: z.ZodString;
}, z.core.$strip>]>>;
format: z.ZodNullable<z.ZodArray<z.ZodEnum<{
camelCase: "camelCase";
strictCamelCase: "strictCamelCase";
PascalCase: "PascalCase";
StrictPascalCase: "StrictPascalCase";
snake_case: "snake_case";
UPPER_CASE: "UPPER_CASE";
}>>>;
leadingUnderscore: z.ZodOptional<z.ZodEnum<{
forbid: "forbid";
allow: "allow";
require: "require";
requireDouble: "requireDouble";
allowDouble: "allowDouble";
allowSingleOrDouble: "allowSingleOrDouble";
}>>;
modifiers: z.ZodOptional<z.ZodArray<z.ZodEnum<{
virtual: "virtual";
override: "override";
contract: "contract";
interface: "interface";
library: "library";
constant: "constant";
immutable: "immutable";
public: "public";
internal: "internal";
private: "private";
external: "external";
view: "view";
pure: "pure";
payable: "payable";
abstract: "abstract";
noParameters: "noParameters";
hasParameters: "hasParameters";
}>>>;
selector: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodEnum<{
function: "function";
error: "error";
enum: "enum";
contract: "contract";
interface: "interface";
library: "library";
stateVariable: "stateVariable";
variable: "variable";
struct: "struct";
structMember: "structMember";
enumMember: "enumMember";
parameter: "parameter";
modifier: "modifier";
event: "event";
eventParameter: "eventParameter";
userDefinedValueType: "userDefinedValueType";
errorParameter: "errorParameter";
mappingParameter: "mappingParameter";
}>, z.ZodEnum<{
default: "default";
typeLike: "typeLike";
variableLike: "variableLike";
}>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
function: "function";
error: "error";
enum: "enum";
contract: "contract";
interface: "interface";
library: "library";
stateVariable: "stateVariable";
variable: "variable";
struct: "struct";
structMember: "structMember";
enumMember: "enumMember";
parameter: "parameter";
modifier: "modifier";
event: "event";
eventParameter: "eventParameter";
userDefinedValueType: "userDefinedValueType";
errorParameter: "errorParameter";
mappingParameter: "mappingParameter";
}>, z.ZodEnum<{
default: "default";
typeLike: "typeLike";
variableLike: "variableLike";
}>]>>]>;
trailingUnderscore: z.ZodOptional<z.ZodEnum<{
forbid: "forbid";
allow: "allow";
require: "require";
requireDouble: "requireDouble";
allowDouble: "allowDouble";
allowSingleOrDouble: "allowSingleOrDouble";
}>>;
}, z.core.$strip>>>;
type Config = z.infer<typeof Schema>;
export declare const NamingConvention: RuleDefinition<Config>;
export {};