@astrojs/ts-plugin 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ @astrojs/ts-plugin:build: cache hit, replaying output fd40d6ff4c3b0885
2
+ @astrojs/ts-plugin:build: $ astro-scripts build "src/**/*.ts"
package/CHANGELOG.md ADDED
@@ -0,0 +1,19 @@
1
+ # @astrojs/ts-plugin
2
+
3
+ ## 0.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - d056cd5: Fixes production bugs in extension
8
+
9
+ ## 0.2.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 6b6b47a: Remove internal astro.d.ts files, instead prefer the one provided by Astro itself
14
+
15
+ ## 0.1.1
16
+
17
+ ### Patch Changes
18
+
19
+ - f1f3091: Fix commenting, namespaced elements, and Fragment typings
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # @astrojs/ts-plugin
2
+
3
+ Work in progress TypeScript plugin adding support for `.astro` imports with proper typing
@@ -25,6 +25,7 @@ __export(exports, {
25
25
  AstroSnapshot: () => AstroSnapshot,
26
26
  AstroSnapshotManager: () => AstroSnapshotManager
27
27
  });
28
+ var import_astro2tsx = __toModule(require("./astro2tsx.js"));
28
29
  var import_source_mapper = __toModule(require("./source-mapper.js"));
29
30
  var import_utils = __toModule(require("./utils.js"));
