chore(typescript): improve typings for external js-only depdendencies
+ 33
- 18
app/services/codeAnalysis/types.ts
@@ -1,7 +1,7 @@
 // 1st-party
 import type { ServiceApiContract } from "@ethicdevs/react-monolith";
 // app
-import type { LanguageDetectFn } from "../../types";
+import type { LanguageDetectFn, LanguagesMap } from "../../types";
 
 export interface LinguistFileInfos {
   color: string;

...
@@ -26,21 +26,5 @@ export interface CodeAnalysisServiceDeps {
   languageDetect: LanguageDetectFn;
 
   // types for NPM package's: language-map
-  languagesMap: {
-    [languageName: string]: {
-      aceMode: string;
-      aliases?: string[];
-      color?: string;
-      codemirrorMode?: string;
-      codemirrorMimeType?: string;
-      extensions?: string[];
-      filenames?: string[];
-      group?: string;
-      interpreters?: string[];
-      languageId: number;
-      tmScope: string;
-      type: string;
-      wrap?: boolean;
-    };
-  };
+  languagesMap: LanguagesMap;
 }

@@ -35,6 +35,24 @@ export interface LanguageDetectFn {
   classify: (content: string) => string | null;
 }
 
+export interface LanguagesMap {
+  [languageName: string]: {
+    aceMode: string;
+    aliases?: string[];
+    color?: string;
+    codemirrorMode?: string;
+    codemirrorMimeType?: string;
+    extensions?: string[];
+    filenames?: string[];
+    group?: string;
+    interpreters?: string[];
+    languageId: number;
+    tmScope: string;
+    type: string;
+    wrap?: boolean;
+  };
+}
+
 export interface RepositoryHead {
   treeId: string;
   parentId: null | string;

types/language-detect.d.ts
@@ -1 +1,7 @@
+import type { LanguageDetectFn } from "../app/types";
+
 declare module "language-detect";
+
+export declare const languageDetect: LanguageDetectFn;
+
+export default languageDetect;

new file
types/language-map.d.ts
@@ -0,0 +1,7 @@
+import type { LanguagesMap } from "../app/types";
+
+declare module "language-map";
+
+export declare const languagesMap: LanguagesMap;
+
+export default languagesMap;