@marko/language-tools 2.1.0 → 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,28 +2928,18 @@ __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
- var defaultCompiler = __toESM(require("@marko/compiler"));
2936
- var defaultConfig = __toESM(require("@marko/compiler/config"));
2937
- var defaultTranslator = __toESM(require("@marko/translator-default"));
2938
2936
  var import_strip_json_comments = __toESM(require("strip-json-comments"));
2939
2937
  var defaultTypeLibs = {};
2938
+ var defaultMeta;
2940
2939
  var ignoreErrors = (_err) => {
2941
2940
  };
2942
2941
  var metaByDir = /* @__PURE__ */ new Map();
2943
2942
  var metaByCompiler = /* @__PURE__ */ new Map();
2944
- var defaultMeta = {
2945
- compiler: defaultCompiler,
2946
- config: {
2947
- ...defaultConfig,
2948
- cache: /* @__PURE__ */ new Map(),
2949
- translator: defaultTranslator
2950
- }
2951
- };
2952
- defaultCompiler.configure(defaultMeta.config);
2953
2943
  function getCompiler(dir) {
2954
2944
  return getMeta(dir).compiler;
2955
2945
  }
@@ -3051,7 +3041,9 @@ function getScriptLang(fileName, defaultScriptLang, ts, host) {
3051
3041
  return scriptLang;
3052
3042
  }
