Home

tailwind-ctp-intellisense @94786b12de7f42e9710553c6b511d1d0d541b244 - refs - log -
-
https://git.jolheiser.com/tailwind-ctp-intellisense.git
Tailwind intellisense + Catppuccin
tailwind-ctp-intellisense / packages / tailwindcss-intellisense / src / class-names / decache.js
- raw
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import * as path from 'path' // if module is locally defined we path.resolve it
import callsite from 'callsite'
import Module from 'module'

function find(moduleName) {
  if (moduleName[0] === '.') {
    var stack = callsite()
    for (var i in stack) {
      var filename = stack[i].getFileName()
      // if (filename !== module.filename) {
      moduleName = path.resolve(path.dirname(filename), moduleName)
      break
      // }
    }
  }
  try {
    return __non_webpack_require__.resolve(moduleName)
  } catch (e) {
    return
  }
}

/**
 * Removes a module from the cache. We need this to re-load our http_request !
 * see: http://stackoverflow.com/a/14801711/1148249
 */
function decache(moduleName) {
  moduleName = find(moduleName)

  if (!moduleName) {
    return
  }

  // Run over the cache looking for the files
  // loaded by the specified module name
  searchCache(moduleName, function(mod) {
    delete __non_webpack_require__.cache[mod.id]
  })

  // Remove cached paths to the module.
  // Thanks to @bentael for pointing this out.
  Object.keys(Module.prototype.constructor._pathCache).forEach(function(
    cacheKey
  ) {
    if (cacheKey.indexOf(moduleName) > -1) {
      delete Module.prototype.constructor._pathCache[cacheKey]
    }
  })
}

/**
 * Runs over the cache to search for all the cached
 * files
 */
function searchCache(moduleName, callback) {
  // Resolve the module identified by the specified name
  var mod = __non_webpack_require__.resolve(moduleName)
  var visited = {}

  // Check if the module has been resolved and found within
  // the cache no else so #ignore else http://git.io/vtgMI
  /* istanbul ignore else */
  if (mod && (mod = __non_webpack_require__.cache[mod]) !== undefined) {
    // Recursively go over the results
    ;(function run(current) {
      visited[current.id] = true
      // Go over each of the module's children and
      // run over it
      current.children.forEach(function(child) {
        // ignore .node files, decachine native modules throws a
        // "module did not self-register" error on second require
        if (path.extname(child.filename) !== '.node' && !visited[child.id]) {
          run(child)
        }
      })

      // Call the specified callback providing the
      // found module
      callback(current)
    })(mod)
  }
}

export default decache