30
31
  class AstroSnapshot {
@@ -219,7 +220,7 @@ class AstroSnapshotManager {
219
220
  const astroCode = readFile(path) || "";
220
221
  try {
221
222
  const isTsFile = true;
222
- const result = svelte2tsx(astroCode, {
223
+ const result = (0, import_astro2tsx.astro2tsx)(astroCode, {
223
224
  filename: path.split("/").pop(),
224
225
  isTsFile
225
226
  });
@@ -246,4 +247,4 @@ class AstroSnapshotManager {
246
247
  AstroSnapshot,
247
248
  AstroSnapshotManager
248
249
  });
249
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2FzdHJvLXNuYXBzaG90cy50cyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0EsMkJBQTZCO0FBQzdCLG1CQUE2RDtBQUV0RCxvQkFBb0I7QUFBQSxFQUt2QixZQUNZLFlBQ0EsVUFDQSxXQUNBLFFBQ0EsUUFDUSxVQUNsQjtBQU5VO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDUTtBQVJaLHdDQUErQjtBQUFBO0FBQUEsRUFXdkMsT0FBTyxXQUFtQixRQUFzQjtBQUM1QyxTQUFLLFlBQVk7QUFDakIsU0FBSyxTQUFTO0FBQ2QsU0FBSyxjQUFjO0FBQ25CLFNBQUssSUFBSTtBQUFBO0FBQUEsRUFHYixvQkFBb0IsVUFBMkM7QUFDM0QsUUFBSSxDQUFDLDhDQUE0QixLQUFLLFdBQVcsV0FBVztBQUN4RCxhQUFPO0FBQUE7QUFHWCxVQUFNLFFBQVEsS0FBSyxrQkFBa0IsU0FBUztBQUM5QyxRQUFJLFVBQVUsSUFBSTtBQUNkLGFBQU87QUFBQTtBQUlYLFdBQU87QUFBQSxNQUNIO0FBQUEsTUFDQSxRQUFRLFNBQVM7QUFBQTtBQUFBO0FBQUEsRUFJekIsa0JBQWtCLGlCQUF5QjtBQUN2QyxRQUFJLENBQUMsS0FBSyxZQUFZO0FBQ2xCLGFBQU87QUFBQTtBQUdYLFNBQUssa0JBQWtCO0FBQ3ZCLFVBQU0sYUFBYSxLQUFLLFdBQVcscUJBQXFCO0FBQ3hELFNBQUssTUFBTSxzQkFBc0IsaUJBQWlCLEtBQUs7QUFDdkQsVUFBTSxXQUFXLEtBQUssT0FBTyxvQkFBb0I7QUFBQSxNQUM3QyxNQUFNLFdBQVcsT0FBTztBQUFBLE1BQ3hCLFdBQVcsV0FBVyxTQUFTO0FBQUE7QUFFbkMsU0FBSyxrQkFBa0I7QUFDdkIsUUFBSSxTQUFTLFNBQVMsSUFBSTtBQUN0QixhQUFPO0FBQUE7QUFHWCxVQUFNLGlCQUFpQixLQUFLLFdBQVcscUJBQ25DLFNBQVMsT0FBTyxHQUNoQixT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
250
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2FzdHJvLXNuYXBzaG90cy50cyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBQTBCO0FBRzFCLDJCQUE2QjtBQUM3QixtQkFBNkQ7QUFFdEQsb0JBQW9CO0FBQUEsRUFLdkIsWUFDWSxZQUNBLFVBQ0EsV0FDQSxRQUNBLFFBQ1EsVUFDbEI7QUFOVTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ1E7QUFSWix3Q0FBK0I7QUFBQTtBQUFBLEVBV3ZDLE9BQU8sV0FBbUIsUUFBc0I7QUFDNUMsU0FBSyxZQUFZO0FBQ2pCLFNBQUssU0FBUztBQUNkLFNBQUssY0FBYztBQUNuQixTQUFLLElBQUk7QUFBQTtBQUFBLEVBR2Isb0JBQW9CLFVBQTJDO0FBQzNELFFBQUksQ0FBQyw4Q0FBNEIsS0FBSyxXQUFXLFdBQVc7QUFDeEQsYUFBTztBQUFBO0FBR1gsVUFBTSxRQUFRLEtBQUssa0JBQWtCLFNBQVM7QUFDOUMsUUFBSSxVQUFVLElBQUk7QUFDZCxhQUFPO0FBQUE7QUFJWCxXQUFPO0FBQUEsTUFDSDtBQUFBLE1BQ0EsUUFBUSxTQUFTO0FBQUE7QUFBQTtBQUFBLEVBSXpCLGtCQUFrQixpQkFBeUI7QUFDdkMsUUFBSSxDQUFDLEtBQUssWUFBWTtBQUNsQixhQUFPO0FBQUE7QUFHWCxTQUFLLGtCQUFrQjtBQUN2QixVQUFNLGFBQWEsS0FBSyxXQUFXLHFCQUFxQjtBQUN4RCxTQUFLLE1BQU0sc0JBQXNCLGlCQUFpQixLQUFLO0FBQ3ZELFVBQU0sV0FBVyxLQUFLLE9BQU8sb0JBQW9CO0FBQUEsTUFDN0MsTUFBTSxXQUFXLE9BQU87QUFBQSxNQUN4QixXQUFXLFdBQVcsU0FBUztBQUFBO0FBRW5DLFNBQUssa0JBQWtCO0FBQ3ZCLFFBQUksU0FBUyxTQUFTLElBQUk7QUFDdEIsYUFBTztBQUFBO0FBR1gsVUFBTSxpQkFBaUIsS0FBSyxXQUFXLHFCQUNuQyxTQUFT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
@@ -0,0 +1,57 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, {get: all[name], enumerable: true});
11
+ };
12
+ var __reExport = (target, module2, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && key !== "default")
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
17
+ }
18
+ return target;
19
+ };
20
+ var __toModule = (module2) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
22
+ };
23
+ __markAsModule(exports);
24
+ __export(exports, {
25
+ astro2tsx: () => astro2tsx
26
+ });
27
+ var import_ts_morph = __toModule(require("ts-morph"));
28
+ function astro2tsx(code, options) {
29
+ const compiled = transformContent(code);
30
+ const result = {
31
+ code: compiled,
32
+ map: {
33
+ mappings: []
34
+ }
35
+ };
36
+ return result;
37
+ }
38
+ function addProps(content) {
39
+ let defaultExportType = "Record<string, any>";
40
+ const project = new import_ts_morph.Project({});
41
+ const sourceFile = project.createSourceFile("testing.ts", content);
42
+ const declarations = sourceFile.getExportedDeclarations();
43
+ if (declarations.has("Props")) {
44
+ defaultExportType = "Props";
45
+ }
46
+ return `
47
+ export default function (props: ${defaultExportType}): string;`;
48
+ }
49
+ function transformContent(content) {
50
+ const ts = content.replace(/---/g, "///");
51
+ return ts + addProps(ts);
52
+ }
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ astro2tsx
56
+ });
57
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2FzdHJvMnRzeC50cyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBLHNCQUF3QjtBQWlCakIsbUJBQW1CLE1BQWMsU0FBNEM7QUFDbEYsUUFBTSxXQUFXLGlCQUFpQjtBQUVsQyxRQUFNLFNBQTBCO0FBQUEsSUFDOUIsTUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLE1BQ0gsVUFBVTtBQUFBO0FBQUE7QUFJZCxTQUFPO0FBQUE7QUFJVCxrQkFBa0IsU0FBeUI7QUFDekMsTUFBSSxvQkFBb0I7QUFHeEIsUUFBTSxVQUFVLElBQUksd0JBQVE7QUFDNUIsUUFBTSxhQUFhLFFBQVEsaUJBQWlCLGNBQWM7QUFDMUQsUUFBTSxlQUFlLFdBQVc7QUFDaEMsTUFBRyxhQUFhLElBQUksVUFBVTtBQUM1Qix3QkFBb0I7QUFBQTtBQUV0QixTQUFPO0FBQUEsa0NBQTBDO0FBQUE7QUFHbkQsMEJBQTBCLFNBQWlCO0FBQ3pDLFFBQU0sS0FBSyxRQUFRLFFBQVEsUUFBUTtBQUNuQyxTQUNFLEtBRUEsU0FBUztBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=
package/dist/index.js CHANGED
@@ -41,7 +41,7 @@ function init(modules) {
41
41
  const compilerOptions = project.getCompilerOptions();
42
42
  compilerOptions.jsx = modules.typescript.JsxEmit.Preserve;
43
43
  if (!((_a = compilerOptions.jsxFactory) == null ? void 0 : _a.startsWith("astro"))) {
44
- compilerOptions.jsxFactory = "svelte.createElement";
44
+ compilerOptions.jsxFactory = "astro.createElement";
45
45
  }
46
46
  }
