@koishijs/utils
Advanced tools
Comparing version 5.4.5 to 6.0.0
@@ -1,2 +0,4 @@ | ||
var U=Object.defineProperty;var o=(e,t)=>U(e,"name",{value:t,configurable:!0});import fe from"@koishijs/segment";import le from"schemastery";import de from"reggol";export*from"cosmokit";function k(e){return typeof e=="number"&&Math.floor(e)===e}o(k,"isInteger");async function Z(e){return new Promise(t=>setTimeout(t,e))}o(Z,"sleep");function _(e){return Object.values(e).filter(t=>typeof t=="string")}o(_,"enumKeys");function I(e,t,n){e[t]=n,e[n]=t}o(I,"defineEnumProperty");function A(e,t){return Object.entries(t).forEach(([n,s])=>{if(typeof e[n]=="undefined")return e[n]=t[n];typeof s=="object"&&typeof e[n]=="object"&&(e[n]=A(e[n],s))}),e}o(A,"merge");function J(e,t){if(!e[t])throw new Error(`missing configuration "${t}"`);return e[t]}o(J,"assertProperty");function V(e){let{stack:t}=e instanceof Error?e:new Error(e);return t}o(V,"coerce");function q(e,t,n){e[t]=Reflect.get(e,n),Reflect.deleteProperty(e,n)}o(q,"renameProperty");var w=typeof self!="undefined"?self:global;function v(e,t){return e in w&&t instanceof w[e]||Object.prototype.toString.call(t).slice(8,-1)===e}o(v,"isType");import{defineProperty as b,noop as E}from"cosmokit";var T=["number","string","bigint","boolean","symbol","function"],M=["Date","RegExp","Set","Map","WeakSet","WeakMap","Array"];function O(e,t){return v("Date",e)?K(e,t):Array.isArray(e)?N(e,t):$(e,t)}o(O,"observeProperty");function R(e){return typeof e=="symbol"||e.startsWith("$")}o(R,"untracked");function $(e,t){let n=t;if(!t){let i=Object.create(null);b(e,"$diff",i),t=o(r=>{R(r)||(i[r]=e[r])},"notify")}return new Proxy(e,{get(i,r){let p=Reflect.get(i,r);return!p||T.includes(typeof p)||R(r)?p:O(p,n||(()=>t(r)))},set(i,r,p){let c=i[r]===p,u=Reflect.set(i,r,p);return c||!u?u:(t(r),!0)},deleteProperty(i,r){let p=!(r in i),c=Reflect.deleteProperty(i,r);return p||!c?c:(t(r),!0)}})}o($,"observeObject");var C=["pop","shift","splice","sort"];function N(e,t){let n={};for(let s of C)b(e,s,function(...i){return t(),Array.prototype[s].apply(this,i)});return new Proxy(e,{get(s,i){if(i in n)return n[i];let r=s[i];return!r||T.includes(typeof r)||typeof i=="symbol"||isNaN(i)?r:O(r,t)},set(s,i,r){return typeof i!="symbol"&&!isNaN(i)&&s[i]!==r&&t(),Reflect.set(s,i,r)}})}o(N,"observeArray");function K(e,t){for(let n of Object.getOwnPropertyNames(Date.prototype))n!=="valueOf"&&b(e,n,function(...s){let i=e.valueOf(),r=Date.prototype[n].apply(this,s);return e.valueOf()!==i&&t(),r});return e}o(K,"observeDate");function X(e,...t){if(T.includes(typeof e))throw new Error(`cannot observe immutable type "${typeof e}"`);if(!e)throw new Error("cannot observe null or undefined");let n=Object.prototype.toString.call(e).slice(8,-1);if(M.includes(n))throw new Error(`cannot observe instance of type "${n}"`);let s=E;typeof t[0]=="function"&&(s=t.shift());let i=$(e,null);return b(i,"$update",o(function(){let p={...this.$diff};if(Object.keys(p).length){for(let u in this.$diff)delete this.$diff[u];return s(p)}},"$update")),b(i,"$merge",o(function(p){for(let c in p){if(c in this.$diff)throw new Error(`unresolved diff key "${c}"`);e[c]=p[c]}return this},"$merge")),i}o(X,"observe");var x=class{constructor(t=Math.random()){this.value=t}bool(t){return t>=1?!0:t<=0?!1:this.value<t}real(...t){let n=t.length>1?t[0]:0,s=t[t.length-1];return this.value*(s-n)+n}int(...t){return Math.floor(this.real(...t))}pick(t){return t[Math.floor(this.value*t.length)]}splice(t){return t.splice(Math.floor(this.value*t.length),1)[0]}weightedPick(t){let n=Object.entries(t).reduce((r,[,p])=>r+p,0),s=this.value*n,i=0;for(let r in t)if(i+=t[r],s<i)return r}};o(x,"Random");(function(d){let e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function t(f=8,m=16){let l="";for(let a=0;a<f;++a)l+=e[Math.floor(Math.random()*m)];return l}d.id=t,o(t,"id");function n(...f){return new d().real(...f)}d.real=n,o(n,"real");function s(...f){return new d().int(...f)}d.int=s,o(s,"int");function i(f){return new d().pick(f)}d.pick=i,o(i,"pick");function r(f){let m=f.slice(),l=[];for(let a=f.length;a>0;--a)l.push(new d().splice(m));return l}d.shuffle=r,o(r,"shuffle");function p(f,m){f=f.slice();let l=[],a=Math.min(f.length,m);for(let h=0;h<a;h+=1){let S=Math.floor(Math.random()*f.length),[L]=f.splice(S,1);l.push(L)}return l}d.multiPick=p,o(p,"multiPick");function c(f){return new d().weightedPick(f)}d.weightedPick=c,o(c,"weightedPick");function u(f){return new d().bool(f)}d.bool=u,o(u,"bool")})(x||(x={}));function g(e){function t(n){if(typeof n!="object"||!n)return n;if(Array.isArray(n))return n.map(t);let s={};for(let i in n)s[e(i)]=t(n[i]);return s}return o(t,"modifyObject"),function(n){return typeof n=="string"?e(n):t(n)}}o(g,"deepen");var z=g(e=>e.replace(/[_-][a-z]/g,t=>t.slice(1).toUpperCase())),G=g(e=>j(e).replace(/_/g,"-").replace(/(?<!^)[A-Z]/g,t=>"-"+t.toLowerCase())),te=g(e=>j(e).replace(/-/g,"_").replace(/(?<!^)[A-Z]/g,t=>"_"+t.toLowerCase())),ne=z,re=G;function oe(e){return e.charAt(0).toUpperCase()+e.slice(1)}o(oe,"capitalize");function j(e){return e.charAt(0).toLowerCase()+e.slice(1)}o(j,"uncapitalize");var D=new Function("template","context","pattern",` | ||
var j=Object.defineProperty;var i=(e,t)=>j(e,"name",{value:t,configurable:!0});import Z from"schemastery";import k from"reggol";export*from"cosmokit";function N(e){return typeof e=="number"&&Math.floor(e)===e}i(N,"isInteger");async function A(e){return new Promise(t=>setTimeout(t,e))}i(A,"sleep");function F(e){return Object.values(e).filter(t=>typeof t=="string")}i(F,"enumKeys");function W(e,t,o){e[t]=o,e[o]=t}i(W,"defineEnumProperty");function $(e,t){return Object.entries(t).forEach(([o,s])=>{if(typeof e[o]>"u")return e[o]=t[o];typeof s=="object"&&typeof e[o]=="object"&&(e[o]=$(e[o],s))}),e}i($,"merge");function U(e,t){if(!e[t])throw new Error(`missing configuration "${t}"`);return e[t]}i(U,"assertProperty");function C(e){let{message:t,stack:o}=e instanceof Error?e:new Error(e),s=o.split(` | ||
`),n=s.findIndex(r=>r.endsWith(t));return s.slice(n).join(` | ||
`)}i(C,"coerce");function I(e,t,o){e[t]=Reflect.get(e,o),Reflect.deleteProperty(e,o)}i(I,"renameProperty");var h=typeof self<"u"?self:global;function g(e,t){return e in h&&t instanceof h[e]||Object.prototype.toString.call(t).slice(8,-1)===e}i(g,"isType");import{defineProperty as m,noop as M}from"cosmokit";var T=["number","string","bigint","boolean","symbol","function"],E=["Date","RegExp","Set","Map","WeakSet","WeakMap","Array"];function O(e,t){return g("Date",e)?S(e,t):Array.isArray(e)?G(e,t):w(e,t)}i(O,"observeProperty");function v(e){return typeof e=="symbol"||e.startsWith("$")}i(v,"untracked");function w(e,t){let o=t;if(!t){let n=Object.create(null);m(e,"$diff",n),t=i(r=>{v(r)||(n[r]=e[r])},"notify")}return new Proxy(e,{get(n,r){let c=Reflect.get(n,r);return!c||T.includes(typeof c)||v(r)?c:O(c,o||(()=>t(r)))},set(n,r,c){let f=n[r]===c,b=Reflect.set(n,r,c);return f||!b?b:(t(r),!0)},deleteProperty(n,r){let c=!(r in n),f=Reflect.deleteProperty(n,r);return c||!f?f:(t(r),!0)}})}i(w,"observeObject");var K=["pop","shift","splice","sort"];function G(e,t){let o={};for(let s of K)m(e,s,function(...n){return t(),Array.prototype[s].apply(this,n)});return new Proxy(e,{get(s,n){if(n in o)return o[n];let r=s[n];return!r||T.includes(typeof r)||typeof n=="symbol"||isNaN(n)?r:O(r,t)},set(s,n,r){return typeof n!="symbol"&&!isNaN(n)&&s[n]!==r&&t(),Reflect.set(s,n,r)}})}i(G,"observeArray");function S(e,t){for(let o of Object.getOwnPropertyNames(Date.prototype))o!=="valueOf"&&m(e,o,function(...s){let n=e.valueOf(),r=Date.prototype[o].apply(this,s);return e.valueOf()!==n&&t(),r});return e}i(S,"observeDate");function q(e,...t){if(T.includes(typeof e))throw new Error(`cannot observe immutable type "${typeof e}"`);if(!e)throw new Error("cannot observe null or undefined");let o=Object.prototype.toString.call(e).slice(8,-1);if(E.includes(o))throw new Error(`cannot observe instance of type "${o}"`);let s=M;typeof t[0]=="function"&&(s=t.shift());let n=w(e,null);return m(n,"$update",i(function(){let c={...this.$diff};if(Object.keys(c).length){for(let b in this.$diff)delete this.$diff[b];return s(c)}},"$update")),m(n,"$merge",i(function(c){for(let f in c){if(f in this.$diff)throw new Error(`unresolved diff key "${f}"`);e[f]=c[f]}return this},"$merge")),n}i(q,"observe");var x=class{constructor(t=Math.random()){this.value=t}bool(t){return t>=1?!0:t<=0?!1:this.value<t}real(...t){let o=t.length>1?t[0]:0,s=t[t.length-1];return this.value*(s-o)+o}int(...t){return Math.floor(this.real(...t))}pick(t){return t[Math.floor(this.value*t.length)]}splice(t){return t.splice(Math.floor(this.value*t.length),1)[0]}weightedPick(t){let o=Object.entries(t).reduce((r,[,c])=>r+c,0),s=this.value*o,n=0;for(let r in t)if(n+=t[r],s<n)return r}};i(x,"Random");(p=>{let e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function t(u=8,d=16){let l="";for(let a=0;a<u;++a)l+=e[Math.floor(Math.random()*d)];return l}p.id=t,i(t,"id");function o(...u){return new p().real(...u)}p.real=o,i(o,"real");function s(...u){return new p().int(...u)}p.int=s,i(s,"int");function n(u){return new p().pick(u)}p.pick=n,i(n,"pick");function r(u){let d=u.slice(),l=[];for(let a=u.length;a>0;--a)l.push(new p().splice(d));return l}p.shuffle=r,i(r,"shuffle");function c(u,d){u=u.slice();let l=[],a=Math.min(u.length,d);for(let y=0;y<a;y+=1){let R=Math.floor(Math.random()*u.length),[P]=u.splice(R,1);l.push(P)}return l}p.multiPick=c,i(c,"multiPick");function f(u){return new p().weightedPick(u)}p.weightedPick=f,i(f,"weightedPick");function b(u){return new p().bool(u)}p.bool=b,i(b,"bool")})(x||={});var H=new Function("template","context","pattern",` | ||
return template.replace(pattern || /\\{\\{([\\s\\S]+?)\\}\\}/g, (_, expr) => { | ||
@@ -12,2 +14,2 @@ try { | ||
}) | ||
`);function ie(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}o(ie,"escapeRegExp");function F(e){return e.replace(/\/$/,"")}o(F,"trimSlash");function se(e){return e.startsWith("/")||(e="/"+e),F(e)}o(se,"sanitize");function y(e,...t){Array.isArray(e)||(e=[e]);for(let n of e){let s=y.get(n);if(typeof s=="string")return y.format(s,...t)}return e[0]}o(y,"template");function P(e,t){return Object.entries(t).forEach(([n,s])=>{typeof s=="object"&&typeof e[n]=="object"?e[n]=P(e[n],s):e[n]=t[n]}),e}o(P,"deepAssign");(function(i){let e={};function t(r,p){let c=r.split("."),u=e;for(;c.length>1;)u=u[c.shift()]||={};P(u,{[c[0]]:p})}i.set=t,o(t,"set");function n(r){let p=r.split("."),c=e;do c=c[p.shift()];while(p.length&&c);if(typeof c=="string")return c}i.get=n,o(n,"get");function s(r,...p){p[0]&&typeof p[0]=="object"&&(r=D(r,p[0]));let c="",u;for(;u=/\{(\w+)\}/.exec(r);)c+=r.slice(0,u.index)+(u[1]in p?p[u[1]]:""),r=r.slice(u.index+u[0].length);return c+r}i.format=s,o(s,"format")})(y||(y={}));export{de as Logger,x as Random,le as Schema,J as assertProperty,z as camelCase,ne as camelize,oe as capitalize,V as coerce,I as defineEnumProperty,_ as enumKeys,ie as escapeRegExp,re as hyphenate,D as interpolate,k as isInteger,v as isType,A as merge,X as observe,G as paramCase,q as renameProperty,fe as s,se as sanitize,fe as segment,Z as sleep,te as snakeCase,y as t,y as template,F as trimSlash,j as uncapitalize}; | ||
`);function Q(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}i(Q,"escapeRegExp");export{k as Logger,x as Random,Z as Schema,U as assertProperty,C as coerce,W as defineEnumProperty,F as enumKeys,Q as escapeRegExp,H as interpolate,N as isInteger,g as isType,$ as merge,q as observe,I as renameProperty,A as sleep}; |
/// <reference types="mocha" /> | ||
import segment from '@koishijs/segment'; | ||
import Schema from 'schemastery'; | ||
@@ -10,3 +9,3 @@ import Logger from 'reggol'; | ||
export function merge<T extends object>(head: T, base: T): T; | ||
export function assertProperty<O, K extends keyof O>(config: O, key: K): O[K]; | ||
export function assertProperty<O, K extends keyof O & string>(config: O, key: K): O[K]; | ||
export function coerce(val: any): string; | ||
@@ -78,90 +77,5 @@ export function renameProperty<O extends object, K extends keyof O, T extends string>(config: O, key: K, oldKey: T): void; | ||
} | ||
export const camelCase: <T>(source: T) => T; | ||
export const paramCase: <T>(source: T) => T; | ||
export const snakeCase: <T>(source: T) => T; | ||
export const camelize: <T>(source: T) => T; | ||
export const hyphenate: <T>(source: T) => T; | ||
declare namespace Letter { | ||
interface LowerToUpper { | ||
a: 'A'; | ||
b: 'B'; | ||
c: 'C'; | ||
d: 'D'; | ||
e: 'E'; | ||
f: 'F'; | ||
g: 'G'; | ||
h: 'H'; | ||
i: 'I'; | ||
j: 'J'; | ||
k: 'K'; | ||
l: 'L'; | ||
m: 'M'; | ||
n: 'N'; | ||
o: 'O'; | ||
p: 'P'; | ||
q: 'Q'; | ||
r: 'R'; | ||
s: 'S'; | ||
t: 'T'; | ||
u: 'U'; | ||
v: 'V'; | ||
w: 'W'; | ||
x: 'X'; | ||
y: 'Y'; | ||
z: 'Z'; | ||
} | ||
interface UpperToLower { | ||
A: 'a'; | ||
B: 'b'; | ||
C: 'c'; | ||
D: 'd'; | ||
E: 'e'; | ||
F: 'f'; | ||
G: 'g'; | ||
H: 'h'; | ||
I: 'i'; | ||
J: 'j'; | ||
K: 'k'; | ||
L: 'l'; | ||
M: 'm'; | ||
N: 'n'; | ||
O: 'o'; | ||
P: 'p'; | ||
Q: 'q'; | ||
R: 'r'; | ||
S: 's'; | ||
T: 't'; | ||
U: 'u'; | ||
V: 'v'; | ||
W: 'w'; | ||
X: 'x'; | ||
Y: 'y'; | ||
Z: 'z'; | ||
} | ||
export type Upper = keyof UpperToLower; | ||
export type Lower = keyof LowerToUpper; | ||
export type ToUpper<S extends string> = S extends Lower ? LowerToUpper[S] : S; | ||
export type ToLower<S extends string, P extends string = ''> = S extends Upper ? `${P}${UpperToLower[S]}` : S; | ||
} | ||
export type camelize<S extends string> = S extends `${infer L}-${infer M}${infer R}` ? `${L}${Letter.ToUpper<M>}${camelize<R>}` : S; | ||
export type hyphenate<S extends string> = S extends `${infer L}${infer R}` ? `${Letter.ToLower<L, '-'>}${hyphenate<R>}` : S; | ||
export function capitalize(source: string): string; | ||
export function uncapitalize(source: string): string; | ||
export const interpolate: (template: string, context: object, pattern?: RegExp) => string; | ||
export function escapeRegExp(source: string): string; | ||
export function trimSlash(source: string): string; | ||
export function sanitize(source: string): string; | ||
/** @deprecated use template service instead */ | ||
export function template(path: string | string[], ...params: any[]): string; | ||
export namespace template { | ||
type Node = string | Store; | ||
interface Store { | ||
[K: string]: Node; | ||
} | ||
function set(path: string, value: Node): void; | ||
function get(path: string): string; | ||
function format(source: string, ...params: any[]): string; | ||
} | ||
export { template as t }; | ||
export { segment, segment as s, Schema, Logger }; | ||
export { Schema, Logger }; | ||
export * from 'cosmokit'; |
196
lib/node.js
@@ -5,39 +5,24 @@ var __create = Object.create; | ||
var __getOwnPropNames = Object.getOwnPropertyNames; | ||
var __getOwnPropSymbols = Object.getOwnPropertySymbols; | ||
var __getProtoOf = Object.getPrototypeOf; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __propIsEnum = Object.prototype.propertyIsEnumerable; | ||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||
var __spreadValues = (a, b) => { | ||
for (var prop in b || (b = {})) | ||
if (__hasOwnProp.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
if (__getOwnPropSymbols) | ||
for (var prop of __getOwnPropSymbols(b)) { | ||
if (__propIsEnum.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
} | ||
return a; | ||
}; | ||
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); | ||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); | ||
var __export = (target, all) => { | ||
__markAsModule(target); | ||
for (var name in all) | ||
__defProp(target, name, { get: all[name], enumerable: true }); | ||
}; | ||
var __reExport = (target, module2, desc) => { | ||
if (module2 && typeof module2 === "object" || typeof module2 === "function") { | ||
for (let key of __getOwnPropNames(module2)) | ||
if (!__hasOwnProp.call(target, key) && key !== "default") | ||
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); | ||
var __copyProps = (to, from, except, desc) => { | ||
if (from && typeof from === "object" || typeof from === "function") { | ||
for (let key of __getOwnPropNames(from)) | ||
if (!__hasOwnProp.call(to, key) && key !== except) | ||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||
} | ||
return target; | ||
return to; | ||
}; | ||
var __toModule = (module2) => { | ||
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); | ||
}; | ||
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); | ||
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); | ||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | ||
// packages/utils/src/index.ts | ||
__export(exports, { | ||
var src_exports = {}; | ||
__export(src_exports, { | ||
Logger: () => import_reggol.default, | ||
@@ -47,5 +32,2 @@ Random: () => Random, | ||
assertProperty: () => assertProperty, | ||
camelCase: () => camelCase, | ||
camelize: () => camelize, | ||
capitalize: () => capitalize, | ||
coerce: () => coerce, | ||
@@ -55,3 +37,2 @@ defineEnumProperty: () => defineEnumProperty, | ||
escapeRegExp: () => escapeRegExp, | ||
hyphenate: () => hyphenate, | ||
interpolate: () => interpolate, | ||
@@ -62,18 +43,9 @@ isInteger: () => isInteger, | ||
observe: () => observe, | ||
paramCase: () => paramCase, | ||
renameProperty: () => renameProperty, | ||
s: () => import_segment.default, | ||
sanitize: () => sanitize, | ||
segment: () => import_segment.default, | ||
sleep: () => sleep, | ||
snakeCase: () => snakeCase, | ||
t: () => template, | ||
template: () => template, | ||
trimSlash: () => trimSlash, | ||
uncapitalize: () => uncapitalize | ||
sleep: () => sleep | ||
}); | ||
var import_segment = __toModule(require("@koishijs/segment")); | ||
var import_schemastery = __toModule(require("schemastery")); | ||
var import_reggol = __toModule(require("reggol")); | ||
__reExport(exports, __toModule(require("cosmokit"))); | ||
module.exports = __toCommonJS(src_exports); | ||
var import_schemastery = __toESM(require("schemastery")); | ||
var import_reggol = __toESM(require("reggol")); | ||
__reExport(src_exports, require("cosmokit"), module.exports); | ||
@@ -116,4 +88,6 @@ // packages/utils/src/misc.ts | ||
function coerce(val) { | ||
const { stack } = val instanceof Error ? val : new Error(val); | ||
return stack; | ||
const { message, stack } = val instanceof Error ? val : new Error(val); | ||
const lines = stack.split("\n"); | ||
const index = lines.findIndex((line) => line.endsWith(message)); | ||
return lines.slice(index).join("\n"); | ||
} | ||
@@ -133,3 +107,3 @@ __name(coerce, "coerce"); | ||
// packages/utils/src/observe.ts | ||
var import_cosmokit = __toModule(require("cosmokit")); | ||
var import_cosmokit = require("cosmokit"); | ||
var immutable = ["number", "string", "bigint", "boolean", "symbol", "function"]; | ||
@@ -154,3 +128,3 @@ var builtin = ["Date", "RegExp", "Set", "Map", "WeakSet", "WeakMap", "Array"]; | ||
if (!notify) { | ||
const diff = Object.create(null); | ||
const diff = /* @__PURE__ */ Object.create(null); | ||
(0, import_cosmokit.defineProperty)(target, "$diff", diff); | ||
@@ -246,3 +220,3 @@ notify = /* @__PURE__ */ __name((key) => { | ||
(0, import_cosmokit.defineProperty)(observer, "$update", /* @__PURE__ */ __name(function $update() { | ||
const diff = __spreadValues({}, this.$diff); | ||
const diff = { ...this.$diff }; | ||
const fields = Object.keys(diff); | ||
@@ -307,3 +281,3 @@ if (fields.length) { | ||
__name(Random, "Random"); | ||
(function(Random2) { | ||
((Random2) => { | ||
const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; | ||
@@ -370,37 +344,2 @@ function id(length = 8, radix = 16) { | ||
// packages/utils/src/string.ts | ||
function deepen(modifyString) { | ||
function modifyObject(source) { | ||
if (typeof source !== "object" || !source) | ||
return source; | ||
if (Array.isArray(source)) | ||
return source.map(modifyObject); | ||
const result = {}; | ||
for (const key in source) { | ||
result[modifyString(key)] = modifyObject(source[key]); | ||
} | ||
return result; | ||
} | ||
__name(modifyObject, "modifyObject"); | ||
return function(source) { | ||
if (typeof source === "string") { | ||
return modifyString(source); | ||
} else { | ||
return modifyObject(source); | ||
} | ||
}; | ||
} | ||
__name(deepen, "deepen"); | ||
var camelCase = deepen((source) => source.replace(/[_-][a-z]/g, (str) => str.slice(1).toUpperCase())); | ||
var paramCase = deepen((source) => uncapitalize(source).replace(/_/g, "-").replace(/(?<!^)[A-Z]/g, (str) => "-" + str.toLowerCase())); | ||
var snakeCase = deepen((source) => uncapitalize(source).replace(/-/g, "_").replace(/(?<!^)[A-Z]/g, (str) => "_" + str.toLowerCase())); | ||
var camelize = camelCase; | ||
var hyphenate = paramCase; | ||
function capitalize(source) { | ||
return source.charAt(0).toUpperCase() + source.slice(1); | ||
} | ||
__name(capitalize, "capitalize"); | ||
function uncapitalize(source) { | ||
return source.charAt(0).toLowerCase() + source.slice(1); | ||
} | ||
__name(uncapitalize, "uncapitalize"); | ||
var interpolate = new Function("template", "context", "pattern", ` | ||
@@ -422,74 +361,2 @@ return template.replace(pattern || /\\{\\{([\\s\\S]+?)\\}\\}/g, (_, expr) => { | ||
__name(escapeRegExp, "escapeRegExp"); | ||
function trimSlash(source) { | ||
return source.replace(/\/$/, ""); | ||
} | ||
__name(trimSlash, "trimSlash"); | ||
function sanitize(source) { | ||
if (!source.startsWith("/")) | ||
source = "/" + source; | ||
return trimSlash(source); | ||
} | ||
__name(sanitize, "sanitize"); | ||
function template(path, ...params) { | ||
if (!Array.isArray(path)) | ||
path = [path]; | ||
for (const item of path) { | ||
const source = template.get(item); | ||
if (typeof source === "string") { | ||
return template.format(source, ...params); | ||
} | ||
} | ||
return path[0]; | ||
} | ||
__name(template, "template"); | ||
function deepAssign(head, base) { | ||
Object.entries(base).forEach(([key, value]) => { | ||
if (typeof value === "object" && typeof head[key] === "object") { | ||
head[key] = deepAssign(head[key], value); | ||
} else { | ||
head[key] = base[key]; | ||
} | ||
}); | ||
return head; | ||
} | ||
__name(deepAssign, "deepAssign"); | ||
(function(template2) { | ||
const store = {}; | ||
function set(path, value) { | ||
var _a; | ||
const seg = path.split("."); | ||
let node = store; | ||
while (seg.length > 1) { | ||
node = node[_a = seg.shift()] || (node[_a] = {}); | ||
} | ||
deepAssign(node, { [seg[0]]: value }); | ||
} | ||
template2.set = set; | ||
__name(set, "set"); | ||
function get(path) { | ||
const seg = path.split("."); | ||
let node = store; | ||
do { | ||
node = node[seg.shift()]; | ||
} while (seg.length && node); | ||
if (typeof node === "string") | ||
return node; | ||
} | ||
template2.get = get; | ||
__name(get, "get"); | ||
function format(source, ...params) { | ||
if (params[0] && typeof params[0] === "object") { | ||
source = interpolate(source, params[0]); | ||
} | ||
let result = ""; | ||
let cap; | ||
while (cap = /\{(\w+)\}/.exec(source)) { | ||
result += source.slice(0, cap.index) + (cap[1] in params ? params[cap[1]] : ""); | ||
source = source.slice(cap.index + cap[0].length); | ||
} | ||
return result + source; | ||
} | ||
template2.format = format; | ||
__name(format, "format"); | ||
})(template || (template = {})); | ||
// Annotate the CommonJS export names for ESM import in node: | ||
@@ -501,5 +368,2 @@ 0 && (module.exports = { | ||
assertProperty, | ||
camelCase, | ||
camelize, | ||
capitalize, | ||
coerce, | ||
@@ -509,3 +373,2 @@ defineEnumProperty, | ||
escapeRegExp, | ||
hyphenate, | ||
interpolate, | ||
@@ -516,14 +379,5 @@ isInteger, | ||
observe, | ||
paramCase, | ||
renameProperty, | ||
s, | ||
sanitize, | ||
segment, | ||
sleep, | ||
snakeCase, | ||
t, | ||
template, | ||
trimSlash, | ||
uncapitalize | ||
sleep | ||
}); | ||
//# sourceMappingURL=node.js.map |
{ | ||
"name": "@koishijs/utils", | ||
"description": "Utilities for Koishi", | ||
"version": "5.4.5", | ||
"version": "6.0.0", | ||
"main": "lib/node.js", | ||
@@ -33,8 +33,6 @@ "module": "lib/browser.js", | ||
"dependencies": { | ||
"@koishijs/segment": "^1.1.1", | ||
"cosmokit": "^1.1.2", | ||
"cosmokit": "^1.2.1", | ||
"reggol": "^1.0.3", | ||
"schemastery": "^3.4.3", | ||
"supports-color": "^8.1.1" | ||
"schemastery": "^3.4.3" | ||
} | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
3
44679
473
- Removed@koishijs/segment@^1.1.1
- Removedsupports-color@^8.1.1
- Removed@koishijs/segment@1.1.1(transitive)
Updatedcosmokit@^1.2.1