peryl 1.5.18 → 1.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-esmodule/hash.js +1 -1
- package/dist/browser-esmodule/hash.js.map +1 -1
- package/dist/browser-esmodule/index.js +1 -1
- package/dist/browser-esmodule/index.js.map +1 -1
- package/dist/browser-umd/hash.js +1 -1
- package/dist/browser-umd/hash.js.map +1 -1
- package/dist/browser-umd/index.js +1 -1
- package/dist/browser-umd/index.js.map +1 -1
- package/dist/demo/{hash_demo.ccae268a.js → hash_demo.0553e88f.js} +2 -2
- package/dist/demo/hash_demo.0553e88f.js.map +1 -0
- package/dist/demo/{hash_demo.a36c7cf5.js → hash_demo.393a402e.js} +2 -2
- package/dist/demo/hash_demo.393a402e.js.map +1 -0
- package/dist/demo/hash_demo.html +1 -1
- package/dist/hash.js +1 -1
- package/dist/hash.js.map +1 -1
- package/package.json +1 -1
- package/src/hash.ts +3 -2
- package/dist/demo/hash_demo.a36c7cf5.js.map +0 -1
- package/dist/demo/hash_demo.ccae268a.js.map +0 -1
|
@@ -18,7 +18,7 @@ const $b951870b67fa90fa$export$baec1e6ad0617c4b = (data)=>{
|
|
|
18
18
|
const path = dpath.map((p)=>encodeURIComponent(p)).join("/");
|
|
19
19
|
const query = Object.entries(dquery).reduce((p, c)=>{
|
|
20
20
|
if (typeof c[1] === "string") p.append(c[0], c[1]);
|
|
21
|
-
|
|
21
|
+
if (c[1] && typeof c[1].length === "number") c[1].forEach((v)=>p.append(c[0], v));
|
|
22
22
|
return p;
|
|
23
23
|
}, new URLSearchParams()).toString();
|
|
24
24
|
const str = `${path}${query ? "?" : ""}${query}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;AAQO,MAAM,4CAAiB,CAAC,OAAc,OAAO,mBAAmB,KAAK,SAAS,CAAC,SAAS,EAAE;AAC1F,MAAM,4CAAiB,CAAC,MAAgB,MAAM,KAAK,KAAK,CAAC,mBAAmB,QAAQ,SAAS;AAE7F,MAAM,4CAAgB,CAAoC,OAAjE;I,I,I;IAEI,MAAM,IAAI,OAAO,SAAS,WACpB,0CAAc,QACd,IAAmB;IACzB,MAAM,QAAQ,AAAA,CAAA,KAAA,EAAE,IAAI,AAAJ,MAAI,IAAA,IAAA,OAAA,KAAA,IAAA,KAAI,EAAE;IAC1B,MAAM,SAAS,AAAA,CAAA,KAAA,EAAE,KAAK,AAAL,MAAK,IAAA,IAAA,OAAA,KAAA,IAAA,KAAI,CAAA,CAAE;IAC5B,MAAM,OAAO,MAAM,GAAG,CAAC,CAAA,IAAK,mBAAmB,IAAI,IAAI,CAAC;IAExD,MAAM,QAAQ,OAAO,OAAO,CAAC,QACxB,MAAM,CACH,CAAC,GAAG,IADP;QAEO,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,UAChB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;
|
|
1
|
+
{"mappings":"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","sources":["src/hash.ts"],"sourcesContent":["\nexport interface HashUrlData <QueryKeys extends string = string> {\n path: string[];\n query: {\n [key in QueryKeys]?: string | string[];\n };\n}\n\nexport const hashJsonEncode = (data: any) => data ? encodeURIComponent(JSON.stringify(data)) : \"\";\nexport const hashJsonDecode = (str: string) => str ? JSON.parse(decodeURIComponent(str)) : undefined;\n\nexport const hashUrlEncode = <QueryKeys extends string = string>(data: HashUrlData<QueryKeys>): string => {\n // console.log(data);\n const d = typeof data === \"string\"\n ? hashUrlDecode(data)\n : data as HashUrlData;\n const dpath = d.path ?? [];\n const dquery = d.query ?? {};\n const path = dpath.map(p => encodeURIComponent(p)).join(\"/\");\n // const params = new URLSearchParams();\n const query = Object.entries(dquery)\n .reduce(\n (p, c) => {\n if (typeof c[1] === \"string\") {\n p.append(c[0], c[1]);\n }\n if (c[1] && typeof c[1].length === \"number\") {\n (c[1] as Array<any>).forEach(v => p.append(c[0], v));\n }\n return p;\n },\n new URLSearchParams())\n .toString();\n const str = `${path}${query ? \"?\" : \"\"}${query}`;\n // console.log(str);\n return str;\n};\n\nexport const hashUrlDecode = <QueryKeys extends string = string>(str: string): HashUrlData<QueryKeys> => {\n // console.log(str);\n const [pathStr, queryStr] = str.split(\"?\");\n // const pathStr = str.substring(0, str.indexOf(\"?\"));\n // const queryStr = str.substring(str.indexOf(\"?\") + 1);\n const path = pathStr.split(\"/\").map(p => decodeURIComponent(p));\n const query = {} as any;\n for (const e of new URLSearchParams(queryStr).entries()) {\n const [k, v] = e;\n if (k in query) {\n if (typeof query[k] === \"string\") {\n query[k] = [query[k], v];\n } else {\n query[k].push(v);\n }\n } else {\n query[k] = v;\n }\n }\n const data = { path, query };\n // console.log(data);\n return data;\n};\n\nexport class Hash<T = string> {\n\n private _cb?: (data: T) => void;\n\n private _emitWritten: boolean;\n private _writtenDataJson?: string;\n\n private _encode = (data: T) => String(data);\n private _decode = (str: string) => str as any as T;\n\n constructor(emitWritten = true) {\n this._emitWritten = emitWritten;\n }\n\n onChange(cb: (data: T) => void): this {\n this._cb = cb;\n return this;\n }\n\n coders(encode: (data: T) => string,\n decode: (data: string) => T): this {\n this._encode = encode;\n this._decode = decode;\n return this;\n }\n\n listen(): this {\n this._cb && this._cb(this.read());\n if (\"onhashchange\" in window) {\n onhashchange = () => {\n const data = this.read();\n // console.log(\"onhashchange\", location.hash, data);\n if (!this._emitWritten) {\n const written = this._writtenDataJson === JSON.stringify(data);\n this._writtenDataJson = undefined;\n if (!written) {\n this._cb && this._cb(data);\n }\n } else {\n this._cb && this._cb(data);\n }\n };\n } else {\n alert(`Browser \"window.onhashchange\" not implemented`);\n // let prevHash = location.hash;\n // if (this._iId) {\n // clearInterval(this._iId);\n // }\n // this._iId = setInterval(() => {\n // if (location.hash !== prevHash) {\n // prevHash = location.hash;\n // const written = this._dataJson === location.hash;\n // this._dataJson = undefined;\n // if (this._emitWritten || !written) {\n // this._cb && this._cb(data);\n // }\n // }\n // }, 500);\n }\n return this;\n }\n\n read(): T {\n return this._decode(location.hash.slice(1));\n }\n\n write(data: T): this {\n location.hash = \"#\" + this._encode(data);\n // location.hash = \"#\" + this._encode(data);\n if (!this._emitWritten) {\n this._writtenDataJson = JSON.stringify(data);\n this._cb && this._cb(data);\n }\n return this;\n }\n\n}\n"],"names":[],"version":3,"file":"hash.js.map"}
|
|
@@ -760,7 +760,7 @@ const $b951870b67fa90fa$export$baec1e6ad0617c4b = (data)=>{
|
|
|
760
760
|
const path = dpath.map((p)=>encodeURIComponent(p)).join("/");
|
|
761
761
|
const query = Object.entries(dquery).reduce((p, c)=>{
|
|
762
762
|
if (typeof c[1] === "string") p.append(c[0], c[1]);
|
|
763
|
-
|
|
763
|
+
if (c[1] && typeof c[1].length === "number") c[1].forEach((v)=>p.append(c[0], v));
|
|
764
764
|
return p;
|
|
765
765
|
}, new URLSearchParams()).toString();
|
|
766
766
|
const str = `${path}${query ? "?" : ""}${query}`;
|