47
47
  function isAstroProject(info) {
@@ -85,7 +85,7 @@ function patchModuleLoader(logger, snapshotManager, typescript, lsHost, project)
85
85
  return astroResolvedModule;
86
86
  }
87
87
  const resolvedFileName = (0, import_utils.ensureRealAstroFilePath)(astroResolvedModule.resolvedFileName);
88
- logger.log("Resolved", name, "to Svelte file", resolvedFileName);
88
+ logger.log("Resolved", name, "to astro file", resolvedFileName);
89
89
  const snapshot = snapshotManager.create(resolvedFileName);
90
90
  if (!snapshot) {
91
91
  return void 0;
@@ -101,4 +101,4 @@ function patchModuleLoader(logger, snapshotManager, typescript, lsHost, project)
101
101
  0 && (module.exports = {
102
102
  patchModuleLoader
103
103
  });
104
- //# sourceMappingURL=data:application/json;base64,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
104
+ //# sourceMappingURL=data:application/json;base64,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
package/package.json CHANGED
@@ -1,27 +1,28 @@
1
1
  {
2
- "name": "@astrojs/ts-plugin",
3
- "version": "0.1.0",
4
- "description": "A TypeScript Plugin providing Astro intellisense",
5
- "main": "dist/index.js",
6
- "type": "commonjs",
7
- "keywords": [
8
- "astro",
9
- "typescript",
10
- "javascript",
11
- "plugin"
12
- ],
13
- "scripts": {
14
- "build": "astro-scripts build \"src/**/*.ts\"",
15
- "dev": "astro-scripts dev \"src/**/*.ts\""
16
- },
17
- "author": "Skypack",
18
- "license": "MIT",
19
- "devDependencies": {
20
- "@tsconfig/node12": "^1.0.0",
21
- "@types/node": "^13.9.0",
22
- "typescript": "*"
23
- },
24
- "dependencies": {
25
- "sourcemap-codec": "^1.4.8"
26
- }
27
- }
2
+ "name": "@astrojs/ts-plugin",
3
+ "version": "0.2.1",
4
+ "description": "A TypeScript Plugin providing Astro intellisense",
5
+ "main": "dist/index.js",
6
+ "type": "commonjs",
7
+ "keywords": [
8
+ "astro",
9
+ "typescript",
10
+ "javascript",
11
+ "plugin"
12
+ ],
13
+ "scripts": {
14
+ "build": "astro-scripts build \"src/**/*.ts\"",
15
+ "dev": "astro-scripts dev \"src/**/*.ts\""
16
+ },
17
+ "author": "withastro",
18
+ "license": "MIT",
19
+ "devDependencies": {
20
+ "@tsconfig/node12": "^1.0.0",
21
+ "@types/node": "^13.9.0",
22
+ "typescript": "*"
23
+ },
24
+ "dependencies": {
25
+ "sourcemap-codec": "^1.4.8",
26
+ "ts-morph": "^12.0.0"
27
+ }
28
+ }
@@ -1,4 +1,4 @@
1
- //import { svelte2tsx } from 'svelte2tsx';
1
+ import { astro2tsx } from './astro2tsx.js';
2
2
  import type ts from 'typescript/lib/tsserverlibrary';
3
3
  import { Logger } from './logger.js';
4
4
  import { SourceMapper } from './source-mapper.js';
