@microsoft/api-extractor
Version:
Validate, document, and review the exported API for a TypeScript library
67 lines (66 loc) • 3.08 kB
TypeScript
import { IApiPackage } from './api/ApiItem';
import ApiDefinitionReference from './ApiDefinitionReference';
import AstPackage from './ast/AstPackage';
import ResolvedApiItem from './ResolvedApiItem';
import { IReferenceResolver } from './aedoc/ApiDocumentation';
/**
* Used to describe a parsed package name in the form of
* scopedName/packageName. Ex: @microsoft/sp-core-library.
*/
export interface IParsedScopeName {
/**
* The scope prefix. Ex: @microsoft.
*/
scope: string;
/**
* The specific package name. Ex: sp-core-library.
*/
name: string;
}
/**
* A loader for locating the ApiItem associated with a given project and API item, or
* for locating an AstItem locally.
* No processing on the ApiItem orAstItem should be done in this class, this class is only
* concerned with communicating state.
* The ApiItem can then be used to enforce correct API usage, like enforcing internal.
* To use DocItemLoader: provide a projectFolder to construct a instance of the DocItemLoader,
* then use DocItemLoader.getItem to retrieve the ApiItem of a particular API item.
*/
export default class DocItemLoader implements IReferenceResolver {
private _cache;
private _projectFolder;
/**
* The projectFolder is the top-level folder containing package.json for a project
* that we are compiling.
*/
constructor(projectFolder: string);
/**
* {@inheritdoc IReferenceResolver.resolve}
*/
resolve(apiDefinitionRef: ApiDefinitionReference, astPackage: AstPackage, warnings: string[]): ResolvedApiItem | undefined;
/**
* Resolution of API definition references in the scenario that the reference given indicates
* that we should search within the current AstPackage to resolve.
* No processing on the AstItem should be done here, this class is only concerned
* with communicating state.
*/
resolveLocalReferences(apiDefinitionRef: ApiDefinitionReference, astPackage: AstPackage, warnings: string[]): ResolvedApiItem | undefined;
/**
* Resolution of API definition references in the scenario that the reference given indicates
* that we should search outside of this AstPackage and instead search within the JSON API file
* that is associated with the apiDefinitionRef.
*/
resolveJsonReferences(apiDefinitionRef: ApiDefinitionReference, warnings: string[]): ResolvedApiItem | undefined;
/**
* Attempts to locate and load the IApiPackage object from the project folder's
* node modules. If the package already exists in the cache, nothing is done.
*
* @param apiDefinitionRef - interface with properties pertaining to the API definition reference
*/
getPackage(apiDefinitionRef: ApiDefinitionReference): IApiPackage | undefined;
/**
* Loads the API documentation json file and validates that it conforms to our schema. If it does,
* then the json file is saved in the cache and returned.
*/
loadPackageIntoCache(apiJsonFilePath: string, cachePackageName: string): IApiPackage;
}