@nlabs/lex 1.36.0 → 1.37.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/resolver.js CHANGED
@@ -1,41 +1,64 @@
1
- const fs = require("fs");
2
- const path = require("path");
3
- const resolve = require("resolve");
1
+ const { existsSync } = require("fs-extra");
2
+ const { extname, resolve } = require("path");
3
+ const resolveSync = require("resolve/sync");
4
+ const getFullPath = (basedir, name, extensions) => {
5
+ let fileName = name;
6
+ extensions.some((ext) => {
7
+ if (fileName !== "..") {
8
+ const fullPath = resolve(`${basedir}/${fileName}${ext}`);
9
+ if (existsSync(fullPath)) {
10
+ fileName = fullPath;
11
+ return true;
12
+ }
13
+ }
14
+ if (fileName !== "index") {
15
+ const indexFile = resolve(`${basedir}/${fileName}/index${ext}`);
16
+ if (existsSync(indexFile)) {
17
+ fileName = indexFile;
18
+ return true;
19
+ }
20
+ }
21
+ return false;
22
+ });
23
+ return fileName;
24
+ };
4
25
  module.exports = (value, options) => {
5
- if (value === "") {
26
+ let fileName = value;
27
+ if (fileName === "") {
6
28
  return null;
7
29
  }
8
- const { basedir, extensions } = options;
9
- const hasBase = value.indexOf("./") >= 0 || value.indexOf("../") >= 0;
30
+ const isSequencer = fileName.startsWith("jest-sequencer-");
31
+ if (isSequencer) {
32
+ fileName = fileName.replace("jest-sequencer-", "");
33
+ }
34
+ const { basedir, extensions = [".js", ".ts"] } = options;
35
+ const existingExt = extname(fileName) || "";
36
+ const hasExtension = existingExt !== "" && extensions.includes(existingExt);
37
+ const isAbsolute = fileName.indexOf("/") === 0;
38
+ if (isAbsolute) {
39
+ if (hasExtension) {
40
+ return existsSync(fileName) ? fileName : null;
41
+ }
42
+ return getFullPath(fileName, "index", extensions);
43
+ }
44
+ if (fileName === "..") {
45
+ return getFullPath(basedir, "..", extensions);
46
+ }
47
+ const hasBase = fileName.indexOf("./") >= 0 || fileName.indexOf("../") >= 0;
10
48
  if (hasBase) {
11
- const existingExt = path.extname(value) || "";
12
- if (existingExt !== "" && extensions.includes(existingExt)) {
13
- return path.resolve(`${basedir}/${value}`);
49
+ if (hasExtension) {
50
+ return resolve(`${basedir}/${fileName}`);
14
51
  }
15
- let fullPath = value;
16
- extensions.some((ext) => {
17
- const filename = path.resolve(`${basedir}/${value}${ext}`);
18
- if (fs.existsSync(filename)) {
19
- fullPath = filename;
20
- return true;
21
- }
22
- const indexFile = path.resolve(`${basedir}/${value}/index${ext}`);
23
- if (fs.existsSync(indexFile)) {
24
- fullPath = indexFile;
25
- return true;
26
- }
27
- return false;
28
- });
29
- return fullPath;
52
+ return getFullPath(basedir, fileName, extensions);
30
53
  }
31
54
  try {
32
- return resolve.sync(value, { basedir: `${__dirname}/../`, extensions });
55
+ return resolveSync(fileName, { basedir: `${__dirname}/../`, extensions });
33
56
  } catch (error) {
34
57
  try {
35
- return resolve.sync(value, { basedir: process.cwd(), extensions });
58
+ return resolveSync(fileName, { basedir: process.cwd(), extensions });
36
59
  } catch (error2) {
37
60
  return null;
38
61
  }
39
62
  }
40
63
  };
41
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3Jlc29sdmVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IHJlc29sdmUgPSByZXF1aXJlKCdyZXNvbHZlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gIGlmKHZhbHVlID09PSAnJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3Qge2Jhc2VkaXIsIGV4dGVuc2lvbnN9ID0gb3B0aW9ucztcbiAgY29uc3QgaGFzQmFzZSA9IHZhbHVlLmluZGV4T2YoJy4vJykgPj0gMCB8fCB2YWx1ZS5pbmRleE9mKCcuLi8nKSA+PSAwO1xuXG4gIGlmKGhhc0Jhc2UpIHtcbiAgICBjb25zdCBleGlzdGluZ0V4dDogc3RyaW5nID0gcGF0aC5leHRuYW1lKHZhbHVlKSB8fCAnJztcblxuICAgIGlmKGV4aXN0aW5nRXh0ICE9PSAnJyAmJiBleHRlbnNpb25zLmluY2x1ZGVzKGV4aXN0aW5nRXh0KSkge1xuICAgICAgcmV0dXJuIHBhdGgucmVzb2x2ZShgJHtiYXNlZGlyfS8ke3ZhbHVlfWApO1xuICAgIH1cblxuICAgIGxldCBmdWxsUGF0aCA9IHZhbHVlO1xuXG4gICAgZXh0ZW5zaW9ucy5zb21lKChleHQpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5yZXNvbHZlKGAke2Jhc2VkaXJ9LyR7dmFsdWV9JHtleHR9YCk7XG5cbiAgICAgIGlmKGZzLmV4aXN0c1N5bmMoZmlsZW5hbWUpKSB7XG4gICAgICAgIGZ1bGxQYXRoID0gZmlsZW5hbWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbmRleEZpbGUgPSBwYXRoLnJlc29sdmUoYCR7YmFzZWRpcn0vJHt2YWx1ZX0vaW5kZXgke2V4dH1gKTtcblxuICAgICAgaWYoZnMuZXhpc3RzU3luYyhpbmRleEZpbGUpKSB7XG4gICAgICAgIGZ1bGxQYXRoID0gaW5kZXhGaWxlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ1bGxQYXRoO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVzb2x2ZS5zeW5jKHZhbHVlLCB7YmFzZWRpcjogYCR7X19kaXJuYW1lfS8uLi9gLCBleHRlbnNpb25zfSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlc29sdmUuc3luYyh2YWx1ZSwge2Jhc2VkaXI6IHByb2Nlc3MuY3dkKCksIGV4dGVuc2lvbnN9KTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxNQUFNLEtBQUssUUFBUSxJQUFJO0FBQ3ZCLE1BQU0sT0FBTyxRQUFRLE1BQU07QUFDM0IsTUFBTSxVQUFVLFFBQVEsU0FBUztBQUVqQyxPQUFPLFVBQVUsQ0FBQyxPQUFPLFlBQVk7QUFDbkMsTUFBRyxVQUFVLElBQUk7QUFDZixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sRUFBQyxTQUFTLGVBQWM7QUFDOUIsUUFBTSxVQUFVLE1BQU0sUUFBUSxJQUFJLEtBQUssS0FBSyxNQUFNLFFBQVEsS0FBSyxLQUFLO0FBRXBFLE1BQUcsU0FBUztBQUNWLFVBQU0sY0FBc0IsS0FBSyxRQUFRLEtBQUssS0FBSztBQUVuRCxRQUFHLGdCQUFnQixNQUFNLFdBQVcsU0FBUyxXQUFXLEdBQUc7QUFDekQsYUFBTyxLQUFLLFFBQVEsR0FBRyxXQUFXLE9BQU87QUFBQSxJQUMzQztBQUVBLFFBQUksV0FBVztBQUVmLGVBQVcsS0FBSyxDQUFDLFFBQVE7QUFDdkIsWUFBTSxXQUFXLEtBQUssUUFBUSxHQUFHLFdBQVcsUUFBUSxLQUFLO0FBRXpELFVBQUcsR0FBRyxXQUFXLFFBQVEsR0FBRztBQUMxQixtQkFBVztBQUNYLGVBQU87QUFBQSxNQUNUO0FBRUEsWUFBTSxZQUFZLEtBQUssUUFBUSxHQUFHLFdBQVcsY0FBYyxLQUFLO0FBRWhFLFVBQUcsR0FBRyxXQUFXLFNBQVMsR0FBRztBQUMzQixtQkFBVztBQUNYLGVBQU87QUFBQSxNQUNUO0FBRUEsYUFBTztBQUFBLElBQ1QsQ0FBQztBQUVELFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSTtBQUNGLFdBQU8sUUFBUSxLQUFLLE9BQU8sRUFBQyxTQUFTLEdBQUcsaUJBQWlCLFdBQVUsQ0FBQztBQUFBLEVBQ3RFLFNBQVEsT0FBTjtBQUNBLFFBQUk7QUFDRixhQUFPLFFBQVEsS0FBSyxPQUFPLEVBQUMsU0FBUyxRQUFRLElBQUksR0FBRyxXQUFVLENBQUM7QUFBQSxJQUNqRSxTQUFRLFFBQU47QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
64
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3Jlc29sdmVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuY29uc3Qge2V4aXN0c1N5bmN9ID0gcmVxdWlyZSgnZnMtZXh0cmEnKTtcbmNvbnN0IHtleHRuYW1lLCByZXNvbHZlfSA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IHJlc29sdmVTeW5jID0gcmVxdWlyZSgncmVzb2x2ZS9zeW5jJyk7XG5cbmNvbnN0IGdldEZ1bGxQYXRoID0gKGJhc2VkaXI6IHN0cmluZywgbmFtZTogc3RyaW5nLCBleHRlbnNpb25zOiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG4gIGxldCBmaWxlTmFtZSA9IG5hbWU7XG5cbiAgZXh0ZW5zaW9ucy5zb21lKChleHQpID0+IHtcbiAgICBpZihmaWxlTmFtZSAhPT0gJy4uJykge1xuICAgICAgY29uc3QgZnVsbFBhdGggPSByZXNvbHZlKGAke2Jhc2VkaXJ9LyR7ZmlsZU5hbWV9JHtleHR9YCk7XG5cbiAgICAgIGlmKGV4aXN0c1N5bmMoZnVsbFBhdGgpKSB7XG4gICAgICAgIGZpbGVOYW1lID0gZnVsbFBhdGg7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmKGZpbGVOYW1lICE9PSAnaW5kZXgnKSB7XG4gICAgICBjb25zdCBpbmRleEZpbGUgPSByZXNvbHZlKGAke2Jhc2VkaXJ9LyR7ZmlsZU5hbWV9L2luZGV4JHtleHR9YCk7XG5cbiAgICAgIGlmKGV4aXN0c1N5bmMoaW5kZXhGaWxlKSkge1xuICAgICAgICBmaWxlTmFtZSA9IGluZGV4RmlsZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcblxuICByZXR1cm4gZmlsZU5hbWU7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9ICh2YWx1ZSwgb3B0aW9ucykgPT4ge1xuICBsZXQgZmlsZU5hbWUgPSB2YWx1ZTtcblxuICBpZihmaWxlTmFtZSA9PT0gJycpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGlzU2VxdWVuY2VyID0gZmlsZU5hbWUuc3RhcnRzV2l0aCgnamVzdC1zZXF1ZW5jZXItJyk7XG5cbiAgaWYoaXNTZXF1ZW5jZXIpIHtcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnJlcGxhY2UoJ2plc3Qtc2VxdWVuY2VyLScsICcnKTtcbiAgfVxuXG4gIGNvbnN0IHtiYXNlZGlyLCBleHRlbnNpb25zID0gWycuanMnLCAnLnRzJ119ID0gb3B0aW9ucztcbiAgY29uc3QgZXhpc3RpbmdFeHQgPSBleHRuYW1lKGZpbGVOYW1lKSB8fCAnJztcbiAgY29uc3QgaGFzRXh0ZW5zaW9uID0gZXhpc3RpbmdFeHQgIT09ICcnICYmIGV4dGVuc2lvbnMuaW5jbHVkZXMoZXhpc3RpbmdFeHQpO1xuICBjb25zdCBpc0Fic29sdXRlID0gZmlsZU5hbWUuaW5kZXhPZignLycpID09PSAwO1xuXG4gIGlmKGlzQWJzb2x1dGUpIHtcbiAgICBpZihoYXNFeHRlbnNpb24pIHtcbiAgICAgIHJldHVybiBleGlzdHNTeW5jKGZpbGVOYW1lKSA/IGZpbGVOYW1lIDogbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0RnVsbFBhdGgoZmlsZU5hbWUsICdpbmRleCcsIGV4dGVuc2lvbnMpO1xuICB9XG5cbiAgaWYoZmlsZU5hbWUgPT09ICcuLicpIHtcbiAgICByZXR1cm4gZ2V0RnVsbFBhdGgoYmFzZWRpciwgJy4uJywgZXh0ZW5zaW9ucyk7XG4gIH1cblxuICBjb25zdCBoYXNCYXNlID0gZmlsZU5hbWUuaW5kZXhPZignLi8nKSA+PSAwIHx8IGZpbGVOYW1lLmluZGV4T2YoJy4uLycpID49IDA7XG5cbiAgaWYoaGFzQmFzZSkge1xuICAgIGlmKGhhc0V4dGVuc2lvbikge1xuICAgICAgcmV0dXJuIHJlc29sdmUoYCR7YmFzZWRpcn0vJHtmaWxlTmFtZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0RnVsbFBhdGgoYmFzZWRpciwgZmlsZU5hbWUsIGV4dGVuc2lvbnMpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVzb2x2ZVN5bmMoZmlsZU5hbWUsIHtiYXNlZGlyOiBgJHtfX2Rpcm5hbWV9Ly4uL2AsIGV4dGVuc2lvbnN9KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVN5bmMoZmlsZU5hbWUsIHtiYXNlZGlyOiBwcm9jZXNzLmN3ZCgpLCBleHRlbnNpb25zfSk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsTUFBTSxFQUFDLGVBQWMsUUFBUSxVQUFVO0FBQ3ZDLE1BQU0sRUFBQyxTQUFTLFlBQVcsUUFBUSxNQUFNO0FBQ3pDLE1BQU0sY0FBYyxRQUFRLGNBQWM7QUFFMUMsTUFBTSxjQUFjLENBQUMsU0FBaUIsTUFBYyxlQUFpQztBQUNuRixNQUFJLFdBQVc7QUFFZixhQUFXLEtBQUssQ0FBQyxRQUFRO0FBQ3ZCLFFBQUcsYUFBYSxNQUFNO0FBQ3BCLFlBQU0sV0FBVyxRQUFRLEdBQUcsV0FBVyxXQUFXLEtBQUs7QUFFdkQsVUFBRyxXQUFXLFFBQVEsR0FBRztBQUN2QixtQkFBVztBQUNYLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUVBLFFBQUcsYUFBYSxTQUFTO0FBQ3ZCLFlBQU0sWUFBWSxRQUFRLEdBQUcsV0FBVyxpQkFBaUIsS0FBSztBQUU5RCxVQUFHLFdBQVcsU0FBUyxHQUFHO0FBQ3hCLG1CQUFXO0FBQ1gsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBRUEsV0FBTztBQUFBLEVBQ1QsQ0FBQztBQUVELFNBQU87QUFDVDtBQUVBLE9BQU8sVUFBVSxDQUFDLE9BQU8sWUFBWTtBQUNuQyxNQUFJLFdBQVc7QUFFZixNQUFHLGFBQWEsSUFBSTtBQUNsQixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sY0FBYyxTQUFTLFdBQVcsaUJBQWlCO0FBRXpELE1BQUcsYUFBYTtBQUNkLGVBQVcsU0FBUyxRQUFRLG1CQUFtQixFQUFFO0FBQUEsRUFDbkQ7QUFFQSxRQUFNLEVBQUMsU0FBUyxhQUFhLENBQUMsT0FBTyxLQUFLLE1BQUs7QUFDL0MsUUFBTSxjQUFjLFFBQVEsUUFBUSxLQUFLO0FBQ3pDLFFBQU0sZUFBZSxnQkFBZ0IsTUFBTSxXQUFXLFNBQVMsV0FBVztBQUMxRSxRQUFNLGFBQWEsU0FBUyxRQUFRLEdBQUcsTUFBTTtBQUU3QyxNQUFHLFlBQVk7QUFDYixRQUFHLGNBQWM7QUFDZixhQUFPLFdBQVcsUUFBUSxJQUFJLFdBQVc7QUFBQSxJQUMzQztBQUVBLFdBQU8sWUFBWSxVQUFVLFNBQVMsVUFBVTtBQUFBLEVBQ2xEO0FBRUEsTUFBRyxhQUFhLE1BQU07QUFDcEIsV0FBTyxZQUFZLFNBQVMsTUFBTSxVQUFVO0FBQUEsRUFDOUM7QUFFQSxRQUFNLFVBQVUsU0FBUyxRQUFRLElBQUksS0FBSyxLQUFLLFNBQVMsUUFBUSxLQUFLLEtBQUs7QUFFMUUsTUFBRyxTQUFTO0FBQ1YsUUFBRyxjQUFjO0FBQ2YsYUFBTyxRQUFRLEdBQUcsV0FBVyxVQUFVO0FBQUEsSUFDekM7QUFFQSxXQUFPLFlBQVksU0FBUyxVQUFVLFVBQVU7QUFBQSxFQUNsRDtBQUVBLE1BQUk7QUFDRixXQUFPLFlBQVksVUFBVSxFQUFDLFNBQVMsR0FBRyxpQkFBaUIsV0FBVSxDQUFDO0FBQUEsRUFDeEUsU0FBUSxPQUFOO0FBQ0EsUUFBSTtBQUNGLGFBQU8sWUFBWSxVQUFVLEVBQUMsU0FBUyxRQUFRLElBQUksR0FBRyxXQUFVLENBQUM7QUFBQSxJQUNuRSxTQUFRLFFBQU47QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -26,12 +26,13 @@ __export(file_exports, {
26
26
  module.exports = __toCommonJS(file_exports);
27
27
  var import_find_file_up = __toESM(require("find-file-up"));
28
28
  var import_fs_extra = require("fs-extra");
29
+ var import_path = require("path");
29
30
  const relativeFilePath = (filename, nodePath = "./", backUp = 0) => {
30
31
  const nestDepth = 10;
31
32
  if (backUp) {
32
33
  const filePath = import_find_file_up.default.sync(filename, nodePath, nestDepth);
33
34
  const previousPath = Array(backUp).fill(null).map(() => "../").join("");
34
- return path.resolve(filePath, previousPath);
35
+ return (0, import_path.resolve)(filePath, previousPath);
35
36
  }
36
37
  return import_find_file_up.default.sync(filename, nodePath, nestDepth);
37
38
  };
@@ -49,4 +50,4 @@ const getNodePath = (moduleName) => {
49
50
  getNodePath,
50
51
  relativeFilePath
51
52
  });
52
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2ZpbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZmluZEZpbGVVcCBmcm9tICdmaW5kLWZpbGUtdXAnO1xuaW1wb3J0IHtleGlzdHNTeW5jfSBmcm9tICdmcy1leHRyYSc7XG5cbi8vIEdldCBmaWxlIHBhdGhzIHJlbGF0aXZlIHRvIExleFxuZXhwb3J0IGNvbnN0IHJlbGF0aXZlRmlsZVBhdGggPSAoZmlsZW5hbWU6IHN0cmluZywgbm9kZVBhdGg6IHN0cmluZyA9ICcuLycsIGJhY2tVcDogbnVtYmVyID0gMCkgPT4ge1xuICBjb25zdCBuZXN0RGVwdGg6IG51bWJlciA9IDEwO1xuXG4gIGlmKGJhY2tVcCkge1xuICAgIGNvbnN0IGZpbGVQYXRoOiBzdHJpbmcgPSBmaW5kRmlsZVVwLnN5bmMoZmlsZW5hbWUsIG5vZGVQYXRoLCBuZXN0RGVwdGgpO1xuICAgIGNvbnN0IHByZXZpb3VzUGF0aDogc3RyaW5nID0gQXJyYXkoYmFja1VwKS5maWxsKG51bGwpLm1hcCgoKSA9PiAnLi4vJykuam9pbignJyk7XG4gICAgcmV0dXJuIHBhdGgucmVzb2x2ZShmaWxlUGF0aCwgcHJldmlvdXNQYXRoKTtcbiAgfVxuXG4gIHJldHVybiBmaW5kRmlsZVVwLnN5bmMoZmlsZW5hbWUsIG5vZGVQYXRoLCBuZXN0RGVwdGgpO1xufTtcblxuLy8gR2V0IGZpbGUgcGF0aHMgcmVsYXRpdmUgdG8gTGV4XG5leHBvcnQgY29uc3QgZ2V0Tm9kZVBhdGggPSAobW9kdWxlTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbW9kdWxlUGF0aDogc3RyaW5nID0gYG5vZGVfbW9kdWxlcy8ke21vZHVsZU5hbWV9YDtcbiAgY29uc3QgcmVwb1BhdGg6IHN0cmluZyA9IGZpbmRGaWxlVXAuc3luYyhtb2R1bGVQYXRoLCBfX2Rpcm5hbWUpO1xuXG4gIGlmKHJlcG9QYXRoICYmIGV4aXN0c1N5bmMocmVwb1BhdGgpKSB7XG4gICAgcmV0dXJuIHJlcG9QYXRoO1xuICB9XG5cbiAgY29uc3QgbG9jYWxQYXRoOiBzdHJpbmcgPSBmaW5kRmlsZVVwLnN5bmMobW9kdWxlUGF0aCwgJy4vJywgMTApIHx8IGAuLyR7bW9kdWxlUGF0aH1gO1xuICByZXR1cm4gbG9jYWxQYXRoO1xufTsiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLDBCQUF1QjtBQUN2QixzQkFBeUI7QUFHbEIsTUFBTSxtQkFBbUIsQ0FBQyxVQUFrQixXQUFtQixNQUFNLFNBQWlCLE1BQU07QUFDakcsUUFBTSxZQUFvQjtBQUUxQixNQUFHLFFBQVE7QUFDVCxVQUFNLFdBQW1CLDRCQUFXLEtBQUssVUFBVSxVQUFVLFNBQVM7QUFDdEUsVUFBTSxlQUF1QixNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLE1BQU0sS0FBSyxFQUFFLEtBQUssRUFBRTtBQUM5RSxXQUFPLEtBQUssUUFBUSxVQUFVLFlBQVk7QUFBQSxFQUM1QztBQUVBLFNBQU8sNEJBQVcsS0FBSyxVQUFVLFVBQVUsU0FBUztBQUN0RDtBQUdPLE1BQU0sY0FBYyxDQUFDLGVBQStCO0FBQ3pELFFBQU0sYUFBcUIsZ0JBQWdCO0FBQzNDLFFBQU0sV0FBbUIsNEJBQVcsS0FBSyxZQUFZLFNBQVM7QUFFOUQsTUFBRyxZQUFZLGdDQUFXLFFBQVEsR0FBRztBQUNuQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sWUFBb0IsNEJBQVcsS0FBSyxZQUFZLE1BQU0sRUFBRSxLQUFLLEtBQUs7QUFDeEUsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
53
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2ZpbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZmluZEZpbGVVcCBmcm9tICdmaW5kLWZpbGUtdXAnO1xuaW1wb3J0IHtleGlzdHNTeW5jfSBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQge3Jlc29sdmV9IGZyb20gJ3BhdGgnO1xuXG4vLyBHZXQgZmlsZSBwYXRocyByZWxhdGl2ZSB0byBMZXhcbmV4cG9ydCBjb25zdCByZWxhdGl2ZUZpbGVQYXRoID0gKGZpbGVuYW1lOiBzdHJpbmcsIG5vZGVQYXRoOiBzdHJpbmcgPSAnLi8nLCBiYWNrVXA6IG51bWJlciA9IDApID0+IHtcbiAgY29uc3QgbmVzdERlcHRoOiBudW1iZXIgPSAxMDtcblxuICBpZihiYWNrVXApIHtcbiAgICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gZmluZEZpbGVVcC5zeW5jKGZpbGVuYW1lLCBub2RlUGF0aCwgbmVzdERlcHRoKTtcbiAgICBjb25zdCBwcmV2aW91c1BhdGg6IHN0cmluZyA9IEFycmF5KGJhY2tVcCkuZmlsbChudWxsKS5tYXAoKCkgPT4gJy4uLycpLmpvaW4oJycpO1xuICAgIHJldHVybiByZXNvbHZlKGZpbGVQYXRoLCBwcmV2aW91c1BhdGgpO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRGaWxlVXAuc3luYyhmaWxlbmFtZSwgbm9kZVBhdGgsIG5lc3REZXB0aCk7XG59O1xuXG4vLyBHZXQgZmlsZSBwYXRocyByZWxhdGl2ZSB0byBMZXhcbmV4cG9ydCBjb25zdCBnZXROb2RlUGF0aCA9IChtb2R1bGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtb2R1bGVQYXRoOiBzdHJpbmcgPSBgbm9kZV9tb2R1bGVzLyR7bW9kdWxlTmFtZX1gO1xuICBjb25zdCByZXBvUGF0aDogc3RyaW5nID0gZmluZEZpbGVVcC5zeW5jKG1vZHVsZVBhdGgsIF9fZGlybmFtZSk7XG5cbiAgaWYocmVwb1BhdGggJiYgZXhpc3RzU3luYyhyZXBvUGF0aCkpIHtcbiAgICByZXR1cm4gcmVwb1BhdGg7XG4gIH1cblxuICBjb25zdCBsb2NhbFBhdGg6IHN0cmluZyA9IGZpbmRGaWxlVXAuc3luYyhtb2R1bGVQYXRoLCAnLi8nLCAxMCkgfHwgYC4vJHttb2R1bGVQYXRofWA7XG4gIHJldHVybiBsb2NhbFBhdGg7XG59OyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsMEJBQXVCO0FBQ3ZCLHNCQUF5QjtBQUN6QixrQkFBc0I7QUFHZixNQUFNLG1CQUFtQixDQUFDLFVBQWtCLFdBQW1CLE1BQU0sU0FBaUIsTUFBTTtBQUNqRyxRQUFNLFlBQW9CO0FBRTFCLE1BQUcsUUFBUTtBQUNULFVBQU0sV0FBbUIsNEJBQVcsS0FBSyxVQUFVLFVBQVUsU0FBUztBQUN0RSxVQUFNLGVBQXVCLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUksTUFBTSxLQUFLLEVBQUUsS0FBSyxFQUFFO0FBQzlFLFdBQU8seUJBQVEsVUFBVSxZQUFZO0FBQUEsRUFDdkM7QUFFQSxTQUFPLDRCQUFXLEtBQUssVUFBVSxVQUFVLFNBQVM7QUFDdEQ7QUFHTyxNQUFNLGNBQWMsQ0FBQyxlQUErQjtBQUN6RCxRQUFNLGFBQXFCLGdCQUFnQjtBQUMzQyxRQUFNLFdBQW1CLDRCQUFXLEtBQUssWUFBWSxTQUFTO0FBRTlELE1BQUcsWUFBWSxnQ0FBVyxRQUFRLEdBQUc7QUFDbkMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFlBQW9CLDRCQUFXLEtBQUssWUFBWSxNQUFNLEVBQUUsS0FBSyxLQUFLO0FBQ3hFLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -1,16 +1,24 @@
1
- const path = require('path');
2
-
3
- const {getNodePath} = require('./dist/utils/file');
1
+ const {resolve} = require('path');
4
2
 
5
3
  const rootDir = process.cwd();
6
- const {jest, sourceFullPath, useTypescript} = JSON.parse(process.env.LEX_CONFIG || '{}');
4
+ const {jest, sourceFullPath, targetEnvironment, useTypescript} = JSON.parse(process.env.LEX_CONFIG || '{}');
7
5
 
8
6
  // Polyfill path
9
- const nodePath = path.resolve(__dirname, './node_modules');
7
+ const nodePath = resolve(__dirname, './node_modules');
10
8
  const setupFiles = [
11
- getNodePath('core-js'),
12
- getNodePath('regenerator-runtime/runtime.js')
9
+ `${nodePath}/core-js/stable/index.js`,
10
+ `${nodePath}/regenerator-runtime/runtime.js`
13
11
  ];
12
+ let testEnvironment = 'node';
13
+ let testEnvironmentOptions = {};
14
+
15
+ if(targetEnvironment === 'web') {
16
+ testEnvironment = 'jsdom';
17
+ testEnvironmentOptions = {
18
+ url: 'http://localhost'
19
+ };
20
+ }
21
+
14
22
  let moduleFileExtensions = ['js', 'json'];
15
23
  let testRegex = '(/__tests__/.*|\\.(test|spec))\\.(js)?$';
16
24
  let transformIgnorePatterns = ['[/\\\\]node_modules[/\\\\].+\\.(js)$'];
@@ -26,26 +34,47 @@ module.exports = {
26
34
  coverageDirectory: '<rootDir>/coverage',
27
35
  coveragePathIgnorePatterns: ['/node_modules/', '/dist', '/lib', '__snapshots__', '.d.ts'],
28
36
  coverageReporters: ['html', 'text'],
29
- moduleDirectories: ['node_modules'],
37
+ moduleDirectories: [
38
+ 'node_modules',
39
+ nodePath
40
+ ],
30
41
  moduleFileExtensions,
31
- moduleNameMapper: {'\\.(css|jpg|png|svg|txt)$': path.resolve(__dirname, './emptyModule')},
42
+ moduleNameMapper: {'\\.(css|jpg|png|svg|txt)$': resolve(__dirname, './emptyModule')},
32
43
  modulePaths: [
44
+ rootDir,
33
45
  `${rootDir}/node_modules`,
34
46
  nodePath,
35
47
  sourceFullPath
36
48
  ],
37
- resolver: path.resolve(__dirname, './dist/resolver.js'),
49
+ resolver: resolve(__dirname, './dist/resolver.js'),
38
50
  rootDir,
39
51
  setupFiles,
40
- testEnvironment: 'jsdom',
41
- testEnvironmentOptions: {
42
- url: 'http://localhost'
43
- },
52
+ testEnvironment,
53
+ testEnvironmentOptions,
44
54
  testPathIgnorePatterns: [
45
55
  '/node_modules/',
46
56
  `${nodePath}/`
47
57
  ],
48
58
  testRegex,
59
+ testRunner: `${nodePath}/jest-circus/runner.js`,
60
+ transform: {
61
+ '^.+\\.tsx?$': [
62
+ `${nodePath}/@nlabs/esbuild-jest/dist/index.js`,
63
+ {
64
+ loaders: {
65
+ '.js': 'js',
66
+ '.ts': 'ts',
67
+ '.test.ts': 'ts',
68
+ '.spec.ts': 'ts',
69
+ '.tsx': 'tsx',
70
+ '.test.tsx': 'tsx',
71
+ '.spec.tsx': 'tsx'
72
+ },
73
+ sourcemap: true
74
+ }
75
+ ],
76
+ '\\.(gql|graphql)$': 'jest-transform-graphql'
77
+ },
49
78
  transformIgnorePatterns,
50
79
  verbose: false,
51
80
  ...jest
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nlabs/lex",
3
- "version": "1.36.0",
3
+ "version": "1.37.2",
4
4
  "description": "Lex",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -46,6 +46,7 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@luckycatfactory/esbuild-graphql-loader": "^3.7.0",
49
+ "@nlabs/esbuild-jest": "^1.37.2",
49
50
  "@nlabs/gothamjs": "^0.8.2",
50
51
  "@nlabs/webpack-plugin-static-site": "^0.1.1",
51
52
  "acorn": "^8.7.0",
@@ -65,8 +66,7 @@
65
66
  "cssnano": "^5.1.5",
66
67
  "dotenv-webpack": "^7.1.0",
67
68
  "download-npm-package": "^3.1.12",
68
- "esbuild": "^0.14.29",
69
- "esbuild-jest": "^0.5.0",
69
+ "esbuild": "^0.14.48",
70
70
  "esbuild-loader": "^2.18.0",
71
71
  "execa": "5.1.1",
72
72
  "exports-loader": "^4.0.0",
@@ -82,6 +82,7 @@
82
82
  "https-browserify": "^1.0.0",
83
83
  "imports-loader": "^4.0.0",
84
84
  "jest": "^28.1.2",
85
+ "jest-circus": "^28.1.2",
85
86
  "jest-cli": "^28.1.2",
86
87
  "jest-environment-jsdom": "^28.1.2",
87
88
  "jest-transform-graphql": "^2.1.0",
@@ -136,7 +137,7 @@
136
137
  "webpack-plugin-serve": "^1.6.0"
137
138
  },
138
139
  "devDependencies": {
139
- "@nlabs/execa-mock": "^1.36.0",
140
+ "@nlabs/execa-mock": "^1.37.0",
140
141
  "@types/jest": "^28.1.4",
141
142
  "@types/luxon": "^2.3.1",
142
143
  "@types/node": "^18.0.3",
@@ -144,8 +145,8 @@
144
145
  "@types/react": "^18.0.15",
145
146
  "@types/webpack": "^5.28.0",
146
147
  "eslint": "^8.12.0",
147
- "eslint-config-styleguidejs": "^2.1.2",
148
+ "eslint-config-styleguidejs": "^3.0.0",
148
149
  "lerna": "^5.1.8"
149
150
  },
150
- "gitHead": "80d43c91c93fd41e4cc604efc8f8b72b7ef04f50"
151
+ "gitHead": "18fd8dc042a378ee1ce21e9f8e54e20e737d5bf8"
151
152
  }
Binary file