80 lines
3.4 KiB
TypeScript
80 lines
3.4 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2013 Palantir Technologies, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
import * as ts from "typescript";
|
|
import * as Lint from "../index";
|
|
export interface IBlockRequirementDescriptor {
|
|
visibilities?: Visibility[];
|
|
}
|
|
export interface IClassRequirementDescriptor {
|
|
locations?: Location[];
|
|
privacies?: Privacy[];
|
|
}
|
|
export declare type RequirementDescriptor = IBlockRequirementDescriptor | IClassRequirementDescriptor;
|
|
export interface IRequirementDescriptors {
|
|
[type: string]: RequirementDescriptor;
|
|
}
|
|
export declare const ALL = "all";
|
|
export declare const ARGUMENT_CLASSES = "classes";
|
|
export declare const ARGUMENT_ENUMS = "enums";
|
|
export declare const ARGUMENT_FUNCTIONS = "functions";
|
|
export declare const ARGUMENT_INTERFACES = "interfaces";
|
|
export declare const ARGUMENT_METHODS = "methods";
|
|
export declare const ARGUMENT_NAMESPACES = "namespaces";
|
|
export declare const ARGUMENT_PROPERTIES = "properties";
|
|
export declare const ARGUMENT_TYPES = "types";
|
|
export declare const ARGUMENT_VARIABLES = "variables";
|
|
export declare const DESCRIPTOR_LOCATIONS = "locations";
|
|
export declare const DESCRIPTOR_PRIVACIES = "privacies";
|
|
export declare const DESCRIPTOR_VISIBILITIES = "visibilities";
|
|
export declare const LOCATION_INSTANCE = "instance";
|
|
export declare const LOCATION_STATIC = "static";
|
|
export declare const PRIVACY_PRIVATE = "private";
|
|
export declare const PRIVACY_PROTECTED = "protected";
|
|
export declare const PRIVACY_PUBLIC = "public";
|
|
export declare const VISIBILITY_EXPORTED = "exported";
|
|
export declare const VISIBILITY_INTERNAL = "internal";
|
|
export declare type All = typeof ALL;
|
|
export declare type DocType = All | typeof ARGUMENT_CLASSES | typeof ARGUMENT_ENUMS | typeof ARGUMENT_FUNCTIONS | typeof ARGUMENT_INTERFACES | typeof ARGUMENT_METHODS | typeof ARGUMENT_NAMESPACES | typeof ARGUMENT_PROPERTIES | typeof ARGUMENT_TYPES | typeof ARGUMENT_VARIABLES;
|
|
export declare type Location = All | typeof LOCATION_INSTANCE | typeof LOCATION_STATIC;
|
|
export declare type Privacy = All | typeof PRIVACY_PRIVATE | typeof PRIVACY_PROTECTED | typeof PRIVACY_PUBLIC;
|
|
export declare type Visibility = All | typeof VISIBILITY_EXPORTED | typeof VISIBILITY_INTERNAL;
|
|
export declare class Rule extends Lint.Rules.TypedRule {
|
|
static FAILURE_STRING_EXIST: string;
|
|
static defaultArguments: DocType[];
|
|
static ARGUMENT_DESCRIPTOR_BLOCK: {
|
|
properties: {
|
|
[x: string]: {
|
|
enum: string[];
|
|
type: string;
|
|
};
|
|
};
|
|
type: string;
|
|
};
|
|
static ARGUMENT_DESCRIPTOR_CLASS: {
|
|
properties: {
|
|
[x: string]: {
|
|
enum: string[];
|
|
type: string;
|
|
};
|
|
};
|
|
type: string;
|
|
};
|
|
static metadata: Lint.IRuleMetadata;
|
|
applyWithProgram(sourceFile: ts.SourceFile, program: ts.Program): Lint.RuleFailure[];
|
|
private getRequirements(ruleArguments);
|
|
}
|