@marko/language-tools 2.1.1 → 2.1.2

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.
package/dist/index.js CHANGED
@@ -2928,12 +2928,14 @@ __export(project_exports, {
2928
2928
  getScriptLang: () => getScriptLang,
2929
2929
  getTagLookup: () => getTagLookup,
2930
2930
  getTypeLibs: () => getTypeLibs,
2931
+ setDefaultCompilerMeta: () => setDefaultCompilerMeta,
2931
2932
  setDefaultTypePaths: () => setDefaultTypePaths
2932
2933
  });
2933
2934
  var import_path2 = __toESM(require("path"));
2934
2935
  var import_module = require("module");
2935
2936
  var import_strip_json_comments = __toESM(require("strip-json-comments"));
2936
2937
  var defaultTypeLibs = {};
2938
+ var defaultMeta;
2937
2939
  var ignoreErrors = (_err) => {
2938
2940
  };
2939
2941
  var metaByDir = /* @__PURE__ */ new Map();
@@ -3039,6 +3041,9 @@ function getScriptLang(fileName, defaultScriptLang, ts, host) {
3039
3041
  return scriptLang;
3040
3042
  }
3041
3043
  function clearCaches() {
3044
+ if (defaultMeta) {
3045
+ clearCacheForMeta(defaultMeta);
3046
+ }
3042
3047
  for (const project of metaByCompiler.values()) {
3043
3048
  clearCacheForMeta(project);
3044
3049
  }
@@ -3046,10 +3051,32 @@ function clearCaches() {
3046
3051
  function setDefaultTypePaths(defaults) {
3047
3052
  Object.assign(defaultTypeLibs, defaults);
3048
3053
  }
3049
- function getMeta(dir = __dirname) {
3054
+ function setDefaultCompilerMeta(compiler, config) {
3055
+ const { translator } = config;
3056
+ if (typeof translator !== "object") {
3057
+ throw new Error("Translator must be fully resolved and loaded.");
3058
+ }
3059
+ defaultMeta = {
3060
+ compiler,
3061
+ config: {
3062
+ ...config,
3063
+ cache: /* @__PURE__ */ new Map(),
3064
+ translator
3065
+ }
3066
+ };
3067
+ compiler.configure(defaultMeta.config);
3068
+ }
3069
+ function getMeta(dir) {
3070
+ if (!dir) {
3071
+ if (!defaultMeta) {
3072
+ throw new Error(
3073
+ "@marko/compiler must be installed or compiler registered."
3074
+ );
3075
+ }
3076
+ return defaultMeta;
3077
+ }
3050
3078
  let cached = metaByDir.get(dir);
3051
3079
  if (!cached) {
3052
- const fallback = dir === __dirname;
3053
3080
  try {
3054
3081
  const require2 = (0, import_module.createRequire)(dir);
3055
3082
  const configPath = require2.resolve("@marko/compiler/config");
@@ -3061,7 +3088,6 @@ function getMeta(dir = __dirname) {
3061
3088
  ));
3062
3089
  const config = interopDefault(require2(configPath));
3063
3090
  cached = {
3064
- fallback,
3065
3091
  compiler,
3066
3092
  config: {
3067
3093
  ...config,
@@ -3073,8 +3099,6 @@ function getMeta(dir = __dirname) {
3073
3099
  metaByCompiler.set(configPath, cached);
3074
3100
  }
3075
3101
  } catch (err) {
3076
- if (fallback)
3077
- throw err;
3078
3102
  cached = getMeta();
3079
3103
  }
3080
3104
  metaByDir.set(dir, cached);
@@ -3092,7 +3116,7 @@ function getTagLookupForProject(meta, dir) {
3092
3116
  ignoreErrors
3093
3117
  );
3094
3118
  } catch {
3095
- if (!meta.fallback) {
3119
+ if (meta !== defaultMeta) {
3096
3120
  lookup = getTagLookupForProject(getMeta(), dir);
3097
3121
  }
3098
3122
  }
package/dist/index.mjs CHANGED
@@ -2896,12 +2896,14 @@ __export(project_exports, {
2896
2896
  getScriptLang: () => getScriptLang,
2897
2897
  getTagLookup: () => getTagLookup,
2898
2898
  getTypeLibs: () => getTypeLibs,
2899
+ setDefaultCompilerMeta: () => setDefaultCompilerMeta,
2899
2900
  setDefaultTypePaths: () => setDefaultTypePaths
2900
2901
  });
2901
2902
  import path2 from "path";
2902
2903
  import { createRequire } from "module";
2903
2904
  import stripJSONComments from "strip-json-comments";
2904
2905
  var defaultTypeLibs = {};
2906
+ var defaultMeta;
2905
2907
  var ignoreErrors = (_err) => {
2906
2908
  };
2907
2909
  var metaByDir = /* @__PURE__ */ new Map();
@@ -3007,6 +3009,9 @@ function getScriptLang(fileName, defaultScriptLang, ts, host) {
3007
3009
  return scriptLang;
3008
3010
  }
3009
3011
  function clearCaches() {
3012
+ if (defaultMeta) {
3013
+ clearCacheForMeta(defaultMeta);
3014
+ }
3010
3015
  for (const project of metaByCompiler.values()) {
3011
3016
  clearCacheForMeta(project);
3012
3017
  }
@@ -3014,10 +3019,32 @@ function clearCaches() {
3014
3019
  function setDefaultTypePaths(defaults) {
3015
3020
  Object.assign(defaultTypeLibs, defaults);
3016
3021
  }
3017
- function getMeta(dir = __dirname) {
3022
+ function setDefaultCompilerMeta(compiler, config) {
3023
+ const { translator } = config;
3024
+ if (typeof translator !== "object") {
3025
+ throw new Error("Translator must be fully resolved and loaded.");
3026
+ }
3027
+ defaultMeta = {
3028
+ compiler,
3029
+ config: {
3030
+ ...config,
3031
+ cache: /* @__PURE__ */ new Map(),
3032
+ translator
3033
+ }
3034
+ };
3035
+ compiler.configure(defaultMeta.config);
3036
+ }
3037
+ function getMeta(dir) {
3038
+ if (!dir) {
3039
+ if (!defaultMeta) {
3040
+ throw new Error(
3041
+ "@marko/compiler must be installed or compiler registered."
3042
+ );
3043
+ }
3044
+ return defaultMeta;
3045
+ }
3018
3046
  let cached = metaByDir.get(dir);
3019
3047
  if (!cached) {
3020
- const fallback = dir === __dirname;
3021
3048
  try {
3022
3049
  const require2 = createRequire(dir);
3023
3050
  const configPath = require2.resolve("@marko/compiler/config");
@@ -3029,7 +3056,6 @@ function getMeta(dir = __dirname) {
3029
3056
  ));
3030
3057
  const config = interopDefault(require2(configPath));
3031
3058
  cached = {
3032
- fallback,
3033
3059
  compiler,
3034
3060
  config: {
3035
3061
  ...config,
@@ -3041,8 +3067,6 @@ function getMeta(dir = __dirname) {
3041
3067
  metaByCompiler.set(configPath, cached);
3042
3068
  }
3043
3069
  } catch (err) {
3044
- if (fallback)
3045
- throw err;
3046
3070
  cached = getMeta();
3047
3071
  }
3048
3072
  metaByDir.set(dir, cached);
@@ -3060,7 +3084,7 @@ function getTagLookupForProject(meta, dir) {
3060
3084
  ignoreErrors
3061
3085
  );
3062
3086
  } catch {
3063
- if (!meta.fallback) {
3087
+ if (meta !== defaultMeta) {
3064
3088
  lookup = getTagLookupForProject(getMeta(), dir);
3065
3089
  }
3066
3090
  }
@@ -4,7 +4,6 @@ import type { TaglibLookup } from "@marko/babel-utils";
4
4
  import type * as Compiler from "@marko/compiler";
5
5
  import { ScriptLang } from "../extractors/script";
6
6
  export interface Meta {
7
- fallback: boolean;
8
7
  compiler: typeof Compiler;
9
8
  config: Omit<Compiler.Config, "cache" | "translator"> & {
10
9
  cache: Map<any, any>;
@@ -78,4 +77,5 @@ export declare function getTypeLibs(rootDir: string, ts: typeof TS, host: TS.Mod
78
77
  export declare function getScriptLang(fileName: string, defaultScriptLang: ScriptLang, ts: typeof TS, host: TS.ModuleResolutionHost): ScriptLang;
79
78
  export declare function clearCaches(): void;
80
79
  export declare function setDefaultTypePaths(defaults: typeof defaultTypeLibs): void;
80
+ export declare function setDefaultCompilerMeta(compiler: typeof Compiler, config: Compiler.Config): void;
81
81
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@marko/language-tools",
3
3
  "description": "Marko Language Tools",
4
- "version": "2.1.1",
4
+ "version": "2.1.2",
5
5
  "bugs": "https://github.com/marko-js/language-server/issues/new?template=Bug_report.md",
6
6
  "peerDependencies": {
7
7
  "@marko/compiler": "^5.28.4"
@@ -15,11 +15,11 @@
15
15
  "devDependencies": {
16
16
  "@babel/code-frame": "^7.22.5",
17
17
  "@marko/compiler": "^5.31.1",
18
- "@marko/translator-default": "^5.29.1",
18
+ "@marko/translator-default": "^5.29.2",
19
19
  "@types/babel__code-frame": "^7.0.3",
20
20
  "@types/babel__helper-validator-identifier": "^7.15.0",
21
21
  "@typescript/vfs": "^1.4.0",
22
- "marko": "^5.29.1",
22
+ "marko": "^5.29.2",
23
23
  "mitata": "^0.1.6",
24
24
  "tsx": "^3.12.7"
25
25
  },