{"version":3,"sources":["jsdelivr-header.js","/npm/@haici/taro-inject-loader@1.0.2/lib/index.js"],"names":[],"mappings":"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","file":"/npm/@haici/taro-inject-loader@1.0.2/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@haici/taro-inject-loader@1.0.2/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","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = _default;\nvar _generator = _interopRequireDefault(require(\"@babel/generator\"));\nvar _traverse = _interopRequireDefault(require(\"@babel/traverse\"));\nvar utils = _interopRequireWildcard(require(\"@babel/types\"));\nvar _parser = require(\"@babel/parser\");\nvar _loaderUtils = require(\"loader-utils\");\nvar _schemaUtils = require(\"schema-utils\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar schema = {\n  type: 'object',\n  properties: {\n    importPath: {\n      type: 'string'\n    },\n    isPage: {\n      instanceof: 'Function'\n    },\n    injectType: {\n      type: 'string'\n    }\n  },\n  additionalProperties: false\n};\nvar INJECT_TYPE = {\n  APPEND: 'append',\n  WRAP: 'wrap'\n};\nfunction _default(source) {\n  // @ts-ignore\n  var webpackEnv = this;\n  var options = (0, _loaderUtils.getOptions)(webpackEnv);\n  (0, _schemaUtils.validate)(schema, options, {\n    name: 'taro-inject-component-loader'\n  });\n  var _ref = options || {},\n    _ref$importPath = _ref.importPath,\n    importPath = _ref$importPath === void 0 ? '' : _ref$importPath,\n    _ref$componentName = _ref.componentName,\n    componentName = _ref$componentName === void 0 ? 'WebpackInjected' : _ref$componentName,\n    _ref$isPage = _ref.isPage,\n    isPage = _ref$isPage === void 0 ? defaultJudgePage : _ref$isPage,\n    _ref$injectType = _ref.injectType,\n    injectType = _ref$injectType === void 0 ? INJECT_TYPE.APPEND : _ref$injectType;\n  // 获取原始文件地址\n  var filePath = webpackEnv.resourcePath;\n  if (typeof isPage === 'function' && isPage(filePath)) {\n    // 生成 AST\n    var ast = (0, _parser.parse)(source, {\n      sourceType: 'module',\n      plugins: ['jsx', 'typescript', 'classProperties']\n    });\n    // 如果有导入申明，则默认表示已手动导入了组件\n    var insert = false;\n    // 保存所有顶层的声明\n    var declarations = new Map();\n    (0, _traverse.default)(ast, {\n      // 查找是否有导入\n      ImportDeclaration: function ImportDeclaration(path) {\n        if (path.node.source.value === importPath) {\n          insert = true;\n        }\n      },\n      // 收集页面文件里的所有申明\n      // 类组件\n      ClassDeclaration: function ClassDeclaration(path) {\n        // 如果不是顶层的申明，则直接返回\n        if (path.parent.type !== 'Program') return;\n        var type = path.node.type;\n        var name = path.node.id.name || 'anonymous-class';\n        declarations.set(name, type);\n      },\n      // 函数申明\n      FunctionDeclaration: function FunctionDeclaration(path) {\n        var _path$node$id;\n        // 如果不是顶层的申明，则直接返回\n        if (path.parent.type !== 'Program') return;\n        var type = path.node.type;\n        var name = ((_path$node$id = path.node.id) === null || _path$node$id === void 0 ? void 0 : _path$node$id.name) || 'anonymous-function';\n        declarations.set(name, type);\n      },\n      // 表达式申明\n      VariableDeclaration: function VariableDeclaration(path) {\n        // 如果不是顶层的申明，则直接返回\n        if (path.parent.type !== 'Program') return;\n        path.node.declarations.forEach(function (declaration) {\n          // const a = () => {}\n          if (declaration.init.type === 'ArrowFunctionExpression') {\n            var _declaration$init, _declaration$id;\n            var type = (_declaration$init = declaration.init) === null || _declaration$init === void 0 ? void 0 : _declaration$init.type;\n            var name = (_declaration$id = declaration.id) === null || _declaration$id === void 0 ? void 0 : _declaration$id.name;\n            declarations.set(name, type);\n          }\n          // const a = function(){}\n          if (declaration.init.type === 'FunctionExpression') {\n            var _type = declaration.init.type;\n            var _name = declaration.id.name;\n            declarations.set(_name, _type);\n          }\n          // const a = class {}\n          if (declaration.init.type === 'ClassExpression') {\n            var _type2 = declaration.init.type;\n            var _name2 = declaration.id.name;\n            declarations.set(_name2, _type2);\n          }\n        });\n      }\n    });\n    if (!insert) {\n      // 记录组件插入状态\n      var state = {\n        importedDeclaration: false,\n        importedComponent: false\n      };\n      (0, _traverse.default)(ast, {\n        // 添加申明\n        ImportDeclaration: function ImportDeclaration(path) {\n          if (!state.importedDeclaration) {\n            state.importedDeclaration = true;\n            path.insertBefore(utils.importDeclaration([utils.importDefaultSpecifier(utils.identifier('' + componentName))], utils.stringLiteral('' + importPath)));\n          }\n        },\n        // 默认导出的为页面组件\n        ExportDefaultDeclaration: function ExportDefaultDeclaration(path) {\n          // 如果默认导出的是函数\n          if (path.node.declaration.type === 'FunctionDeclaration') {\n            var mainFnBody = path.node.declaration.body.body;\n            var length = mainFnBody.length;\n            var last = mainFnBody[length - 1];\n            insertComponent(last, '' + componentName, state, injectType);\n          }\n          // 默认导出箭头函数\n          if (path.node.declaration.type === 'ArrowFunctionExpression') {\n            // export default () => { return <View></View> }\n            if (path.node.declaration.body.type === 'BlockStatement') {\n              var _mainFnBody = path.node.declaration.body.body;\n              var _length = _mainFnBody.length;\n              var _last = _mainFnBody[_length - 1];\n              insertComponent(_last, '' + componentName, state, injectType);\n            } else {\n              // export default () => <View></View>\n              insertComponent(path.node.declaration.body, '' + componentName, state, injectType);\n            }\n          }\n          // 默认导出类\n          if (path.node.declaration.type === 'ClassDeclaration') {\n            (0, _traverse.default)(path.node, {\n              ClassMethod: function ClassMethod(path) {\n                if (path.node.key.name === 'render') {\n                  var body = path.node.body.body || [];\n                  var _last2 = body[body.length - 1];\n                  insertComponent(_last2, '' + componentName, state, injectType);\n                  return;\n                }\n              }\n            }, path.scope, path);\n          }\n          // 如果默认导出的是一个申明\n          if (path.node.declaration.type === 'Identifier') {\n            var name = path.node.declaration.name;\n            var componentType = declarations.get(name);\n            handelIdentifier({\n              componentType: componentType,\n              path: path,\n              componentName: componentName,\n              state: state,\n              name: name,\n              injectType: injectType\n            });\n          }\n          // class A {} or const A = () => {}\n          // export default connect()(A)\n          if (path.node.declaration.type === 'CallExpression') {\n            if (path.node.declaration.callee.callee.name === 'connect') {\n              var _name3 = path.node.declaration.arguments[0].name;\n              var _componentType = declarations.get(_name3);\n              handelIdentifier({\n                componentType: _componentType,\n                path: path,\n                componentName: componentName,\n                state: state,\n                name: _name3,\n                injectType: injectType\n              });\n            }\n          }\n        }\n      });\n      source = (0, _generator.default)(ast).code;\n    }\n  }\n  return source;\n}\nfunction createElement(name) {\n  var reactIdentifier = utils.identifier('React');\n  var createElementIdentifier = utils.identifier('createElement');\n  var callee = utils.memberExpression(reactIdentifier, createElementIdentifier);\n  return utils.callExpression(callee, [utils.identifier(name)]);\n}\nfunction createJSX(name) {\n  return utils.jSXElement(utils.jSXOpeningElement(utils.jsxIdentifier('' + name), [], true), null, [], true);\n}\nfunction createChildrenJSX(name, children) {\n  return utils.jSXElement(utils.jSXOpeningElement(utils.jsxIdentifier('' + name), [], false), utils.jSXClosingElement(utils.jsxIdentifier('' + name)), children, true);\n}\nfunction insertComponent(node, componentName, state, injectType) {\n  if ((node === null || node === void 0 ? void 0 : node.type) === 'ReturnStatement') {\n    var _node$argument, _node$argument$callee, _node$argument$callee2, _node$argument2;\n    // createElement\n    if (((_node$argument = node.argument) === null || _node$argument === void 0 ? void 0 : (_node$argument$callee = _node$argument.callee) === null || _node$argument$callee === void 0 ? void 0 : (_node$argument$callee2 = _node$argument$callee.property) === null || _node$argument$callee2 === void 0 ? void 0 : _node$argument$callee2.name) === 'createElement' && !state.importedComponent) {\n      state.importedComponent = true;\n      var reactCreateArguments = node.argument.arguments;\n      reactCreateArguments.push(createElement(componentName));\n    }\n    // JSX\n    if (((_node$argument2 = node.argument) === null || _node$argument2 === void 0 ? void 0 : _node$argument2.type) === 'JSXElement' && !state.importedComponent) {\n      state.importedComponent = true;\n      if (injectType === INJECT_TYPE.APPEND) {\n        node.argument.children.push(createJSX(componentName));\n      } else if (injectType === INJECT_TYPE.WRAP) {\n        node.argument = createChildrenJSX(componentName, [node.argument]);\n      }\n    }\n  }\n  if ((node === null || node === void 0 ? void 0 : node.type) === 'JSXElement' && !state.importedComponent) {\n    node.children.push(createJSX(componentName));\n  }\n}\nfunction defaultJudgePage(filePath) {\n  // 兼容 windows 路径\n  var formatFilePath = filePath.replace(/\\\\/g, '/');\n  return /(package-.+\\/)?pages\\/.+\\/index\\.[tj]sx$/.test(formatFilePath);\n}\nfunction handelIdentifier(_ref2) {\n  var componentType = _ref2.componentType,\n    path = _ref2.path,\n    componentName = _ref2.componentName,\n    state = _ref2.state,\n    name = _ref2.name,\n    injectType = _ref2.injectType;\n  if (componentType === 'FunctionExpression' || componentType === 'FunctionDeclaration') {\n    // const A = function (){} or functionA () {}\n    // export default A\n    (0, _traverse.default)(path.parent, {\n      FunctionExpression: function FunctionExpression(path) {\n        var _path$node, _path$node$body;\n        var mainFnBody = (_path$node = path.node) === null || _path$node === void 0 ? void 0 : (_path$node$body = _path$node.body) === null || _path$node$body === void 0 ? void 0 : _path$node$body.body;\n        var length = mainFnBody.length;\n        var last = mainFnBody[length - 1];\n        insertComponent(last, '' + componentName, state, injectType);\n      },\n      FunctionDeclaration: function FunctionDeclaration(path) {\n        var _path$node2, _path$node2$body;\n        var mainFnBody = (_path$node2 = path.node) === null || _path$node2 === void 0 ? void 0 : (_path$node2$body = _path$node2.body) === null || _path$node2$body === void 0 ? void 0 : _path$node2$body.body;\n        var length = mainFnBody.length;\n        var last = mainFnBody[length - 1];\n        insertComponent(last, '' + componentName, state, injectType);\n      }\n    });\n  } else if (componentType === 'ClassExpression' || componentType === 'ClassDeclaration') {\n    // const A = class {} or class A {}\n    // export default A\n    (0, _traverse.default)(path.parent, {\n      ClassMethod: function ClassMethod(path) {\n        if (path.node.key.name === 'render') {\n          var body = path.node.body.body || [];\n          var last = body[body.length - 1];\n          insertComponent(last, '' + componentName, state, injectType);\n        }\n      },\n      ClassDeclaration: function ClassDeclaration(path) {\n        path.node.body.body.map(function (cmItem) {\n          if (cmItem.key.name === 'render') {\n            var body = cmItem.body.body || [];\n            var last = body[body.length - 1];\n            insertComponent(last, '' + componentName, state, injectType);\n          }\n        });\n      }\n    });\n  } else if (componentType === 'ArrowFunctionExpression') {\n    // const A = () => {}\n    // export default A\n    (0, _traverse.default)(path.parent, {\n      VariableDeclarator: function VariableDeclarator(path) {\n        var _path$node$init;\n        if (path.node.id.type !== 'Identifier') return;\n        if (((_path$node$init = path.node.init) === null || _path$node$init === void 0 ? void 0 : _path$node$init.type) !== 'ArrowFunctionExpression') return;\n        // const A = () => {}\n        // export default A\n        if (path.node.init.body.type == 'BlockStatement') {\n          if (name === path.node.id.name) {\n            var mainFnBody = path.node.init.body.body;\n            var length = mainFnBody.length;\n            var last = mainFnBody[length - 1];\n            insertComponent(last, '' + componentName, state, injectType);\n          }\n        } else {\n          // const A = () => <div></div>\n          // export default A\n          insertComponent(path.node.init.body, '' + componentName, state, injectType);\n        }\n      }\n    });\n  }\n}"]}