3053
3043
  function clearCaches() {
3054
- clearCacheForMeta(defaultMeta);
3044
+ if (defaultMeta) {
3045
+ clearCacheForMeta(defaultMeta);
3046
+ }
3055
3047
  for (const project of metaByCompiler.values()) {
3056
3048
  clearCacheForMeta(project);
3057
3049
  }
@@ -3059,23 +3051,42 @@ function clearCaches() {
3059
3051
  function setDefaultTypePaths(defaults) {
3060
3052
  Object.assign(defaultTypeLibs, defaults);
3061
3053
  }
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
+ }
3062
3069
  function getMeta(dir) {
3063
- if (!dir)
3070
+ if (!dir) {
3071
+ if (!defaultMeta) {
3072
+ throw new Error(
3073
+ "@marko/compiler must be installed or compiler registered."
3074
+ );
3075
+ }
3064
3076
  return defaultMeta;
3077
+ }
3065
3078
  let cached = metaByDir.get(dir);
3066
3079
  if (!cached) {
3067
3080
  try {
3068
3081
  const require2 = (0, import_module.createRequire)(dir);
3069
- const compilerConfigPath = require2.resolve("@marko/compiler/config");
3070
- cached = metaByCompiler.get(compilerConfigPath);
3082
+ const configPath = require2.resolve("@marko/compiler/config");
3083
+ cached = metaByCompiler.get(configPath);
3071
3084
  if (!cached) {
3072
3085
  const compiler = require2(import_path2.default.join(
3073
- compilerConfigPath,
3086
+ configPath,
3074
3087
  ".."
3075
3088
  ));
3076
- const config = interopDefault(
3077
- require2(compilerConfigPath)
3078
- );
3089
+ const config = interopDefault(require2(configPath));
3079
3090
  cached = {
3080
3091
  compiler,
3081
3092
  config: {
@@ -3085,10 +3096,10 @@ function getMeta(dir) {
3085
3096
  }
3086
3097
  };
3087
3098
  compiler.configure(cached.config);
3088
- metaByCompiler.set(compilerConfigPath, cached);
3099
+ metaByCompiler.set(configPath, cached);
3089
3100
  }
3090
- } catch {
3091
- cached = defaultMeta;
3101
+ } catch (err) {
3102
+ cached = getMeta();
3092
3103
  }
3093
3104
  metaByDir.set(dir, cached);
3094
3105
  }
@@ -3106,7 +3117,7 @@ function getTagLookupForProject(meta, dir) {
3106
3117
  );
3107
3118
  } catch {
3108
3119
  if (meta !== defaultMeta) {
3109
- lookup = getTagLookupForProject(defaultMeta, dir);
3120
+ lookup = getTagLookupForProject(getMeta(), dir);
3110
3121
  }
3111
3122
  }
3112
3123
  if (cache) {
package/dist/index.mjs CHANGED
@@ -2896,28 +2896,18 @@ __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
- import * as defaultCompiler from "@marko/compiler";
2904
- import * as defaultConfig from "@marko/compiler/config";
2905
- import * as defaultTranslator from "@marko/translator-default";
2906
2904
  import stripJSONComments from "strip-json-comments";
2907
2905
  var defaultTypeLibs = {};
2906
+ var defaultMeta;
2908
2907
  var ignoreErrors = (_err) => {
2909
2908
  };
2910
2909
  var metaByDir = /* @__PURE__ */ new Map();
2911
2910
  var metaByCompiler = /* @__PURE__ */ new Map();
2912
- var defaultMeta = {
2913
- compiler: defaultCompiler,
2914
- config: {
2915
- ...defaultConfig,
2916
- cache: /* @__PURE__ */ new Map(),
2917
- translator: defaultTranslator
2918
- }
2919
- };
2920
- defaultCompiler.configure(defaultMeta.config);
2921
2911
  function getCompiler(dir) {
2922
2912
  return getMeta(dir).compiler;
2923
2913
  }
@@ -3019,7 +3009,9 @@ function getScriptLang(fileName, defaultScriptLang, ts, host) {
3019
3009
  return scriptLang;
3020
3010
  }
3021
3011
  function clearCaches() {
3022
- clearCacheForMeta(defaultMeta);
3012
+ if (defaultMeta) {
3013
+ clearCacheForMeta(defaultMeta);
3014
+ }
3023
3015
  for (const project of metaByCompiler.values()) {
3024
3016
  clearCacheForMeta(project);
3025
3017
  }
@@ -3027,23 +3019,42 @@ function clearCaches() {
3027
3019
  function setDefaultTypePaths(defaults) {
3028
3020
  Object.assign(defaultTypeLibs, defaults);
3029
3021
  }
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
+ }
3030
3037
  function getMeta(dir) {
3031
- if (!dir)
3038
+ if (!dir) {
3039
+ if (!defaultMeta) {
3040
+ throw new Error(
3041
+ "@marko/compiler must be installed or compiler registered."
3042
+ );
3043
+ }
3032
3044
  return defaultMeta;
3045
+ }
3033
3046
  let cached = metaByDir.get(dir);
3034
3047
  if (!cached) {
3035
3048
  try {
3036
3049
  const require2 = createRequire(dir);
3037
- const compilerConfigPath = require2.resolve("@marko/compiler/config");
3038
- cached = metaByCompiler.get(compilerConfigPath);
3050
+ const configPath = require2.resolve("@marko/compiler/config");
3051
+ cached = metaByCompiler.get(configPath);
3039
3052
  if (!cached) {
3040
3053
  const compiler = require2(path2.join(
3041
- compilerConfigPath,
3054
+ configPath,
3042
3055
  ".."
3043
3056
  ));
3044
- const config = interopDefault(
3045
- require2(compilerConfigPath)
3046
- );
3057
+ const config = interopDefault(require2(configPath));
3047
3058
  cached = {
3048
3059
  compiler,
3049
3060
  config: {
@@ -3053,10 +3064,10 @@ function getMeta(dir) {
3053
3064
  }
3054
3065
  };
3055
3066
  compiler.configure(cached.config);
3056
- metaByCompiler.set(compilerConfigPath, cached);
3067
+ metaByCompiler.set(configPath, cached);
3057
3068
  }
3058
- } catch {
3059
- cached = defaultMeta;
3069
+ } catch (err) {
3070
+ cached = getMeta();
3060
3071
  }
3061
3072
  metaByDir.set(dir, cached);
3062
3073
  }
@@ -3074,7 +3085,7 @@ function getTagLookupForProject(meta, dir) {
3074
3085
  );
3075
3086
  } catch {
3076
3087
  if (meta !== defaultMeta) {
3077
- lookup = getTagLookupForProject(defaultMeta, dir);
3088
+ lookup = getTagLookupForProject(getMeta(), dir);
3078
3089
  }
3079
3090
  }
3080
3091
  if (cache) {
@@ -1,11 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import type TS from "typescript/lib/tsserverlibrary";
3
3
  import type { TaglibLookup } from "@marko/babel-utils";
4
- import * as defaultCompiler from "@marko/compiler";
4
+ import type * as Compiler from "@marko/compiler";
5
5
  import { ScriptLang } from "../extractors/script";
6
6
  export interface Meta {
7
- compiler: typeof defaultCompiler;
8
- config: Omit<defaultCompiler.Config, "cache" | "translator"> & {
7
+ compiler: typeof Compiler;
8
+ config: Omit<Compiler.Config, "cache" | "translator"> & {
9
9
  cache: Map<any, any>;
10
10
  translator: {
11
11
  runtimeTypes?: string;
@@ -21,7 +21,7 @@ interface TypeLibs {
21
21
  markoTypesCode: string | undefined;
22
22
  }
23
23
  declare const defaultTypeLibs: Partial<TypeLibs>;
24
- export declare function getCompiler(dir?: string): typeof defaultCompiler;
24
+ export declare function getCompiler(dir?: string): typeof Compiler;
25
25
  export declare function getCache(dir?: string): Map<any, any>;
26
26
  export declare function getConfig(dir?: string): Omit<{
27
27
  output?: "source" | "html" | "dom" | "hydrate" | "migrate" | undefined;
@@ -77,4 +77,5 @@ export declare function getTypeLibs(rootDir: string, ts: typeof TS, host: TS.Mod
77
77
  export declare function getScriptLang(fileName: string, defaultScriptLang: ScriptLang, ts: typeof TS, host: TS.ModuleResolutionHost): ScriptLang;
78
78
  export declare function clearCaches(): void;
79
79
  export declare function setDefaultTypePaths(defaults: typeof defaultTypeLibs): void;
80
+ export declare function setDefaultCompilerMeta(compiler: typeof Compiler, config: Compiler.Config): void;
80
81
  export {};
package/package.json CHANGED
@@ -1,23 +1,25 @@
1
1
  {
2
2
  "name": "@marko/language-tools",
3
3
  "description": "Marko Language Tools",
4
- "version": "2.1.0",
4
+ "version": "2.1.2",
5
5
  "bugs": "https://github.com/marko-js/language-server/issues/new?template=Bug_report.md",
6
+ "peerDependencies": {
7
+ "@marko/compiler": "^5.28.4"
8
+ },
6
9
  "dependencies": {
7
10
  "@babel/helper-validator-identifier": "^7.22.5",
8
- "@babel/parser": "^7.22.5",
9
- "@marko/compiler": "5.28.4",
10
- "@marko/translator-default": "5.26.5",
11
+ "@babel/parser": "^7.22.7",
11
12
  "htmljs-parser": "^5.5.0",
12
13
  "relative-import-path": "^1.0.0"
13
14
  },
14
15
  "devDependencies": {
15
16
  "@babel/code-frame": "^7.22.5",
16
- "@marko/compiler": "^5.28.5",
17
+ "@marko/compiler": "^5.31.1",
18
+ "@marko/translator-default": "^5.29.2",
17
19
  "@types/babel__code-frame": "^7.0.3",
18
20
  "@types/babel__helper-validator-identifier": "^7.15.0",
19
21
  "@typescript/vfs": "^1.4.0",
20
- "marko": "^5.26.5",
22
+ "marko": "^5.29.2",
21
23
  "mitata": "^0.1.6",
22
24
  "tsx": "^3.12.7"
23
25
  },