{"version":3,"sources":["jsdelivr-header.js","/npm/dn-middleware-grep@0.0.3/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,OAAS,QAAQ,UACjB,KAAO,QAAQ,UACf,GAAK,QAAQ,MACb,KAAO,QAAQ,WACf,KAAO,QAAQ,QACf,GAAK,QAAQ,MAOnB,OAAO,QAAU,SAAU,GAOzB,OALA,EAAK,IAAM,EAAK,KAAO,kBACvB,EAAK,KAAO,EAAK,MAAQ,UAIlB,eAAgB,GAErB,IAAI,EAAY,GACZ,EAAe,KAAK,UAAU,GAAG,qBACjC,EAAc,KAAK,UAAU,GAAG,KAAK,eAEvC,EADE,GAAG,WAAW,SACE,KAAK,MAAM,SAAS,SAEpB,KAAK,MAAM,SAAS,GAExC,GAAK,KAAK,SAAS,EAAW,QAE9B,IAAI,EAAW,MAAO,IACpB,IAAI,QAAa,KAAK,MAAM,SAAS,GACrC,aAAa,KAAK,KAAK,EAAK,WAAY,GAAG,MAAM,EAGnD,IAAI,EAAS,OAAO,OAAO,MAEvB,QAAc,OAAO,EAAK,WACxB,QAAQ,IAAI,EAAM,KAAI,GACnB,WACL,IAAI,QAAiB,EAAS,GAC1B,EAAS,OAAS,IACtB,EAAO,GAAQ,EAAS,KAAI,GAAO,KAAK,MACzC,EAJM,MAOT,KAAK,MAAM,KAAK,GAAQ,CAAC,EAAM,KAC7B,KAAK,QAAQ,IAAI,IACjB,KAAK,QAAQ,IAAI,GACjB,KAAK,QAAQ,KAAK,EAAS,KAAK,GAAG,MACnC,KAAK,QAAQ,IAAI,GAAG,IAGtB,IAAI,EAAY,OAAO,KAAK,GAAQ,OACpC,GAAK,EAAY,GAAkB,WAAb,EAAK,MACxB,EAAY,GAAkB,WAAb,EAAK,KACvB,MAAM,IAAI,MAAM,SAAS,EAAK,UAAU,YAG1C,GAEF,CAEF","file":"/npm/dn-middleware-grep@0.0.3/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/dn-middleware-grep@0.0.3/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const globby = require('globby');\nconst grep = require('./grep');\nconst os = require('os');\nconst yaml = require('js-yaml');\nconst path = require('path');\nconst fs = require('fs');\n\n/**\n * 这是一个标准的中间件工程模板\n * @param {object} opts cli 传递过来的参数对象 (在 pipe 中的配置)\n * @return {AsyncFunction} 中间件函数\n */\nmodule.exports = function (opts) {\n\n  opts.src = opts.src || './build/**/*.js';\n  opts.mode = opts.mode || 'exclude';\n\n  //外层函数的用于接收「参数对象」\n  //必须返回一个中间件处理函数\n  return async function (next) {\n\n    let rcContent = '';\n    let commonRCFile = path.normalize(`${__dirname}/.greprc`);\n    let localRCFile = path.normalize(`${this.cwd}/.greprc`);\n    if (fs.existsSync(localRCFile)) {\n      rcContent = await this.utils.readFile(localRCFile);\n    } else {\n      rcContent = await this.utils.readFile(commonRCFile);\n    }\n    rc = yaml.safeLoad(rcContent, 'utf8');\n\n    var scanFile = async (file) => {\n      let code = await this.utils.readFile(file);\n      return await grep.scan(code.toString(), rc.words);\n    };\n\n    let result = Object.create(null);\n\n    let files = await globby(opts.src);\n    await Promise.all(files.map(file => {\n      return (async () => {\n        let messages = await scanFile(file);\n        if (messages.length < 1) return;\n        result[file] = messages.map(msg => `  ${msg}`);\n      })();\n    }));\n\n    this.utils.each(result, (file, messages) => {\n      this.console.log('');\n      this.console.log(file);\n      this.console.warn(messages.join(os.EOL));\n      this.console.log('');\n    });\n\n    let fileCount = Object.keys(result).length;\n    if ((fileCount > 0 && opts.mode == 'exclude') ||\n      (fileCount < 1 && opts.mode == 'include')) {\n      throw new Error(`查找模式为 ${opts.mode}，在 ${fileCount} 个文件中找到`);\n    }\n\n    next();\n\n  };\n\n};"]}