vtils
Version:
一个面向业务的 JavaScript/TypeScript 实用程序库。
63 lines • 2.06 kB
JavaScript
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;
}();