{"version":3,"sources":["../src/encode-core.ts"],"sourcesContent":["import MD5 from \"crypto-js/md5.js\";\r\n\r\nexport class EncodeCore<EncodeDataType extends any[]> {\r\n  constructor(protected _encodeConfig: EncodeCoreConfig<EncodeDataType>) {}\r\n\r\n  protected _getHash(parameters: EncodeDataType) {\r\n    const length = parameters.length;\r\n\r\n    return MD5(\r\n      this._encodeConfig.getParamsString\r\n        ? this._encodeConfig.getParamsString(...parameters)\r\n        : length === 0\r\n        ? \"default\"\r\n        : length === 1 && typeof parameters[0] === \"object\"\r\n        ? EncodeCore.getObjectUniqueString(parameters[0])\r\n        : JSON.stringify(parameters)\r\n    ).toString();\r\n  }\r\n\r\n  static getObjectUniqueString(object: Record<string, any>) {\r\n    return JSON.stringify(\r\n      Object.entries(object).sort(([key1], [key2]) => key1.localeCompare(key2))\r\n    );\r\n  }\r\n}\r\n\r\nexport type EncodeCoreConfig<EncodeDataType extends any[]> = {\r\n  getParamsString?: (...params: EncodeDataType) => string;\r\n};\r\n"],"mappings":"AAAA,OAAOA,MAAS,mBAET,IAAMC,EAAN,MAAMC,CAAyC,CACpD,YAAsBC,EAAiD,CAAjD,mBAAAA,CAAkD,CAE9D,SAASC,EAA4B,CAC7C,IAAMC,EAASD,EAAW,OAE1B,OAAOJ,EACL,KAAK,cAAc,gBACf,KAAK,cAAc,gBAAgB,GAAGI,CAAU,EAChDC,IAAW,EACX,UACAA,IAAW,GAAK,OAAOD,EAAW,CAAC,GAAM,SACzCF,EAAW,sBAAsBE,EAAW,CAAC,CAAC,EAC9C,KAAK,UAAUA,CAAU,CAC/B,EAAE,SAAS,CACb,CAEA,OAAO,sBAAsBE,EAA6B,CACxD,OAAO,KAAK,UACV,OAAO,QAAQA,CAAM,EAAE,KAAK,CAAC,CAACC,CAAI,EAAG,CAACC,CAAI,IAAMD,EAAK,cAAcC,CAAI,CAAC,CAC1E,CACF,CACF","names":["MD5","EncodeCore","_EncodeCore","_encodeConfig","parameters","length","object","key1","key2"]}