beer-network 1.2.10 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/api.js CHANGED
@@ -1,8 +1,13 @@
1
- import { Session } from './session';
2
- import { getNodeHeaders } from './NextHeadersLazy';
1
+ import Session from './session';
2
+ import { getNodeHeaders } from './next-headers';
3
3
  export default class Fetch {
4
+ /**
5
+ * 请求地址.
6
+ */
7
+ pathPrefix;
8
+ isNode;
9
+ isNextJS = undefined;
4
10
  constructor(pathPrefix) {
5
- this.isNextJS = undefined;
6
11
  this.pathPrefix = pathPrefix || '';
7
12
  this.isNode = typeof process !== 'undefined' && !!process.versions?.node;
8
13
  }
@@ -0,0 +1,17 @@
1
+ export default class ElementUtils {
2
+ /**
3
+ * 选择文件本地文件.
4
+ * @param multiple 是否多选.
5
+ */
6
+ static selectFile(multiple?: boolean | undefined): Promise<FileList | null>;
7
+ /**
8
+ * 选择文件夹.
9
+ */
10
+ static selectDirectory(): Promise<FileSystemDirectoryHandle | undefined>;
11
+ /**
12
+ * 下载文件.
13
+ * @param url 文件下载地址.
14
+ * @param fileName 文件名称.
15
+ */
16
+ static download(url: string, fileName?: string): void;
17
+ }
@@ -0,0 +1,44 @@
1
+ export default class ElementUtils {
2
+ /**
3
+ * 选择文件本地文件.
4
+ * @param multiple 是否多选.
5
+ */
6
+ static selectFile(multiple) {
7
+ return new Promise((resolve) => {
8
+ const fileInput = document.createElement('input');
9
+ fileInput.type = 'file';
10
+ fileInput.multiple = multiple || false;
11
+ fileInput.style.display = 'none';
12
+ document.body.appendChild(fileInput);
13
+ fileInput.addEventListener('change', () => {
14
+ resolve(fileInput.files);
15
+ document.body.removeChild(fileInput);
16
+ });
17
+ fileInput.click();
18
+ });
19
+ }
20
+ /**
21
+ * 选择文件夹.
22
+ */
23
+ static async selectDirectory() {
24
+ if (!window.showDirectoryPicker) {
25
+ // eslint-disable-next-line no-alert
26
+ alert('您的浏览器不支持文件夹选择功能');
27
+ return undefined;
28
+ }
29
+ return window.showDirectoryPicker();
30
+ }
31
+ /**
32
+ * 下载文件.
33
+ * @param url 文件下载地址.
34
+ * @param fileName 文件名称.
35
+ */
36
+ static download(url, fileName) {
37
+ const link = document.createElement('a');
38
+ link.href = url;
39
+ link.download = fileName || '';
40
+ document.body.appendChild(link);
41
+ link.click();
42
+ document.body.removeChild(link);
43
+ }
44
+ }
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export { default as Utils } from './utils';
2
+ export { default as ElementUtils } from './element-utils';
3
+ export { default as Fetch, JsonResponse, RequestData, Option } from './api';
4
+ export { default as Session } from './session';
package/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { default as Utils } from './utils';
2
+ export { default as ElementUtils } from './element-utils';
3
+ export { default as Fetch } from './api';
4
+ export { default as Session } from './session';
@@ -0,0 +1,13 @@
1
+ type HeadersLike = {
2
+ get(name: string): string | null;
3
+ };
4
+ type CookiesLike = {
5
+ get(name: string): {
6
+ value: string;
7
+ } | undefined;
8
+ getAll?: () => Array<any>;
9
+ has?: (name: string) => boolean;
10
+ };
11
+ export declare function getNodeHeaders(): Promise<HeadersLike>;
12
+ export declare function getNodeCookies(): CookiesLike;
13
+ export {};
@@ -0,0 +1,45 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable no-eval */
3
+ function loadNextHeadersModule() {
4
+ try {
5
+ const req = eval('require');
6
+ return req('next/headers');
7
+ }
8
+ catch {
9
+ return null;
10
+ }
11
+ }
12
+ function emptyHeaders() {
13
+ return {
14
+ get() {
15
+ return null;
16
+ }
17
+ };
18
+ }
19
+ function emptyCookies() {
20
+ return {
21
+ get() {
22
+ return undefined;
23
+ },
24
+ getAll() {
25
+ return [];
26
+ },
27
+ has() {
28
+ return false;
29
+ }
30
+ };
31
+ }
32
+ export async function getNodeHeaders() {
33
+ const mod = loadNextHeadersModule();
34
+ if (mod?.headers) {
35
+ return mod.headers();
36
+ }
37
+ return emptyHeaders();
38
+ }
39
+ export function getNodeCookies() {
40
+ const mod = loadNextHeadersModule();
41
+ if (mod?.cookies) {
42
+ return mod.cookies();
43
+ }
44
+ return emptyCookies();
45
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "beer-network",
3
3
  "private": false,
4
- "version": "1.2.10",
4
+ "version": "1.3.1",
5
5
  "scripts": {
6
6
  "pub-w": "tsc && copy package.json .\\dist\\package.json && npm publish ./dist",
7
7
  "pub-m": "tsc && cp package.json ./dist/package.json && npm publish ./dist"
package/session.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare class Session {
1
+ export default class Session {
2
2
  /**
3
3
  * 获取令牌.
4
4
  * <li>window.sessionKey 设置读取缓存用户信息的Key, 默认 login_user.</li>
package/session.js CHANGED
@@ -1,4 +1,4 @@
1
- export class Session {
1
+ export default class Session {
2
2
  /**
3
3
  * 获取令牌.
4
4
  * <li>window.sessionKey 设置读取缓存用户信息的Key, 默认 login_user.</li>