icms-api 0.1.3 → 0.1.4
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let e=
|
|
1
|
+
const e={IBOOT_DEVICE_ID:`dvid`,IBOOT_LANG:`lang`,IBOOT_WEBSITE_ID:`wid`,IBOOT_WEBSITE_NO:`wno`,IBOOT_TOKEN:`token`,IBOOT_USER:`user`},t=`Content-Type`,n={applicationJson:`application/json`,multipartFormData:`multipart/form-data`,applicationXwwwFormUrlencoded:`application/x-www-form-urlencoded`};var r={info:(e,t)=>{process.env.NODE_ENV!==`production`&&console.info(t,e)},debug:(e,t)=>{process.env.NODE_ENV!==`production`&&console.debug(t,e)},error:e=>{console.error(e)}};const i=t=>{if(t.get){let n=t.get(e.IBOOT_USER);if(n&&n.length>0)return JSON.parse(n)}};var a=e=>`${process.env.BASE_URL||`/api/services`}?m=${e}`,o=async(e,t)=>{let n=a(e);if(t?.data){let e=new URLSearchParams(t.data);n+=`&${e}`}let i=t?.headers;r.info({url:n,headers:i},`GET`);let o=await fetch(n,{method:`GET`,headers:i,cache:t?.useCache?`force-cache`:`default`});if(o.ok){let e=Object.fromEntries(o.headers.entries()),t={...await o.json(),headers:e};return r.debug(t,`GET_RESULT`),t}let s={code:o.status,success:!1,msg:o.statusText};return r.error(s),s},s=async(e,t)=>{let i=t?.data??{},a,o=new Headers(t?.headers);i instanceof FormData?a=i:(a=JSON.stringify(i),o.set(`Content-Type`,n.applicationJson)),r.info({url:e,headers:o},`POST`);let s=await fetch(e,{method:`POST`,headers:o,body:a});if(s.ok){let e=Object.fromEntries(s.headers.entries()),t={...await s.json(),headers:e};return r.debug(t,`POST_RESULT`),t}let c={code:s.status,success:!1,msg:s.statusText};return r.error(c),c};const c=async(e,t)=>{let n=await o(e,t);if(n.success)return n.data;if(t?.showError){t.showError(n.msg??`Get request error!`);return}throw Error(n.msg??`Get request error!`)},l=async(e,t)=>{let n=await s(e,t);if(n.success)return n.data;if(t?.showError){t.showError(n.msg??`Post request error!`);return}throw Error(n.msg??`Post request error!`)},u=async(e,t)=>{let n=await s(e,t);return n.success?(t?.showSuccess&&t.showSuccess(n.msg??`SUCCESS`),!0):(t?.showError&&t.showError(n.msg??`Post request error!`),!1)};var d=class{cookies=null;constructor(){}setICookies(e){return this.cookies=e,this}async login({username:e,password:t}){if(await l(`login`,{data:{username:e,password:t}}),this.cookies)return i(this.cookies)}async logout(){await l(`logout`)}async loadI18nList(){return await c(`loadI18nList`)??[]}async loadWebsite(e){return c(`loadWebsite`,{showNav:String(e?.showNav??!0),showFriendLink:String(e?.showFriendLink??!1)})}async loadChannels(e){let t={};return e?.channelNo&&(t.channelNo=e.channelNo),e?.showChildren!==void 0&&(t.showChildren=String(e.showChildren)),await c(`loadChannels`,t)??[]}async loadChannelById(e){let t={channelId:e.channelId};return e.showChildren!==void 0&&(t.showChildren=String(e.showChildren)),c(`loadChannelById`,t)}async loadChannelByNo(e){let t={channelNo:e.channelNo};return e.showChildren!==void 0&&(t.showChildren=String(e.showChildren)),c(`loadChannelByNo`,t)}async loadChannelByUri(e){let t={uri:e.uri};return e.showChildren!==void 0&&(t.showChildren=String(e.showChildren)),c(`loadChannelByUri`,t)}async loadProductDetail(e){return c(`loadProductDetail`,{data:{proId:e}})}async loadProductPageInfo(e){return c(`loadProductPageInfo`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadProductPageInfoByGroup(e){return c(`loadProductPageInfoByGroup`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadProductListByGroupId(e){return await c(`loadProductListByGroupId`,{data:{groupId:e.groupId}})??[]}async loadNewsDetail(e){return c(`loadNewsDetail`,{data:{newId:e}})}async loadNewsPageInfo(e){return c(`loadNewsPageInfo`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadNewsPageInfoByGroupId(e){return c(`loadNewsPageInfoByGroupId`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadNewsListByGroupId(e){return await c(`loadNewsListByGroupId`,{data:{groupId:e.groupId}})??[]}async loadPhotoDetail(e){return c(`loadPhotoDetail`,{data:{photoId:e}})}async loadPhotoPageInfo(e){return c(`loadPhotoPageInfo`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadPhotoPageInfoByGroup(e){return c(`loadPhotoPageInfoByGroup`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadPhotoListByGroupId(e){return await c(`loadPhotoListByGroupId`,{data:{groupId:e.groupId}})??[]}async loadVideoDetail(e){return c(`loadVideoDetail`,{data:{videoId:e}})}async loadVideoPageInfo(e){return c(`loadVideoPageInfo`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadVideoPageInfoByGroup(e){return c(`loadVideoPageInfoByGroup`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadVideoListByGroupId(e){return await c(`loadVideoListByGroupId`,{data:{groupId:e.groupId}})??[]}async loadActivityDetail(e){return c(`loadActivityDetail`,{data:{activityId:e}})}async loadActivityPageInfo(e){return c(`loadActivityPageInfo`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadActivityPageInfoByGroup(e){return c(`loadActivityPageInfoByGroup`,{data:{...e,pageNo:String(e.pageNo),pageSize:String(e.pageSize)}})}async loadActivityListByGroupId(e){return await c(`loadActivityListByGroupId`,{data:{groupId:e.groupId}})??[]}async loadReviewList(e){return await c(`loadReviewList`,{data:{...e}})??[]}async submitComment(e){return await u(`submitComment`,e)}async subscribe(e){return await u(`subscribe`,e)}async submitContactUs(e){return await u(`submitContactUs`,e)}async loadLinkGroups(){return await c(`loadLinkGroups`)??[]}async loadFriendLinks(e){return await c(`loadFriendLinks`,{data:e?{count:String(e)}:{}})??[]}async submitLink(e){return await u(`submitLink`,e)}async getSpecDescription(e){return c(`getSpecDescription`,{data:{code:e}})}};const f=new d;exports.ICMSClient=d,exports.icmsClient=f;
|
|
2
2
|
//# sourceMappingURL=icms-api.client.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icms-api.client.cjs.js","names":["data: Record<string, string>"],"sources":["../src/client.ts"],"sourcesContent":["import type { Member, FriendLink, LinkGroup, I18NWebsite, Webchannel, WebsiteInfo } from \"./types/site\"\nimport type { ProductContent } from \"./types/cms-product\"\nimport type { PageInfo, PageParams } from \"./types/cms-base\"\nimport type { NewsContent } from \"./types/cms-news\"\nimport type { PhotoContent } from \"./types/cms-photo\"\nimport type { VideoContent } from \"./types/cms-video\"\nimport type { ActivityContent } from \"./types/cms-activity\"\nimport type { Reviews, SubscribeUser, ContactUs } from \"./types/cms-message\"\nimport type { SpecDescription } from \"./types/cms-mall\"\nimport { getLoginUser, ICookies, iGet, iPost, iPostSuccess } from \"@rock.chen/icms-http-client\"\n\n\nexport class ICMSClient {\n private cookies: ICookies | null = null\n\n constructor() {\n }\n\n setICookies(c: ICookies): ICMSClient {\n this.cookies = c;\n return this;\n }\n\n // ========== 用户认证 ==========\n\n async login({ username, password }: Readonly<{ username: string, password: string }>): Promise<Member | undefined> {\n await iPost('login', {\n data: { username, password }\n })\n if (this.cookies) {\n return getLoginUser(this.cookies)\n }\n return undefined\n }\n\n async logout(): Promise<void> {\n await iPost('logout');\n }\n\n // ========== 网站信息 ==========\n\n async loadI18nList(): Promise<Array<I18NWebsite>> {\n return (await iGet<Array<I18NWebsite>>(\"loadI18nList\")) ?? []\n }\n\n async loadWebsite(params?: Readonly<{ showNav?: boolean; showFriendLink?: boolean; showI18NList?: boolean }>): Promise<WebsiteInfo | undefined> {\n const data: Record<string, string> = {\n showNav: String(params?.showNav ?? true),\n showFriendLink: String(params?.showFriendLink ?? false),\n }\n return iGet<WebsiteInfo>(\"loadWebsite\", data)\n }\n\n async loadChannels(params?: Readonly<{ channelNo?: string; showChildren?: boolean }>): Promise<Array<Webchannel>> {\n const data: Record<string, string> = {}\n if (params?.channelNo) data.channelNo = params.channelNo\n if (params?.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return (await iGet<Array<Webchannel>>(\"loadChannels\", data)) ?? []\n }\n\n async loadChannelById(params: Readonly<{ channelId: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { channelId: params.channelId }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelById\", data)\n }\n\n async loadChannelByNo(params: Readonly<{ channelNo: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { channelNo: params.channelNo }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelByNo\", data)\n }\n\n async loadChannelByUri(params: Readonly<{ uri: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { uri: params.uri }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelByUri\", data)\n }\n\n // ========== 产品 ==========\n\n async loadProductDetail(proId: string): Promise<ProductContent | undefined> {\n return iGet<ProductContent>(\"loadProductDetail\", { data: { proId } })\n }\n\n async loadProductPageInfo(params: Readonly<{ channelId?: string; keyword?: string } & PageParams>): Promise<PageInfo<ProductContent> | undefined> {\n return iGet<PageInfo<ProductContent>>(\"loadProductPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadProductPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<ProductContent> | undefined> {\n return iGet<PageInfo<ProductContent>>(\"loadProductPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadProductListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<ProductContent>> {\n return (await iGet<Array<ProductContent>>(\"loadProductListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 图文 ==========\n\n async loadNewsDetail(newId: string): Promise<NewsContent | undefined> {\n return iGet<NewsContent>(\"loadNewsDetail\", { data: { newId } })\n }\n\n async loadNewsPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<NewsContent> | undefined> {\n return iGet<PageInfo<NewsContent>>(\"loadNewsPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadNewsPageInfoByGroupId(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<NewsContent> | undefined> {\n return iGet<PageInfo<NewsContent>>(\"loadNewsPageInfoByGroupId\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadNewsListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<NewsContent>> {\n return (await iGet<Array<NewsContent>>(\"loadNewsListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 相册 ==========\n\n async loadPhotoDetail(photoId: string): Promise<PhotoContent | undefined> {\n return iGet<PhotoContent>(\"loadPhotoDetail\", { data: { photoId } })\n }\n\n async loadPhotoPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<PhotoContent> | undefined> {\n return iGet<PageInfo<PhotoContent>>(\"loadPhotoPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadPhotoPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<PhotoContent> | undefined> {\n return iGet<PageInfo<PhotoContent>>(\"loadPhotoPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadPhotoListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<PhotoContent>> {\n return (await iGet<Array<PhotoContent>>(\"loadPhotoListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 视频 ==========\n\n async loadVideoDetail(videoId: string): Promise<VideoContent | undefined> {\n return iGet<VideoContent>(\"loadVideoDetail\", { data: { videoId } })\n }\n\n async loadVideoPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<VideoContent> | undefined> {\n return iGet<PageInfo<VideoContent>>(\"loadVideoPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadVideoPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<VideoContent> | undefined> {\n return iGet<PageInfo<VideoContent>>(\"loadVideoPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadVideoListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<VideoContent>> {\n return (await iGet<Array<VideoContent>>(\"loadVideoListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 活动 ==========\n\n async loadActivityDetail(activityId: string): Promise<ActivityContent | undefined> {\n return iGet<ActivityContent>(\"loadActivityDetail\", { data: { activityId } })\n }\n\n async loadActivityPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<ActivityContent> | undefined> {\n return iGet<PageInfo<ActivityContent>>(\"loadActivityPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadActivityPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<ActivityContent> | undefined> {\n return iGet<PageInfo<ActivityContent>>(\"loadActivityPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadActivityListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<ActivityContent>> {\n return (await iGet<Array<ActivityContent>>(\"loadActivityListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 评论/订阅/联系 ==========\n\n async loadReviewList(params: Readonly<{ entityNo?: string; rowCount?: string }>): Promise<Array<Reviews>> {\n return (await iGet<Array<Reviews>>(\"loadReviewList\", { data: { ...params } })) ?? []\n }\n\n async submitComment(data: Readonly<Partial<Reviews>>): Promise<boolean> {\n return await iPostSuccess(\"submitComment\", data as Record<string, any>)\n }\n\n async subscribe(data: Readonly<Pick<SubscribeUser, 'email'> & Partial<Pick<SubscribeUser, 'nickname'>>>): Promise<boolean> {\n return await iPostSuccess(\"subscribe\", data as Record<string, any>)\n }\n\n async submitContactUs(data: Readonly<Partial<ContactUs>>): Promise<boolean> {\n return await iPostSuccess(\"submitContactUs\", data as Record<string, any>)\n }\n\n // ========== 友链 ==========\n\n async loadLinkGroups(): Promise<Array<LinkGroup>> {\n return (await iGet<Array<LinkGroup>>(\"loadLinkGroups\")) ?? []\n }\n\n async loadFriendLinks(count?: number): Promise<Array<FriendLink>> {\n return (await iGet<Array<FriendLink>>(\"loadFriendLinks\", { data: count ? { count: String(count) } : {} })) ?? []\n }\n\n async submitLink(data: Readonly<Pick<FriendLink, 'name' | 'url'> & Partial<Pick<FriendLink, 'description'>>>): Promise<boolean> {\n return await iPostSuccess(\"submitLink\", data as Record<string, any>)\n }\n\n // ========== 商城 ==========\n\n async getSpecDescription(code: string): Promise<SpecDescription | undefined> {\n return iGet<SpecDescription>(\"getSpecDescription\", { data: { code } })\n }\n}\n\nexport const icmsClient = new ICMSClient()\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"icms-api.client.cjs.js","names":["body: string | FormData","data: Record<string, string>"],"sources":["../src/client-helper.ts","../src/client.ts"],"sourcesContent":["/**\n * 客户端 HTTP 辅助函数\n * 从 @rock.chen/icms-http-client/web-client 内联,\n * 避免引入 pino/pino-pretty/sonic-boom 等 Node.js 服务端模块\n */\n\n// ---- 类型 ----\n\n/** Cookie 读写接口 */\nexport interface ICookies {\n get(key: string): string | undefined;\n set?(key: string, value: string): void;\n delete?(key: string): void;\n}\n\n/** API 返回模型 */\nexport interface ResultModel<T = unknown> {\n code: number;\n success: boolean;\n msg: string;\n data?: T;\n headers?: Record<string, string>;\n}\n\n/** GET 请求参数 */\nexport interface ClientGetParams {\n data?: Record<string, string>;\n headers?: Record<string, string>;\n useCache?: boolean;\n showError?: (msg: string) => void;\n}\n\n/** POST 请求参数 */\nexport interface ClientPostParams {\n data?: Record<string, unknown> | FormData;\n headers?: Record<string, string>;\n showError?: (msg: string) => void;\n showSuccess?: (msg: string) => void;\n}\n\n/** Cookie 名称常量 */\nexport const COOKIE_NAMES = {\n IBOOT_DEVICE_ID: \"dvid\",\n IBOOT_LANG: \"lang\",\n IBOOT_WEBSITE_ID: \"wid\",\n IBOOT_WEBSITE_NO: \"wno\",\n IBOOT_TOKEN: \"token\",\n IBOOT_USER: \"user\",\n} as const;\n\n/** Content-Type 常量 */\nexport const CONTENT_TYPE_KEY = \"Content-Type\";\nexport const CONTENT_TYPE_MAP = {\n applicationJson: \"application/json\",\n multipartFormData: \"multipart/form-data\",\n applicationXwwwFormUrlencoded: \"application/x-www-form-urlencoded\",\n} as const;\n\n/** 用户信息 */\nexport interface User {\n id: string;\n name: string;\n userType: number;\n username?: string;\n nickname?: string;\n sex?: number;\n headImg?: string;\n lastLoginTime?: string;\n tokenExpired?: string;\n deviceId?: string;\n status?: number;\n accountType?: number;\n enabled?: boolean;\n userFrom?: number;\n needToReview?: boolean;\n socketOnline?: boolean;\n createTime?: string;\n mustChangePwd?: boolean;\n}\n\n// ---- Logger(浏览器 console 实现,唔引入 pino) ----\n\nconst logger = {\n info: (msg: unknown, tag: string) => {\n if (process.env.NODE_ENV !== \"production\") console.info(tag, msg);\n },\n debug: (msg: unknown, tag: string) => {\n if (process.env.NODE_ENV !== \"production\") console.debug(tag, msg);\n },\n error: (msg: unknown) => {\n console.error(msg);\n },\n};\n\n// ---- 函数 ----\n\n/** 从 cookie 中读取已登录用户信息 */\nexport const getLoginUser = (cookies: ICookies): User | undefined => {\n if (cookies.get) {\n const userjson = cookies.get(COOKIE_NAMES.IBOOT_USER);\n if (userjson && userjson.length > 0) {\n return JSON.parse(userjson);\n }\n }\n return undefined;\n};\n\nconst getBaseUrl = (urlName: string) => {\n const baseUrl = process.env.BASE_URL || \"/api/services\";\n return `${baseUrl}?m=${urlName}`;\n};\n\n/** 客户端 GET 请求 */\nconst get = async <T>(\n urlName: string,\n opts?: ClientGetParams,\n): Promise<ResultModel<T>> => {\n let url = getBaseUrl(urlName);\n if (opts?.data) {\n const params = new URLSearchParams(opts.data);\n url += `&${params}`;\n }\n const heads = opts?.headers;\n logger.info({ url, headers: heads }, \"GET\");\n const res = await fetch(url, {\n method: \"GET\",\n headers: heads,\n cache: opts?.useCache ? \"force-cache\" : \"default\",\n });\n\n if (res.ok) {\n const headersMap = Object.fromEntries(res.headers.entries());\n const result = { ...(await res.json()), headers: headersMap };\n logger.debug(result, \"GET_RESULT\");\n return result;\n }\n const msg = { code: res.status, success: false, msg: res.statusText };\n logger.error(msg);\n return msg;\n};\n\n/** 客户端 POST 请求 */\nconst post = async <T>(\n urlName: string,\n opts?: ClientPostParams,\n): Promise<ResultModel<T>> => {\n const data = opts?.data ?? {};\n let body: string | FormData;\n const proxyHeaders = new Headers(opts?.headers);\n if (!(data instanceof FormData)) {\n body = JSON.stringify(data);\n proxyHeaders.set(CONTENT_TYPE_KEY, CONTENT_TYPE_MAP.applicationJson);\n } else {\n body = data;\n }\n logger.info({ url: urlName, headers: proxyHeaders }, \"POST\");\n const res = await fetch(urlName, {\n method: \"POST\",\n headers: proxyHeaders,\n body,\n });\n\n if (res.ok) {\n const headersMap = Object.fromEntries(res.headers.entries());\n const result = { ...(await res.json()), headers: headersMap };\n logger.debug(result, \"POST_RESULT\");\n return result;\n }\n const msg = { code: res.status, success: false, msg: res.statusText };\n logger.error(msg);\n return msg;\n};\n\n/** GET 请求快捷方法(自动解包 data) */\nexport const iGet = async <T>(\n url: string,\n opts?: ClientGetParams,\n): Promise<T | undefined> => {\n const res = await get<T>(url, opts);\n if (res.success) {\n return res.data as T;\n }\n if (opts?.showError) {\n opts.showError(res.msg ?? \"Get request error!\");\n return;\n }\n throw Error(res.msg ?? \"Get request error!\");\n};\n\n/** POST 请求快捷方法(自动解包 data) */\nexport const iPost = async <T>(\n url: string,\n opts?: ClientPostParams,\n): Promise<T | undefined> => {\n const res = await post<T>(url, opts);\n if (res.success) {\n return res.data;\n }\n if (opts?.showError) {\n opts.showError(res.msg ?? \"Post request error!\");\n return;\n }\n throw Error(res.msg ?? \"Post request error!\");\n};\n\n/** POST 请求,返回 boolean */\nexport const iPostSuccess = async (\n url: string,\n opts?: ClientPostParams,\n): Promise<boolean> => {\n const res = await post(url, opts);\n if (res.success) {\n if (opts?.showSuccess) opts.showSuccess(res.msg ?? \"SUCCESS\");\n return true;\n }\n if (opts?.showError) opts.showError(res.msg ?? \"Post request error!\");\n return false;\n};\n","import type { Member, FriendLink, LinkGroup, I18NWebsite, Webchannel, WebsiteInfo } from \"./types/site\"\nimport type { ProductContent } from \"./types/cms-product\"\nimport type { PageInfo, PageParams } from \"./types/cms-base\"\nimport type { NewsContent } from \"./types/cms-news\"\nimport type { PhotoContent } from \"./types/cms-photo\"\nimport type { VideoContent } from \"./types/cms-video\"\nimport type { ActivityContent } from \"./types/cms-activity\"\nimport type { Reviews, SubscribeUser, ContactUs } from \"./types/cms-message\"\nimport type { SpecDescription } from \"./types/cms-mall\"\nimport { getLoginUser, ICookies, iGet, iPost, iPostSuccess } from \"./client-helper\"\n\n\nexport class ICMSClient {\n private cookies: ICookies | null = null\n\n constructor() {\n }\n\n setICookies(c: ICookies): ICMSClient {\n this.cookies = c;\n return this;\n }\n\n // ========== 用户认证 ==========\n\n async login({ username, password }: Readonly<{ username: string, password: string }>): Promise<Member | undefined> {\n await iPost('login', {\n data: { username, password }\n })\n if (this.cookies) {\n return getLoginUser(this.cookies)\n }\n return undefined\n }\n\n async logout(): Promise<void> {\n await iPost('logout');\n }\n\n // ========== 网站信息 ==========\n\n async loadI18nList(): Promise<Array<I18NWebsite>> {\n return (await iGet<Array<I18NWebsite>>(\"loadI18nList\")) ?? []\n }\n\n async loadWebsite(params?: Readonly<{ showNav?: boolean; showFriendLink?: boolean; showI18NList?: boolean }>): Promise<WebsiteInfo | undefined> {\n const data: Record<string, string> = {\n showNav: String(params?.showNav ?? true),\n showFriendLink: String(params?.showFriendLink ?? false),\n }\n return iGet<WebsiteInfo>(\"loadWebsite\", data)\n }\n\n async loadChannels(params?: Readonly<{ channelNo?: string; showChildren?: boolean }>): Promise<Array<Webchannel>> {\n const data: Record<string, string> = {}\n if (params?.channelNo) data.channelNo = params.channelNo\n if (params?.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return (await iGet<Array<Webchannel>>(\"loadChannels\", data)) ?? []\n }\n\n async loadChannelById(params: Readonly<{ channelId: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { channelId: params.channelId }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelById\", data)\n }\n\n async loadChannelByNo(params: Readonly<{ channelNo: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { channelNo: params.channelNo }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelByNo\", data)\n }\n\n async loadChannelByUri(params: Readonly<{ uri: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { uri: params.uri }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelByUri\", data)\n }\n\n // ========== 产品 ==========\n\n async loadProductDetail(proId: string): Promise<ProductContent | undefined> {\n return iGet<ProductContent>(\"loadProductDetail\", { data: { proId } })\n }\n\n async loadProductPageInfo(params: Readonly<{ channelId?: string; keyword?: string } & PageParams>): Promise<PageInfo<ProductContent> | undefined> {\n return iGet<PageInfo<ProductContent>>(\"loadProductPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadProductPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<ProductContent> | undefined> {\n return iGet<PageInfo<ProductContent>>(\"loadProductPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadProductListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<ProductContent>> {\n return (await iGet<Array<ProductContent>>(\"loadProductListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 图文 ==========\n\n async loadNewsDetail(newId: string): Promise<NewsContent | undefined> {\n return iGet<NewsContent>(\"loadNewsDetail\", { data: { newId } })\n }\n\n async loadNewsPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<NewsContent> | undefined> {\n return iGet<PageInfo<NewsContent>>(\"loadNewsPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadNewsPageInfoByGroupId(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<NewsContent> | undefined> {\n return iGet<PageInfo<NewsContent>>(\"loadNewsPageInfoByGroupId\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadNewsListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<NewsContent>> {\n return (await iGet<Array<NewsContent>>(\"loadNewsListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 相册 ==========\n\n async loadPhotoDetail(photoId: string): Promise<PhotoContent | undefined> {\n return iGet<PhotoContent>(\"loadPhotoDetail\", { data: { photoId } })\n }\n\n async loadPhotoPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<PhotoContent> | undefined> {\n return iGet<PageInfo<PhotoContent>>(\"loadPhotoPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadPhotoPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<PhotoContent> | undefined> {\n return iGet<PageInfo<PhotoContent>>(\"loadPhotoPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadPhotoListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<PhotoContent>> {\n return (await iGet<Array<PhotoContent>>(\"loadPhotoListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 视频 ==========\n\n async loadVideoDetail(videoId: string): Promise<VideoContent | undefined> {\n return iGet<VideoContent>(\"loadVideoDetail\", { data: { videoId } })\n }\n\n async loadVideoPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<VideoContent> | undefined> {\n return iGet<PageInfo<VideoContent>>(\"loadVideoPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadVideoPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<VideoContent> | undefined> {\n return iGet<PageInfo<VideoContent>>(\"loadVideoPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadVideoListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<VideoContent>> {\n return (await iGet<Array<VideoContent>>(\"loadVideoListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 活动 ==========\n\n async loadActivityDetail(activityId: string): Promise<ActivityContent | undefined> {\n return iGet<ActivityContent>(\"loadActivityDetail\", { data: { activityId } })\n }\n\n async loadActivityPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<ActivityContent> | undefined> {\n return iGet<PageInfo<ActivityContent>>(\"loadActivityPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadActivityPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<ActivityContent> | undefined> {\n return iGet<PageInfo<ActivityContent>>(\"loadActivityPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadActivityListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<ActivityContent>> {\n return (await iGet<Array<ActivityContent>>(\"loadActivityListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 评论/订阅/联系 ==========\n\n async loadReviewList(params: Readonly<{ entityNo?: string; rowCount?: string }>): Promise<Array<Reviews>> {\n return (await iGet<Array<Reviews>>(\"loadReviewList\", { data: { ...params } })) ?? []\n }\n\n async submitComment(data: Readonly<Partial<Reviews>>): Promise<boolean> {\n return await iPostSuccess(\"submitComment\", data as Record<string, any>)\n }\n\n async subscribe(data: Readonly<Pick<SubscribeUser, 'email'> & Partial<Pick<SubscribeUser, 'nickname'>>>): Promise<boolean> {\n return await iPostSuccess(\"subscribe\", data as Record<string, any>)\n }\n\n async submitContactUs(data: Readonly<Partial<ContactUs>>): Promise<boolean> {\n return await iPostSuccess(\"submitContactUs\", data as Record<string, any>)\n }\n\n // ========== 友链 ==========\n\n async loadLinkGroups(): Promise<Array<LinkGroup>> {\n return (await iGet<Array<LinkGroup>>(\"loadLinkGroups\")) ?? []\n }\n\n async loadFriendLinks(count?: number): Promise<Array<FriendLink>> {\n return (await iGet<Array<FriendLink>>(\"loadFriendLinks\", { data: count ? { count: String(count) } : {} })) ?? []\n }\n\n async submitLink(data: Readonly<Pick<FriendLink, 'name' | 'url'> & Partial<Pick<FriendLink, 'description'>>>): Promise<boolean> {\n return await iPostSuccess(\"submitLink\", data as Record<string, any>)\n }\n\n // ========== 商城 ==========\n\n async getSpecDescription(code: string): Promise<SpecDescription | undefined> {\n return iGet<SpecDescription>(\"getSpecDescription\", { data: { code } })\n }\n}\n\nexport const icmsClient = new ICMSClient()\n"],"mappings":"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"}
|
|
@@ -1,14 +1,116 @@
|
|
|
1
|
-
|
|
1
|
+
const COOKIE_NAMES = {
|
|
2
|
+
IBOOT_DEVICE_ID: "dvid",
|
|
3
|
+
IBOOT_LANG: "lang",
|
|
4
|
+
IBOOT_WEBSITE_ID: "wid",
|
|
5
|
+
IBOOT_WEBSITE_NO: "wno",
|
|
6
|
+
IBOOT_TOKEN: "token",
|
|
7
|
+
IBOOT_USER: "user"
|
|
8
|
+
}, CONTENT_TYPE_MAP = {
|
|
9
|
+
applicationJson: "application/json",
|
|
10
|
+
multipartFormData: "multipart/form-data",
|
|
11
|
+
applicationXwwwFormUrlencoded: "application/x-www-form-urlencoded"
|
|
12
|
+
};
|
|
13
|
+
var logger = {
|
|
14
|
+
info: (e, i) => {
|
|
15
|
+
process.env.NODE_ENV !== "production" && console.info(i, e);
|
|
16
|
+
},
|
|
17
|
+
debug: (e, i) => {
|
|
18
|
+
process.env.NODE_ENV !== "production" && console.debug(i, e);
|
|
19
|
+
},
|
|
20
|
+
error: (e) => {
|
|
21
|
+
console.error(e);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const getLoginUser = (i) => {
|
|
25
|
+
if (i.get) {
|
|
26
|
+
let a = i.get(COOKIE_NAMES.IBOOT_USER);
|
|
27
|
+
if (a && a.length > 0) return JSON.parse(a);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
var getBaseUrl = (e) => `${process.env.BASE_URL || "/api/services"}?m=${e}`, get = async (e, i) => {
|
|
31
|
+
let o = getBaseUrl(e);
|
|
32
|
+
if (i?.data) {
|
|
33
|
+
let e = new URLSearchParams(i.data);
|
|
34
|
+
o += `&${e}`;
|
|
35
|
+
}
|
|
36
|
+
let c = i?.headers;
|
|
37
|
+
logger.info({
|
|
38
|
+
url: o,
|
|
39
|
+
headers: c
|
|
40
|
+
}, "GET");
|
|
41
|
+
let l = await fetch(o, {
|
|
42
|
+
method: "GET",
|
|
43
|
+
headers: c,
|
|
44
|
+
cache: i?.useCache ? "force-cache" : "default"
|
|
45
|
+
});
|
|
46
|
+
if (l.ok) {
|
|
47
|
+
let e = Object.fromEntries(l.headers.entries()), i = {
|
|
48
|
+
...await l.json(),
|
|
49
|
+
headers: e
|
|
50
|
+
};
|
|
51
|
+
return logger.debug(i, "GET_RESULT"), i;
|
|
52
|
+
}
|
|
53
|
+
let u = {
|
|
54
|
+
code: l.status,
|
|
55
|
+
success: !1,
|
|
56
|
+
msg: l.statusText
|
|
57
|
+
};
|
|
58
|
+
return logger.error(u), u;
|
|
59
|
+
}, post = async (e, o) => {
|
|
60
|
+
let s = o?.data ?? {}, c, l = new Headers(o?.headers);
|
|
61
|
+
s instanceof FormData ? c = s : (c = JSON.stringify(s), l.set("Content-Type", CONTENT_TYPE_MAP.applicationJson)), logger.info({
|
|
62
|
+
url: e,
|
|
63
|
+
headers: l
|
|
64
|
+
}, "POST");
|
|
65
|
+
let u = await fetch(e, {
|
|
66
|
+
method: "POST",
|
|
67
|
+
headers: l,
|
|
68
|
+
body: c
|
|
69
|
+
});
|
|
70
|
+
if (u.ok) {
|
|
71
|
+
let e = Object.fromEntries(u.headers.entries()), i = {
|
|
72
|
+
...await u.json(),
|
|
73
|
+
headers: e
|
|
74
|
+
};
|
|
75
|
+
return logger.debug(i, "POST_RESULT"), i;
|
|
76
|
+
}
|
|
77
|
+
let d = {
|
|
78
|
+
code: u.status,
|
|
79
|
+
success: !1,
|
|
80
|
+
msg: u.statusText
|
|
81
|
+
};
|
|
82
|
+
return logger.error(d), d;
|
|
83
|
+
};
|
|
84
|
+
const iGet = async (e, i) => {
|
|
85
|
+
let a = await get(e, i);
|
|
86
|
+
if (a.success) return a.data;
|
|
87
|
+
if (i?.showError) {
|
|
88
|
+
i.showError(a.msg ?? "Get request error!");
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
throw Error(a.msg ?? "Get request error!");
|
|
92
|
+
}, iPost = async (e, i) => {
|
|
93
|
+
let a = await post(e, i);
|
|
94
|
+
if (a.success) return a.data;
|
|
95
|
+
if (i?.showError) {
|
|
96
|
+
i.showError(a.msg ?? "Post request error!");
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
throw Error(a.msg ?? "Post request error!");
|
|
100
|
+
}, iPostSuccess = async (e, i) => {
|
|
101
|
+
let a = await post(e, i);
|
|
102
|
+
return a.success ? (i?.showSuccess && i.showSuccess(a.msg ?? "SUCCESS"), !0) : (i?.showError && i.showError(a.msg ?? "Post request error!"), !1);
|
|
103
|
+
};
|
|
2
104
|
var ICMSClient = class {
|
|
3
105
|
cookies = null;
|
|
4
106
|
constructor() {}
|
|
5
107
|
setICookies(e) {
|
|
6
108
|
return this.cookies = e, this;
|
|
7
109
|
}
|
|
8
|
-
async login({ username:
|
|
110
|
+
async login({ username: e, password: i }) {
|
|
9
111
|
if (await iPost("login", { data: {
|
|
10
|
-
username:
|
|
11
|
-
password:
|
|
112
|
+
username: e,
|
|
113
|
+
password: i
|
|
12
114
|
} }), this.cookies) return getLoginUser(this.cookies);
|
|
13
115
|
}
|
|
14
116
|
async logout() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icms-api.client.es.js","names":["data: Record<string, string>"],"sources":["../src/client.ts"],"sourcesContent":["import type { Member, FriendLink, LinkGroup, I18NWebsite, Webchannel, WebsiteInfo } from \"./types/site\"\nimport type { ProductContent } from \"./types/cms-product\"\nimport type { PageInfo, PageParams } from \"./types/cms-base\"\nimport type { NewsContent } from \"./types/cms-news\"\nimport type { PhotoContent } from \"./types/cms-photo\"\nimport type { VideoContent } from \"./types/cms-video\"\nimport type { ActivityContent } from \"./types/cms-activity\"\nimport type { Reviews, SubscribeUser, ContactUs } from \"./types/cms-message\"\nimport type { SpecDescription } from \"./types/cms-mall\"\nimport { getLoginUser, ICookies, iGet, iPost, iPostSuccess } from \"@rock.chen/icms-http-client\"\n\n\nexport class ICMSClient {\n private cookies: ICookies | null = null\n\n constructor() {\n }\n\n setICookies(c: ICookies): ICMSClient {\n this.cookies = c;\n return this;\n }\n\n // ========== 用户认证 ==========\n\n async login({ username, password }: Readonly<{ username: string, password: string }>): Promise<Member | undefined> {\n await iPost('login', {\n data: { username, password }\n })\n if (this.cookies) {\n return getLoginUser(this.cookies)\n }\n return undefined\n }\n\n async logout(): Promise<void> {\n await iPost('logout');\n }\n\n // ========== 网站信息 ==========\n\n async loadI18nList(): Promise<Array<I18NWebsite>> {\n return (await iGet<Array<I18NWebsite>>(\"loadI18nList\")) ?? []\n }\n\n async loadWebsite(params?: Readonly<{ showNav?: boolean; showFriendLink?: boolean; showI18NList?: boolean }>): Promise<WebsiteInfo | undefined> {\n const data: Record<string, string> = {\n showNav: String(params?.showNav ?? true),\n showFriendLink: String(params?.showFriendLink ?? false),\n }\n return iGet<WebsiteInfo>(\"loadWebsite\", data)\n }\n\n async loadChannels(params?: Readonly<{ channelNo?: string; showChildren?: boolean }>): Promise<Array<Webchannel>> {\n const data: Record<string, string> = {}\n if (params?.channelNo) data.channelNo = params.channelNo\n if (params?.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return (await iGet<Array<Webchannel>>(\"loadChannels\", data)) ?? []\n }\n\n async loadChannelById(params: Readonly<{ channelId: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { channelId: params.channelId }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelById\", data)\n }\n\n async loadChannelByNo(params: Readonly<{ channelNo: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { channelNo: params.channelNo }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelByNo\", data)\n }\n\n async loadChannelByUri(params: Readonly<{ uri: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { uri: params.uri }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelByUri\", data)\n }\n\n // ========== 产品 ==========\n\n async loadProductDetail(proId: string): Promise<ProductContent | undefined> {\n return iGet<ProductContent>(\"loadProductDetail\", { data: { proId } })\n }\n\n async loadProductPageInfo(params: Readonly<{ channelId?: string; keyword?: string } & PageParams>): Promise<PageInfo<ProductContent> | undefined> {\n return iGet<PageInfo<ProductContent>>(\"loadProductPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadProductPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<ProductContent> | undefined> {\n return iGet<PageInfo<ProductContent>>(\"loadProductPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadProductListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<ProductContent>> {\n return (await iGet<Array<ProductContent>>(\"loadProductListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 图文 ==========\n\n async loadNewsDetail(newId: string): Promise<NewsContent | undefined> {\n return iGet<NewsContent>(\"loadNewsDetail\", { data: { newId } })\n }\n\n async loadNewsPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<NewsContent> | undefined> {\n return iGet<PageInfo<NewsContent>>(\"loadNewsPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadNewsPageInfoByGroupId(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<NewsContent> | undefined> {\n return iGet<PageInfo<NewsContent>>(\"loadNewsPageInfoByGroupId\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadNewsListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<NewsContent>> {\n return (await iGet<Array<NewsContent>>(\"loadNewsListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 相册 ==========\n\n async loadPhotoDetail(photoId: string): Promise<PhotoContent | undefined> {\n return iGet<PhotoContent>(\"loadPhotoDetail\", { data: { photoId } })\n }\n\n async loadPhotoPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<PhotoContent> | undefined> {\n return iGet<PageInfo<PhotoContent>>(\"loadPhotoPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadPhotoPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<PhotoContent> | undefined> {\n return iGet<PageInfo<PhotoContent>>(\"loadPhotoPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadPhotoListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<PhotoContent>> {\n return (await iGet<Array<PhotoContent>>(\"loadPhotoListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 视频 ==========\n\n async loadVideoDetail(videoId: string): Promise<VideoContent | undefined> {\n return iGet<VideoContent>(\"loadVideoDetail\", { data: { videoId } })\n }\n\n async loadVideoPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<VideoContent> | undefined> {\n return iGet<PageInfo<VideoContent>>(\"loadVideoPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadVideoPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<VideoContent> | undefined> {\n return iGet<PageInfo<VideoContent>>(\"loadVideoPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadVideoListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<VideoContent>> {\n return (await iGet<Array<VideoContent>>(\"loadVideoListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 活动 ==========\n\n async loadActivityDetail(activityId: string): Promise<ActivityContent | undefined> {\n return iGet<ActivityContent>(\"loadActivityDetail\", { data: { activityId } })\n }\n\n async loadActivityPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<ActivityContent> | undefined> {\n return iGet<PageInfo<ActivityContent>>(\"loadActivityPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadActivityPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<ActivityContent> | undefined> {\n return iGet<PageInfo<ActivityContent>>(\"loadActivityPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadActivityListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<ActivityContent>> {\n return (await iGet<Array<ActivityContent>>(\"loadActivityListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 评论/订阅/联系 ==========\n\n async loadReviewList(params: Readonly<{ entityNo?: string; rowCount?: string }>): Promise<Array<Reviews>> {\n return (await iGet<Array<Reviews>>(\"loadReviewList\", { data: { ...params } })) ?? []\n }\n\n async submitComment(data: Readonly<Partial<Reviews>>): Promise<boolean> {\n return await iPostSuccess(\"submitComment\", data as Record<string, any>)\n }\n\n async subscribe(data: Readonly<Pick<SubscribeUser, 'email'> & Partial<Pick<SubscribeUser, 'nickname'>>>): Promise<boolean> {\n return await iPostSuccess(\"subscribe\", data as Record<string, any>)\n }\n\n async submitContactUs(data: Readonly<Partial<ContactUs>>): Promise<boolean> {\n return await iPostSuccess(\"submitContactUs\", data as Record<string, any>)\n }\n\n // ========== 友链 ==========\n\n async loadLinkGroups(): Promise<Array<LinkGroup>> {\n return (await iGet<Array<LinkGroup>>(\"loadLinkGroups\")) ?? []\n }\n\n async loadFriendLinks(count?: number): Promise<Array<FriendLink>> {\n return (await iGet<Array<FriendLink>>(\"loadFriendLinks\", { data: count ? { count: String(count) } : {} })) ?? []\n }\n\n async submitLink(data: Readonly<Pick<FriendLink, 'name' | 'url'> & Partial<Pick<FriendLink, 'description'>>>): Promise<boolean> {\n return await iPostSuccess(\"submitLink\", data as Record<string, any>)\n }\n\n // ========== 商城 ==========\n\n async getSpecDescription(code: string): Promise<SpecDescription | undefined> {\n return iGet<SpecDescription>(\"getSpecDescription\", { data: { code } })\n }\n}\n\nexport const icmsClient = new ICMSClient()\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"icms-api.client.es.js","names":["body: string | FormData","data: Record<string, string>"],"sources":["../src/client-helper.ts","../src/client.ts"],"sourcesContent":["/**\n * 客户端 HTTP 辅助函数\n * 从 @rock.chen/icms-http-client/web-client 内联,\n * 避免引入 pino/pino-pretty/sonic-boom 等 Node.js 服务端模块\n */\n\n// ---- 类型 ----\n\n/** Cookie 读写接口 */\nexport interface ICookies {\n get(key: string): string | undefined;\n set?(key: string, value: string): void;\n delete?(key: string): void;\n}\n\n/** API 返回模型 */\nexport interface ResultModel<T = unknown> {\n code: number;\n success: boolean;\n msg: string;\n data?: T;\n headers?: Record<string, string>;\n}\n\n/** GET 请求参数 */\nexport interface ClientGetParams {\n data?: Record<string, string>;\n headers?: Record<string, string>;\n useCache?: boolean;\n showError?: (msg: string) => void;\n}\n\n/** POST 请求参数 */\nexport interface ClientPostParams {\n data?: Record<string, unknown> | FormData;\n headers?: Record<string, string>;\n showError?: (msg: string) => void;\n showSuccess?: (msg: string) => void;\n}\n\n/** Cookie 名称常量 */\nexport const COOKIE_NAMES = {\n IBOOT_DEVICE_ID: \"dvid\",\n IBOOT_LANG: \"lang\",\n IBOOT_WEBSITE_ID: \"wid\",\n IBOOT_WEBSITE_NO: \"wno\",\n IBOOT_TOKEN: \"token\",\n IBOOT_USER: \"user\",\n} as const;\n\n/** Content-Type 常量 */\nexport const CONTENT_TYPE_KEY = \"Content-Type\";\nexport const CONTENT_TYPE_MAP = {\n applicationJson: \"application/json\",\n multipartFormData: \"multipart/form-data\",\n applicationXwwwFormUrlencoded: \"application/x-www-form-urlencoded\",\n} as const;\n\n/** 用户信息 */\nexport interface User {\n id: string;\n name: string;\n userType: number;\n username?: string;\n nickname?: string;\n sex?: number;\n headImg?: string;\n lastLoginTime?: string;\n tokenExpired?: string;\n deviceId?: string;\n status?: number;\n accountType?: number;\n enabled?: boolean;\n userFrom?: number;\n needToReview?: boolean;\n socketOnline?: boolean;\n createTime?: string;\n mustChangePwd?: boolean;\n}\n\n// ---- Logger(浏览器 console 实现,唔引入 pino) ----\n\nconst logger = {\n info: (msg: unknown, tag: string) => {\n if (process.env.NODE_ENV !== \"production\") console.info(tag, msg);\n },\n debug: (msg: unknown, tag: string) => {\n if (process.env.NODE_ENV !== \"production\") console.debug(tag, msg);\n },\n error: (msg: unknown) => {\n console.error(msg);\n },\n};\n\n// ---- 函数 ----\n\n/** 从 cookie 中读取已登录用户信息 */\nexport const getLoginUser = (cookies: ICookies): User | undefined => {\n if (cookies.get) {\n const userjson = cookies.get(COOKIE_NAMES.IBOOT_USER);\n if (userjson && userjson.length > 0) {\n return JSON.parse(userjson);\n }\n }\n return undefined;\n};\n\nconst getBaseUrl = (urlName: string) => {\n const baseUrl = process.env.BASE_URL || \"/api/services\";\n return `${baseUrl}?m=${urlName}`;\n};\n\n/** 客户端 GET 请求 */\nconst get = async <T>(\n urlName: string,\n opts?: ClientGetParams,\n): Promise<ResultModel<T>> => {\n let url = getBaseUrl(urlName);\n if (opts?.data) {\n const params = new URLSearchParams(opts.data);\n url += `&${params}`;\n }\n const heads = opts?.headers;\n logger.info({ url, headers: heads }, \"GET\");\n const res = await fetch(url, {\n method: \"GET\",\n headers: heads,\n cache: opts?.useCache ? \"force-cache\" : \"default\",\n });\n\n if (res.ok) {\n const headersMap = Object.fromEntries(res.headers.entries());\n const result = { ...(await res.json()), headers: headersMap };\n logger.debug(result, \"GET_RESULT\");\n return result;\n }\n const msg = { code: res.status, success: false, msg: res.statusText };\n logger.error(msg);\n return msg;\n};\n\n/** 客户端 POST 请求 */\nconst post = async <T>(\n urlName: string,\n opts?: ClientPostParams,\n): Promise<ResultModel<T>> => {\n const data = opts?.data ?? {};\n let body: string | FormData;\n const proxyHeaders = new Headers(opts?.headers);\n if (!(data instanceof FormData)) {\n body = JSON.stringify(data);\n proxyHeaders.set(CONTENT_TYPE_KEY, CONTENT_TYPE_MAP.applicationJson);\n } else {\n body = data;\n }\n logger.info({ url: urlName, headers: proxyHeaders }, \"POST\");\n const res = await fetch(urlName, {\n method: \"POST\",\n headers: proxyHeaders,\n body,\n });\n\n if (res.ok) {\n const headersMap = Object.fromEntries(res.headers.entries());\n const result = { ...(await res.json()), headers: headersMap };\n logger.debug(result, \"POST_RESULT\");\n return result;\n }\n const msg = { code: res.status, success: false, msg: res.statusText };\n logger.error(msg);\n return msg;\n};\n\n/** GET 请求快捷方法(自动解包 data) */\nexport const iGet = async <T>(\n url: string,\n opts?: ClientGetParams,\n): Promise<T | undefined> => {\n const res = await get<T>(url, opts);\n if (res.success) {\n return res.data as T;\n }\n if (opts?.showError) {\n opts.showError(res.msg ?? \"Get request error!\");\n return;\n }\n throw Error(res.msg ?? \"Get request error!\");\n};\n\n/** POST 请求快捷方法(自动解包 data) */\nexport const iPost = async <T>(\n url: string,\n opts?: ClientPostParams,\n): Promise<T | undefined> => {\n const res = await post<T>(url, opts);\n if (res.success) {\n return res.data;\n }\n if (opts?.showError) {\n opts.showError(res.msg ?? \"Post request error!\");\n return;\n }\n throw Error(res.msg ?? \"Post request error!\");\n};\n\n/** POST 请求,返回 boolean */\nexport const iPostSuccess = async (\n url: string,\n opts?: ClientPostParams,\n): Promise<boolean> => {\n const res = await post(url, opts);\n if (res.success) {\n if (opts?.showSuccess) opts.showSuccess(res.msg ?? \"SUCCESS\");\n return true;\n }\n if (opts?.showError) opts.showError(res.msg ?? \"Post request error!\");\n return false;\n};\n","import type { Member, FriendLink, LinkGroup, I18NWebsite, Webchannel, WebsiteInfo } from \"./types/site\"\nimport type { ProductContent } from \"./types/cms-product\"\nimport type { PageInfo, PageParams } from \"./types/cms-base\"\nimport type { NewsContent } from \"./types/cms-news\"\nimport type { PhotoContent } from \"./types/cms-photo\"\nimport type { VideoContent } from \"./types/cms-video\"\nimport type { ActivityContent } from \"./types/cms-activity\"\nimport type { Reviews, SubscribeUser, ContactUs } from \"./types/cms-message\"\nimport type { SpecDescription } from \"./types/cms-mall\"\nimport { getLoginUser, ICookies, iGet, iPost, iPostSuccess } from \"./client-helper\"\n\n\nexport class ICMSClient {\n private cookies: ICookies | null = null\n\n constructor() {\n }\n\n setICookies(c: ICookies): ICMSClient {\n this.cookies = c;\n return this;\n }\n\n // ========== 用户认证 ==========\n\n async login({ username, password }: Readonly<{ username: string, password: string }>): Promise<Member | undefined> {\n await iPost('login', {\n data: { username, password }\n })\n if (this.cookies) {\n return getLoginUser(this.cookies)\n }\n return undefined\n }\n\n async logout(): Promise<void> {\n await iPost('logout');\n }\n\n // ========== 网站信息 ==========\n\n async loadI18nList(): Promise<Array<I18NWebsite>> {\n return (await iGet<Array<I18NWebsite>>(\"loadI18nList\")) ?? []\n }\n\n async loadWebsite(params?: Readonly<{ showNav?: boolean; showFriendLink?: boolean; showI18NList?: boolean }>): Promise<WebsiteInfo | undefined> {\n const data: Record<string, string> = {\n showNav: String(params?.showNav ?? true),\n showFriendLink: String(params?.showFriendLink ?? false),\n }\n return iGet<WebsiteInfo>(\"loadWebsite\", data)\n }\n\n async loadChannels(params?: Readonly<{ channelNo?: string; showChildren?: boolean }>): Promise<Array<Webchannel>> {\n const data: Record<string, string> = {}\n if (params?.channelNo) data.channelNo = params.channelNo\n if (params?.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return (await iGet<Array<Webchannel>>(\"loadChannels\", data)) ?? []\n }\n\n async loadChannelById(params: Readonly<{ channelId: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { channelId: params.channelId }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelById\", data)\n }\n\n async loadChannelByNo(params: Readonly<{ channelNo: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { channelNo: params.channelNo }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelByNo\", data)\n }\n\n async loadChannelByUri(params: Readonly<{ uri: string; showChildren?: boolean }>): Promise<Webchannel | undefined> {\n const data: Record<string, string> = { uri: params.uri }\n if (params.showChildren !== undefined) data.showChildren = String(params.showChildren)\n return iGet<Webchannel>(\"loadChannelByUri\", data)\n }\n\n // ========== 产品 ==========\n\n async loadProductDetail(proId: string): Promise<ProductContent | undefined> {\n return iGet<ProductContent>(\"loadProductDetail\", { data: { proId } })\n }\n\n async loadProductPageInfo(params: Readonly<{ channelId?: string; keyword?: string } & PageParams>): Promise<PageInfo<ProductContent> | undefined> {\n return iGet<PageInfo<ProductContent>>(\"loadProductPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadProductPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<ProductContent> | undefined> {\n return iGet<PageInfo<ProductContent>>(\"loadProductPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadProductListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<ProductContent>> {\n return (await iGet<Array<ProductContent>>(\"loadProductListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 图文 ==========\n\n async loadNewsDetail(newId: string): Promise<NewsContent | undefined> {\n return iGet<NewsContent>(\"loadNewsDetail\", { data: { newId } })\n }\n\n async loadNewsPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<NewsContent> | undefined> {\n return iGet<PageInfo<NewsContent>>(\"loadNewsPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadNewsPageInfoByGroupId(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<NewsContent> | undefined> {\n return iGet<PageInfo<NewsContent>>(\"loadNewsPageInfoByGroupId\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadNewsListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<NewsContent>> {\n return (await iGet<Array<NewsContent>>(\"loadNewsListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 相册 ==========\n\n async loadPhotoDetail(photoId: string): Promise<PhotoContent | undefined> {\n return iGet<PhotoContent>(\"loadPhotoDetail\", { data: { photoId } })\n }\n\n async loadPhotoPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<PhotoContent> | undefined> {\n return iGet<PageInfo<PhotoContent>>(\"loadPhotoPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadPhotoPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<PhotoContent> | undefined> {\n return iGet<PageInfo<PhotoContent>>(\"loadPhotoPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadPhotoListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<PhotoContent>> {\n return (await iGet<Array<PhotoContent>>(\"loadPhotoListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 视频 ==========\n\n async loadVideoDetail(videoId: string): Promise<VideoContent | undefined> {\n return iGet<VideoContent>(\"loadVideoDetail\", { data: { videoId } })\n }\n\n async loadVideoPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<VideoContent> | undefined> {\n return iGet<PageInfo<VideoContent>>(\"loadVideoPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadVideoPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<VideoContent> | undefined> {\n return iGet<PageInfo<VideoContent>>(\"loadVideoPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadVideoListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<VideoContent>> {\n return (await iGet<Array<VideoContent>>(\"loadVideoListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 活动 ==========\n\n async loadActivityDetail(activityId: string): Promise<ActivityContent | undefined> {\n return iGet<ActivityContent>(\"loadActivityDetail\", { data: { activityId } })\n }\n\n async loadActivityPageInfo(params: Readonly<{ channelNo?: string; keyword?: string } & PageParams>): Promise<PageInfo<ActivityContent> | undefined> {\n return iGet<PageInfo<ActivityContent>>(\"loadActivityPageInfo\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadActivityPageInfoByGroup(params: Readonly<{ groupId: string } & PageParams>): Promise<PageInfo<ActivityContent> | undefined> {\n return iGet<PageInfo<ActivityContent>>(\"loadActivityPageInfoByGroup\", { data: { ...params, pageNo: String(params.pageNo), pageSize: String(params.pageSize) } })\n }\n\n async loadActivityListByGroupId(params: Readonly<{ groupId: string }>): Promise<Array<ActivityContent>> {\n return (await iGet<Array<ActivityContent>>(\"loadActivityListByGroupId\", { data: { groupId: params.groupId } })) ?? []\n }\n\n // ========== 评论/订阅/联系 ==========\n\n async loadReviewList(params: Readonly<{ entityNo?: string; rowCount?: string }>): Promise<Array<Reviews>> {\n return (await iGet<Array<Reviews>>(\"loadReviewList\", { data: { ...params } })) ?? []\n }\n\n async submitComment(data: Readonly<Partial<Reviews>>): Promise<boolean> {\n return await iPostSuccess(\"submitComment\", data as Record<string, any>)\n }\n\n async subscribe(data: Readonly<Pick<SubscribeUser, 'email'> & Partial<Pick<SubscribeUser, 'nickname'>>>): Promise<boolean> {\n return await iPostSuccess(\"subscribe\", data as Record<string, any>)\n }\n\n async submitContactUs(data: Readonly<Partial<ContactUs>>): Promise<boolean> {\n return await iPostSuccess(\"submitContactUs\", data as Record<string, any>)\n }\n\n // ========== 友链 ==========\n\n async loadLinkGroups(): Promise<Array<LinkGroup>> {\n return (await iGet<Array<LinkGroup>>(\"loadLinkGroups\")) ?? []\n }\n\n async loadFriendLinks(count?: number): Promise<Array<FriendLink>> {\n return (await iGet<Array<FriendLink>>(\"loadFriendLinks\", { data: count ? { count: String(count) } : {} })) ?? []\n }\n\n async submitLink(data: Readonly<Pick<FriendLink, 'name' | 'url'> & Partial<Pick<FriendLink, 'description'>>>): Promise<boolean> {\n return await iPostSuccess(\"submitLink\", data as Record<string, any>)\n }\n\n // ========== 商城 ==========\n\n async getSpecDescription(code: string): Promise<SpecDescription | undefined> {\n return iGet<SpecDescription>(\"getSpecDescription\", { data: { code } })\n }\n}\n\nexport const icmsClient = new ICMSClient()\n"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 客户端 HTTP 辅助函数
|
|
3
|
+
* 从 @rock.chen/icms-http-client/web-client 内联,
|
|
4
|
+
* 避免引入 pino/pino-pretty/sonic-boom 等 Node.js 服务端模块
|
|
5
|
+
*/
|
|
6
|
+
/** Cookie 读写接口 */
|
|
7
|
+
export interface ICookies {
|
|
8
|
+
get(key: string): string | undefined;
|
|
9
|
+
set?(key: string, value: string): void;
|
|
10
|
+
delete?(key: string): void;
|
|
11
|
+
}
|
|
12
|
+
/** API 返回模型 */
|
|
13
|
+
export interface ResultModel<T = unknown> {
|
|
14
|
+
code: number;
|
|
15
|
+
success: boolean;
|
|
16
|
+
msg: string;
|
|
17
|
+
data?: T;
|
|
18
|
+
headers?: Record<string, string>;
|
|
19
|
+
}
|
|
20
|
+
/** GET 请求参数 */
|
|
21
|
+
export interface ClientGetParams {
|
|
22
|
+
data?: Record<string, string>;
|
|
23
|
+
headers?: Record<string, string>;
|
|
24
|
+
useCache?: boolean;
|
|
25
|
+
showError?: (msg: string) => void;
|
|
26
|
+
}
|
|
27
|
+
/** POST 请求参数 */
|
|
28
|
+
export interface ClientPostParams {
|
|
29
|
+
data?: Record<string, unknown> | FormData;
|
|
30
|
+
headers?: Record<string, string>;
|
|
31
|
+
showError?: (msg: string) => void;
|
|
32
|
+
showSuccess?: (msg: string) => void;
|
|
33
|
+
}
|
|
34
|
+
/** Cookie 名称常量 */
|
|
35
|
+
export declare const COOKIE_NAMES: {
|
|
36
|
+
readonly IBOOT_DEVICE_ID: "dvid";
|
|
37
|
+
readonly IBOOT_LANG: "lang";
|
|
38
|
+
readonly IBOOT_WEBSITE_ID: "wid";
|
|
39
|
+
readonly IBOOT_WEBSITE_NO: "wno";
|
|
40
|
+
readonly IBOOT_TOKEN: "token";
|
|
41
|
+
readonly IBOOT_USER: "user";
|
|
42
|
+
};
|
|
43
|
+
/** Content-Type 常量 */
|
|
44
|
+
export declare const CONTENT_TYPE_KEY = "Content-Type";
|
|
45
|
+
export declare const CONTENT_TYPE_MAP: {
|
|
46
|
+
readonly applicationJson: "application/json";
|
|
47
|
+
readonly multipartFormData: "multipart/form-data";
|
|
48
|
+
readonly applicationXwwwFormUrlencoded: "application/x-www-form-urlencoded";
|
|
49
|
+
};
|
|
50
|
+
/** 用户信息 */
|
|
51
|
+
export interface User {
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
userType: number;
|
|
55
|
+
username?: string;
|
|
56
|
+
nickname?: string;
|
|
57
|
+
sex?: number;
|
|
58
|
+
headImg?: string;
|
|
59
|
+
lastLoginTime?: string;
|
|
60
|
+
tokenExpired?: string;
|
|
61
|
+
deviceId?: string;
|
|
62
|
+
status?: number;
|
|
63
|
+
accountType?: number;
|
|
64
|
+
enabled?: boolean;
|
|
65
|
+
userFrom?: number;
|
|
66
|
+
needToReview?: boolean;
|
|
67
|
+
socketOnline?: boolean;
|
|
68
|
+
createTime?: string;
|
|
69
|
+
mustChangePwd?: boolean;
|
|
70
|
+
}
|
|
71
|
+
/** 从 cookie 中读取已登录用户信息 */
|
|
72
|
+
export declare const getLoginUser: (cookies: ICookies) => User | undefined;
|
|
73
|
+
/** GET 请求快捷方法(自动解包 data) */
|
|
74
|
+
export declare const iGet: <T>(url: string, opts?: ClientGetParams) => Promise<T | undefined>;
|
|
75
|
+
/** POST 请求快捷方法(自动解包 data) */
|
|
76
|
+
export declare const iPost: <T>(url: string, opts?: ClientPostParams) => Promise<T | undefined>;
|
|
77
|
+
/** POST 请求,返回 boolean */
|
|
78
|
+
export declare const iPostSuccess: (url: string, opts?: ClientPostParams) => Promise<boolean>;
|
package/dist/types/client.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { VideoContent } from './types/cms-video';
|
|
|
7
7
|
import { ActivityContent } from './types/cms-activity';
|
|
8
8
|
import { Reviews, SubscribeUser, ContactUs } from './types/cms-message';
|
|
9
9
|
import { SpecDescription } from './types/cms-mall';
|
|
10
|
-
import { ICookies } from '
|
|
10
|
+
import { ICookies } from './client-helper';
|
|
11
11
|
export declare class ICMSClient {
|
|
12
12
|
private cookies;
|
|
13
13
|
constructor();
|