els-addon-typed-templates
Version:
Ember Language Server Typed Templates
76 lines • 2.73 kB
TypeScript
import * as ts from "typescript";
import { Project } from '@lifeart/ember-language-server';
export declare function componentsForService(service: any, clean?: boolean): any;
declare type ProjectFile = {
version: number;
};
declare type TSMeta = {
version: number;
snapshot: ts.IScriptSnapshot;
};
declare type MatchResultType = 'helper' | 'service' | 'route' | 'controller' | 'modifier' | 'template' | 'component' | 'model' | 'transform' | 'adapter' | 'serializer';
export interface MatchResult {
type: MatchResultType;
name: string;
kind: string;
scope: string;
className?: string;
}
interface RegistryItem {
[key: string]: string[];
}
export interface LSRegistry {
'transform': RegistryItem;
'helper': RegistryItem;
'component': RegistryItem;
'routePath': RegistryItem;
'model': RegistryItem;
'service': RegistryItem;
'modifier': RegistryItem;
}
export interface LanguageServer {
getRegistry(root: string): LSRegistry;
}
interface ProjectMirror {
project: {
files: Map<string, ProjectFile>;
matchPathToType(filePath: string): null | MatchResult;
};
server: LanguageServer;
files: WeakMap<ProjectFile, TSMeta>;
}
export declare function registerProject(item: any, server: any): void;
export declare function serverForProject(root: string): LanguageServer;
export declare function matchPathToType(project: Project, uri: string): MatchResult | null;
export declare function typeForPath(root: string, uri: string): MatchResult | null;
export default class TypescriptService implements ts.LanguageServiceHost {
ts: ts.LanguageService;
registry: ts.DocumentRegistry;
tsConfig: {};
projectRoot: string;
project: ProjectMirror;
initialFiles: any;
constructor(projectRoot: string);
private getProjectFilesFromFolder;
private initialProjectFileStructure;
getDefaultLibFileName(opts: ts.CompilerOptions): string;
getCompilationSettings(): {
baseUrl: string;
allowJs: boolean;
checkJs: boolean;
allowSyntheticDefaultImports: boolean;
skipLibCheck: boolean;
experimentalDecorators: boolean;
noImplicitAny: boolean;
moduleResolution: ts.ModuleResolutionKind;
strictPropertyInitialization: boolean;
module: ts.ModuleKind;
};
getScriptFileNames(): any[];
getScriptVersion(fileName: string): string;
getScriptSnapshot(rawFileName: any): ts.IScriptSnapshot | undefined;
getCurrentDirectory(): string;
}
export declare function serviceForRoot(uri: any): ts.LanguageService;
export {};
//# sourceMappingURL=ts-service.d.ts.map