UNPKG

@hap-toolkit/packager

Version:

@hap-toolkit/packager

3 lines (2 loc) 2.85 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=diagnosisLoader;var _parser=require("@babel/parser"),_generator=_interopRequireDefault(require("@babel/generator")),types=_interopRequireWildcard(require("@babel/types")),_loaderUtils=_interopRequireDefault(require("loader-utils")),_compiler=require("@hap-toolkit/compiler"),_traverse=_interopRequireDefault(require("@babel/traverse"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=_getRequireWildcardCache(t);if(r&&r.has(e))return r.get(e);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var a=o?Object.getOwnPropertyDescriptor(e,n):null;a&&(a.get||a.set)?Object.defineProperty(i,n,a):i[n]=e[n]}return i.default=e,r&&r.set(e,i),i}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function diagnosisLoader(e){const t=_loaderUtils.default.getOptions(this)||{},r=_loaderUtils.default.parseQuery(this.resourceQuery||"?"),i="string"==typeof t.hostName?JSON.stringify(t.hostName):"QUICKAPP_SERVER_HOST",o=t.hookName||"onCreate";if(r.uxType!==_compiler.ENTRY_TYPE.APP)return e;const n=(0,_compiler.parseFragmentsWithCache)(e).script[0]||{content:""},a=t.pureScript?e:n.content,s=(0,_parser.parse)(a,{sourceType:"module",plugins:["jsx"]}),p=types.importDeclaration([types.importDefaultSpecifier(types.identifier("_diagnosis"))],types.stringLiteral("@hap-toolkit/packager/lib/runtime/diagnosis.js")),u=s.program.body,c=types.blockStatement([types.expressionStatement(types.callExpression(types.identifier("_diagnosis"),[types.identifier(i)]))]);return u.unshift(p),(0,_traverse.default)(s,{ExportDefaultDeclaration(e){let t;const r=e.node.declaration;if("ObjectExpression"!==r.type){const t=e.scope.generateUidIdentifier("replace");e.node.declaration=t;const i=types.variableDeclaration("const",[types.variableDeclarator(t,r)]),n=types.assignmentExpression("=",types.memberExpression(t,types.identifier(o)),types.functionExpression(types.identifier(o),[],c));return e.insertBefore(i),void e.insertBefore(n)}t=r.properties;let i,n=!1;if(t.forEach(((e,t)=>{e.key.name===o&&!0===e.method&&(i=t,n=!0)})),n)return void(t[i].body.body=c.body.concat(t[i].body.body));const a=types.identifier(o),s=c,p=types.objectMethod("method",a,[],s);e.node.declaration.properties.push(p)}}),e=t.pureScript?(0,_generator.default)(s).code:e.replace(/<script.*?>([\s\S]+)<\/script>/,(function(){return`<script>\n${(0,_generator.default)(s).code}\n<\/script>`}))} //# sourceMappingURL=diagnosis-loader.js.map