forked from enviPath/enviPy
Current Dev State
This commit is contained in:
28
static/js/ketcher2/node_modules/replace-requires/index.js
generated
vendored
Normal file
28
static/js/ketcher2/node_modules/replace-requires/index.js
generated
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
'use strict'
|
||||
|
||||
var detective = require('detective')
|
||||
var patch = require('patch-text')
|
||||
var hasRequire = require('has-require')
|
||||
var extend = require('xtend')
|
||||
|
||||
module.exports = function replaceRequires (code, replacements) {
|
||||
var checker = new hasRequire.Checker(code)
|
||||
var ids = Object.keys(replacements)
|
||||
if (!ids.some(checker.has, checker)) return code
|
||||
return patch(code, detective
|
||||
.find(code, {nodes: true})
|
||||
.nodes
|
||||
.filter(requireLiteral)
|
||||
.map(function (node) {
|
||||
return extend(node, {replacement: replacements[node.arguments[0].value]})
|
||||
})
|
||||
.filter(function (node) {
|
||||
return node.replacement != null
|
||||
}))
|
||||
|
||||
}
|
||||
|
||||
function requireLiteral (node) {
|
||||
var arg = node.arguments[0]
|
||||
return arg && arg.type === 'Literal'
|
||||
}
|
||||
Reference in New Issue
Block a user