UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

68 lines (67 loc) 2.35 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; exports.__esModule = true; exports.MiniProgramUrl = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _lodashUni = require("lodash-uni"); var _createUrlQueryString = require("./createUrlQueryString"); var _parseUrlQueryString = require("./parseUrlQueryString"); /** * 小程序链接。 */ var MiniProgramUrl = exports.MiniProgramUrl = /*#__PURE__*/function () { function MiniProgramUrl(payload) { this.payload = {}; if (typeof payload === 'string') { this.update(JSON.parse(payload.substring(5))); } else { this.update(payload); } } var _proto = MiniProgramUrl.prototype; _proto.getPath = function getPath() { return (this.payload.path ? this.payload.path.substring(1) : '') + (this.payload.query ? "?" + (0, _createUrlQueryString.createUrlQueryString)(this.payload.query) : ''); }; _proto.update = function update(payload) { if (payload.path) { if (payload.path[0] !== '/') { payload.path = "/" + payload.path; } var _payload$path$split = payload.path.split('?'), path = _payload$path$split[0], query = _payload$path$split[1]; if (query) { payload.path = path; payload.query = (0, _extends2.default)({}, (0, _parseUrlQueryString.parseUrlQueryString)(query), payload.query); } } (0, _lodashUni.assign)(this.payload, payload); return this; }; _proto.toJson = function toJson() { return this.payload; }; _proto.toString = function toString() { return "mp://" + JSON.stringify(this.payload); }; _proto.toWxOpenLaunchWeappAttrs = function toWxOpenLaunchWeappAttrs() { return { username: this.payload.rawId, path: this.getPath(), envVersion: this.payload.version, extraData: this.payload.data ? JSON.stringify(this.payload.data) : undefined }; }; _proto.toWxNavigateToMiniProgramParams = function toWxNavigateToMiniProgramParams() { return { appId: this.payload.appId, path: this.getPath(), envVersion: this.payload.version, extraData: this.payload.data }; }; MiniProgramUrl.is = function is(value) { return value.substring(0, 5) === 'mp://'; }; return MiniProgramUrl; }();