@@ -262,8 +262,8 @@ export class AstroSnapshotManager {
262
262
  this.logger.debug('Read Astro file:', path);
263
263
  const astroCode = readFile(path) || '';
264
264
  try {
265
- const isTsFile = true; // TODO check file contents? TS might be okay with importing ts into js.
266
- const result = svelte2tsx(astroCode, {
265
+ const isTsFile = true;
266
+ const result = astro2tsx(astroCode, {
267
267
  filename: path.split('/').pop(),
268
268
  isTsFile
269
269
  });
package/src/astro-sys.ts CHANGED
@@ -3,7 +3,7 @@ import { Logger } from './logger.js';
3
3
  import { ensureRealAstroFilePath, isVirtualAstroFilePath, toRealAstroFilePath } from './utils.js';
4
4
 
5
5
  /**
6
- * This should only be accessed by TS svelte module resolution.
6
+ * This should only be accessed by TS astro module resolution.
7
7
  */
8
8
  export function createAstroSys(logger: Logger) {
9
9
  const astroSys: ts.System = {
@@ -0,0 +1,53 @@
1
+ import type { FileMapping } from './source-mapper';
2
+ import { Project } from 'ts-morph';
3
+
4
+ // Note that this is a bit of a hack until the new compiler with proper
5
+ // source map support.
6
+
7
+ interface Astro2TSXOptions {
8
+ filename: string | undefined;
9
+ isTsFile: boolean;
10
+ }
11
+
12
+ interface Astro2TSXResult {
13
+ code: string;
14
+ map: {
15
+ mappings: FileMapping
16
+ }
17
+ }
18
+
19
+ export function astro2tsx(code: string, options: Astro2TSXOptions): Astro2TSXResult {
20
+ const compiled = transformContent(code);
21
+
22
+ const result: Astro2TSXResult = {
23
+ code: compiled,
24
+ map: {
25
+ mappings: []
26
+ }
27
+ };
28
+
29
+ return result;
30
+ }
31
+
32
+ // This is hacky but it works for now
33
+ function addProps(content: string): string {
34
+ let defaultExportType = 'Record<string, any>';
35
+
36
+ // See if this has an interface already
37
+ const project = new Project({});
38
+ const sourceFile = project.createSourceFile("testing.ts", content);
39
+ const declarations = sourceFile.getExportedDeclarations();
40
+ if(declarations.has('Props')) {
41
+ defaultExportType = 'Props';
42
+ }
43
+ return '\n' + `export default function (props: ${defaultExportType}): string;`
44
+ }
45
+
46
+ function transformContent(content: string) {
47
+ const ts = content.replace(/---/g, '///');
48
+ return (
49
+ ts +
50
+ // Add TypeScript definitions
51
+ addProps(ts)
52
+ );
53
+ }
package/src/index.ts CHANGED
@@ -35,27 +35,27 @@ function init(modules: { typescript: typeof ts }) {
35
35
 
36
36
  function getExternalFiles(_project: ts.server.ConfiguredProject) {
37
37
  // Needed so the ambient definitions are known inside the tsx files
38
- /*const svelteTsPath = dirname(require.resolve('svelte2tsx'));
39
- const svelteTsxFiles = [
40
- './svelte-shims.d.ts',
41
- './svelte-jsx.d.ts',
42
- './svelte-native-jsx.d.ts'
43
- ].map((f) => modules.typescript.sys.resolvePath(resolve(svelteTsPath, f)));
44
- return svelteTsxFiles;*/
38
+ /*const astroTsPath = dirname(require.resolve('astro2tsx'));
39
+ const astroTsxFiles = [
40
+ './astro-shims.d.ts',
41
+ './astro-jsx.d.ts',
42
+ './astro-native-jsx.d.ts'
43
+ ].map((f) => modules.typescript.sys.resolvePath(resolve(astroTsPath, f)));
44
+ return astroTsxFiles;*/
45
45
  return [];
46
46
  }
47
47
 
48
48
  function patchCompilerOptions(project: ts.server.Project) {
49
49
  const compilerOptions = project.getCompilerOptions();
50
- // Patch needed because svelte2tsx creates jsx/tsx files
50
+ // Patch needed because astro2tsx creates jsx/tsx files
51
51
  compilerOptions.jsx = modules.typescript.JsxEmit.Preserve;
52
52
 
53
53
  // detect which JSX namespace to use (astro | astronative) if not specified or not compatible
54
54
  if (!compilerOptions.jsxFactory?.startsWith('astro')) {
55
- // Default to regular svelte, this causes the usage of the "astro.JSX" namespace
55
+ // Default to regular astro, this causes the usage of the "astro.JSX" namespace
56
56
  // We don't need to add a switch for astro-native because the jsx is only relevant
57
57
  // within Astro files, which this plugin does not deal with.
58
- compilerOptions.jsxFactory = 'svelte.createElement';
58
+ compilerOptions.jsxFactory = 'astro.createElement';
59
59
  }
60
60
  }
61
61
 
@@ -12,7 +12,7 @@ function decorateSyntacticDiagnostics(ls: ts.LanguageService): void {
12
12
  const getSyntacticDiagnostics = ls.getSyntacticDiagnostics;
13
13
  ls.getSyntacticDiagnostics = (fileName: string) => {
14
14
  // Diagnostics inside Astro files are done
15
- // by the svelte-language-server / Svelte for VS Code extension
15
+ // by the @astrojs/language-server / Astro for VS Code extension
16
16
  if (isAstroFilePath(fileName)) {
17
17
  return [];
18
18
  }
@@ -35,7 +35,7 @@ function decorateSemanticDiagnostics(ls: ts.LanguageService): void {
35
35
  function decorateSuggestionDiagnostics(ls: ts.LanguageService): void {
36
36
  const getSuggestionDiagnostics = ls.getSuggestionDiagnostics;
37
37
  ls.getSuggestionDiagnostics = (fileName: string) => {
38
- // Diagnostics inside Svelte files are done
38
+ // Diagnostics inside Astro files are done
39
39
  // by the @astrojs/language-server / Astro for VS Code extension
40
40
  if (isAstroFilePath(fileName)) {
41
41
  return [];
@@ -45,13 +45,13 @@ class ModuleResolutionCache {
45
45
  }
46
46
 
47
47
  /**
48
- * Creates a module loader than can also resolve `.svelte` files.
48
+ * Creates a module loader than can also resolve `.astro` files.
49
49
  *
50
- * The typescript language service tries to look up other files that are referenced in the currently open svelte file.
51
- * For `.ts`/`.js` files this works, for `.svelte` files it does not by default.
52
- * Reason: The typescript language service does not know about the `.svelte` file ending,
53
- * so it assumes it's a normal typescript file and searches for files like `../Component.svelte.ts`, which is wrong.
54
- * In order to fix this, we need to wrap typescript's module resolution and reroute all `.svelte.ts` file lookups to .svelte.
50
+ * The typescript language service tries to look up other files that are referenced in the currently open astro file.
51
+ * For `.ts`/`.js` files this works, for `.astro` files it does not by default.
52
+ * Reason: The typescript language service does not know about the `.astro` file ending,
53
+ * so it assumes it's a normal typescript file and searches for files like `../Component.astro.ts`, which is wrong.
54
+ * In order to fix this, we need to wrap typescript's module resolution and reroute all `.astro.ts` file lookups to .astro.
55
55
  */
56
56
  export function patchModuleLoader(
57
57
  logger: Logger,
@@ -83,8 +83,8 @@ export function patchModuleLoader(
83
83
  logger.log('Resolving modules names for ' + containingFile);
84
84
  // Try resolving all module names with the original method first.
85
85
  // The ones that are undefined will be re-checked if they are a
86
- // Svelte file and if so, are resolved, too. This way we can defer
87
- // all module resolving logic except for Svelte files to TypeScript.
86
+ // astro file and if so, are resolved, too. This way we can defer
87
+ // all module resolving logic except for astro files to TypeScript.
88
88
  const resolved =
89
89
  origResolveModuleNames?.(
90
90
  moduleNames,
@@ -130,7 +130,7 @@ export function patchModuleLoader(
130
130
  }
131
131
 
132
132
  const resolvedFileName = ensureRealAstroFilePath(astroResolvedModule.resolvedFileName);
133
- logger.log('Resolved', name, 'to Svelte file', resolvedFileName);
133
+ logger.log('Resolved', name, 'to astro file', resolvedFileName);
134
134
  const snapshot = snapshotManager.create(resolvedFileName);
135
135
  if (!snapshot) {
136
136
  return undefined;
@@ -3,7 +3,7 @@ import type ts from 'typescript/lib/tsserverlibrary';
3
3
 
4
4
  type LineChar = ts.LineAndCharacter;
5
5
 
6
- type FileMapping = LineMapping[];
6
+ export type FileMapping = LineMapping[];
7
7
 
8
8
  type LineMapping = CharacterMapping[]; // FileMapping[generated_line_index] = LineMapping
9
9