UNPKG

vtils

Version:

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

63 lines 2.06 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import { assign } from 'lodash-uni'; import { createUrlQueryString } from "./createUrlQueryString.js"; import { parseUrlQueryString } from "./parseUrlQueryString.js"; /** * 小程序链接。 */ export var 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 ? "?" + 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 = _extends({}, parseUrlQueryString(query), payload.query); } } 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; }();