oak-domain 4.0.1 → 4.0.2
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/lib/actions/action.d.ts +16 -16
- package/lib/actions/action.js +17 -17
- package/lib/actions/relation.d.ts +5 -5
- package/lib/actions/relation.js +25 -25
- package/lib/base-app-domain/ActionAuth/Schema.d.ts +186 -186
- package/lib/base-app-domain/ActionAuth/Storage.js +39 -39
- package/lib/base-app-domain/ActionDefDict.d.ts +8 -8
- package/lib/base-app-domain/ActionDefDict.js +9 -9
- package/lib/base-app-domain/EntityDict.d.ts +28 -28
- package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
- package/lib/base-app-domain/I18n/Schema.js +2 -2
- package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
- package/lib/base-app-domain/I18n/Storage.js +59 -59
- package/lib/base-app-domain/Modi/Action.d.ts +10 -10
- package/lib/base-app-domain/Modi/Action.js +14 -14
- package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
- package/lib/base-app-domain/Modi/Storage.js +63 -63
- package/lib/base-app-domain/ModiEntity/Schema.d.ts +384 -384
- package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
- package/lib/base-app-domain/Oper/Schema.d.ts +153 -153
- package/lib/base-app-domain/Oper/Storage.js +38 -38
- package/lib/base-app-domain/OperEntity/Schema.d.ts +373 -373
- package/lib/base-app-domain/OperEntity/Storage.js +30 -30
- package/lib/base-app-domain/Path/Schema.d.ts +149 -149
- package/lib/base-app-domain/Path/Schema.js +2 -2
- package/lib/base-app-domain/Path/Storage.d.ts +3 -3
- package/lib/base-app-domain/Path/Storage.js +54 -54
- package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
- package/lib/base-app-domain/Relation/Storage.js +54 -54
- package/lib/base-app-domain/Relation.d.ts +2 -2
- package/lib/base-app-domain/Relation.js +4 -4
- package/lib/base-app-domain/RelationAuth/Schema.d.ts +214 -214
- package/lib/base-app-domain/RelationAuth/Storage.js +44 -44
- package/lib/base-app-domain/Storage.js +31 -31
- package/lib/base-app-domain/User/Action.d.ts +10 -10
- package/lib/base-app-domain/User/Action.js +12 -12
- package/lib/base-app-domain/User/Schema.d.ts +210 -210
- package/lib/base-app-domain/User/Storage.js +33 -33
- package/lib/base-app-domain/UserEntityClaim/Schema.d.ts +264 -264
- package/lib/base-app-domain/UserEntityClaim/Schema.js +2 -2
- package/lib/base-app-domain/UserEntityClaim/Storage.d.ts +3 -3
- package/lib/base-app-domain/UserEntityClaim/Storage.js +37 -37
- package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +131 -131
- package/lib/base-app-domain/UserEntityGrant/Storage.js +25 -25
- package/lib/base-app-domain/UserRelation/Schema.d.ts +208 -208
- package/lib/base-app-domain/UserRelation/Storage.js +56 -56
- package/lib/base-app-domain/_SubQuery.d.ts +142 -142
- package/lib/base-app-domain/index.d.ts +4 -4
- package/lib/base-app-domain/index.js +7 -7
- package/lib/checkers/index.d.ts +5 -5
- package/lib/checkers/index.js +13 -13
- package/lib/compiler/entities.d.ts +2 -2
- package/lib/compiler/entities.js +7 -7
- package/lib/compiler/env.d.ts +13 -13
- package/lib/compiler/env.js +45 -45
- package/lib/compiler/localeBuilder.d.ts +27 -27
- package/lib/compiler/localeBuilder.js +37 -8
- package/lib/compiler/routerBuilder.d.ts +1 -0
- package/lib/compiler/routerBuilder.js +257 -0
- package/lib/compiler/schemalBuilder.d.ts +27 -27
- package/lib/compiler/schemalBuilder.js +3565 -3565
- package/lib/entities/ActionAuth.d.ts +10 -10
- package/lib/entities/ActionAuth.js +31 -31
- package/lib/entities/I18n.d.ts +9 -9
- package/lib/entities/I18n.js +36 -36
- package/lib/entities/Modi.js +49 -49
- package/lib/entities/ModiEntity.js +18 -18
- package/lib/entities/Oper.js +21 -21
- package/lib/entities/OperEntity.js +18 -18
- package/lib/entities/Path.d.ts +8 -8
- package/lib/entities/Path.js +35 -35
- package/lib/entities/Relation.d.ts +8 -8
- package/lib/entities/Relation.js +35 -35
- package/lib/entities/RelationAuth.d.ts +8 -8
- package/lib/entities/RelationAuth.js +34 -34
- package/lib/entities/User.js +31 -31
- package/lib/entities/UserEntityClaim.d.ts +13 -13
- package/lib/entities/UserEntityClaim.js +17 -17
- package/lib/entities/UserEntityGrant.d.ts +9 -9
- package/lib/entities/UserEntityGrant.js +15 -15
- package/lib/entities/UserRelation.d.ts +10 -10
- package/lib/entities/UserRelation.js +38 -38
- package/lib/index.d.ts +23 -23
- package/lib/index.js +37 -37
- package/lib/store/AsyncRowStore.d.ts +65 -65
- package/lib/store/AsyncRowStore.js +176 -176
- package/lib/store/CascadeStore.d.ts +4 -1
- package/lib/store/CascadeStore.js +9 -1
- package/lib/store/RelationAuth.d.ts +96 -96
- package/lib/store/RelationAuth.js +1336 -1336
- package/lib/store/SyncRowStore.d.ts +29 -29
- package/lib/store/SyncRowStore.js +50 -50
- package/lib/store/TriggerExecutor.d.ts +41 -41
- package/lib/store/TriggerExecutor.js +1 -1
- package/lib/store/actionAuth.d.ts +4 -4
- package/lib/store/actionAuth.js +25 -25
- package/lib/store/actionDef.d.ts +10 -10
- package/lib/store/actionDef.js +4 -4
- package/lib/store/checker.d.ts +26 -26
- package/lib/store/checker.js +487 -487
- package/lib/store/filter.d.ts +85 -85
- package/lib/store/filter.js +1652 -1652
- package/lib/store/modi.d.ts +13 -13
- package/lib/store/modi.js +254 -254
- package/lib/store/relation.d.ts +12 -12
- package/lib/store/relation.js +67 -67
- package/lib/timers/oper.d.ts +18 -18
- package/lib/timers/oper.js +57 -57
- package/lib/timers/vaccum.d.ts +20 -20
- package/lib/timers/vaccum.js +111 -111
- package/lib/triggers/index.d.ts +5 -5
- package/lib/triggers/index.js +8 -8
- package/lib/types/Action.d.ts +20 -20
- package/lib/types/AppLoader.d.ts +17 -17
- package/lib/types/AppLoader.js +10 -10
- package/lib/types/Auth.d.ts +70 -70
- package/lib/types/Cluster.d.ts +5 -5
- package/lib/types/Cluster.js +2 -2
- package/lib/types/Connector.d.ts +38 -38
- package/lib/types/Connector.js +2 -2
- package/lib/types/DataType.d.ts +25 -25
- package/lib/types/DataType.js +6 -6
- package/lib/types/Demand.d.ts +89 -89
- package/lib/types/Demand.js +10 -10
- package/lib/types/Endpoint.d.ts +11 -11
- package/lib/types/Entity.d.ts +209 -209
- package/lib/types/Entity.js +15 -15
- package/lib/types/EntityDesc.d.ts +9 -9
- package/lib/types/EntityDesc.js +2 -2
- package/lib/types/Environment.d.ts +90 -90
- package/lib/types/Environment.js +2 -2
- package/lib/types/Exception.d.ts +147 -147
- package/lib/types/Exception.js +406 -406
- package/lib/types/Expression.d.ts +163 -163
- package/lib/types/Expression.js +397 -397
- package/lib/types/Geo.d.ts +18 -18
- package/lib/types/Locale.d.ts +25 -25
- package/lib/types/Logger.d.ts +6 -6
- package/lib/types/Polyfill.d.ts +24 -24
- package/lib/types/Port.d.ts +18 -18
- package/lib/types/RowStore.d.ts +19 -19
- package/lib/types/RowStore.js +33 -33
- package/lib/types/Storage.d.ts +58 -58
- package/lib/types/Style.d.ts +11 -11
- package/lib/types/Timer.d.ts +20 -20
- package/lib/types/Trigger.d.ts +118 -118
- package/lib/types/Trigger.js +35 -35
- package/lib/types/Watcher.d.ts +19 -19
- package/lib/types/index.d.ts +26 -26
- package/lib/types/index.js +29 -29
- package/lib/types/schema/DataTypes.d.ts +34 -34
- package/lib/utils/SimpleConnector.d.ts +64 -64
- package/lib/utils/SimpleConnector.js +1 -1
- package/lib/utils/assert.d.ts +1 -0
- package/lib/utils/assert.js +9 -9
- package/lib/utils/concurrent.d.ts +15 -15
- package/lib/utils/concurrent.js +63 -63
- package/lib/utils/date.js +18 -18
- package/lib/utils/domain.d.ts +1 -1
- package/lib/utils/domain.js +11 -11
- package/lib/utils/geo.js +24 -24
- package/lib/utils/lodash.d.ts +24 -24
- package/lib/utils/lodash.js +46 -46
- package/lib/utils/mask.js +34 -34
- package/lib/utils/money.d.ts +6 -6
- package/lib/utils/money.js +51 -51
- package/lib/utils/projection.d.ts +4 -4
- package/lib/utils/projection.js +15 -15
- package/lib/utils/random/random.js +19 -19
- package/lib/utils/random/random.mp.js +14 -14
- package/lib/utils/random/random.native.d.ts +1 -1
- package/lib/utils/random/random.native.js +14 -14
- package/lib/utils/random/random.web.js +11 -11
- package/lib/utils/string.d.ts +28 -28
- package/lib/utils/string.js +69 -69
- package/lib/utils/url/index.d.ts +7 -7
- package/lib/utils/url/index.js +8 -8
- package/lib/utils/url/index.mp.d.ts +3 -3
- package/lib/utils/url/index.mp.js +8 -8
- package/lib/utils/url/index.native.d.ts +12 -12
- package/lib/utils/url/index.native.js +7 -7
- package/lib/utils/url/index.web.d.ts +12 -12
- package/lib/utils/url/index.web.js +7 -7
- package/lib/utils/url/whatwg-url/index.d.ts +3 -3
- package/lib/utils/url/whatwg-url/index.js +16 -16
- package/lib/utils/url/whatwg-url/lib/URL-impl.d.ts +20 -20
- package/lib/utils/url/whatwg-url/lib/URL-impl.js +175 -175
- package/lib/utils/url/whatwg-url/lib/URL.d.ts +1 -1
- package/lib/utils/url/whatwg-url/lib/URL.js +298 -298
- package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.d.ts +19 -19
- package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.js +126 -126
- package/lib/utils/url/whatwg-url/lib/URLSearchParams.d.ts +1 -1
- package/lib/utils/url/whatwg-url/lib/URLSearchParams.js +426 -426
- package/lib/utils/url/whatwg-url/lib/infra.d.ts +12 -12
- package/lib/utils/url/whatwg-url/lib/infra.js +25 -25
- package/lib/utils/url/whatwg-url/lib/url-state-machine.d.ts +24 -24
- package/lib/utils/url/whatwg-url/lib/url-state-machine.js +1238 -1238
- package/lib/utils/url/whatwg-url/lib/urlencoded.d.ts +15 -15
- package/lib/utils/url/whatwg-url/lib/urlencoded.js +162 -162
- package/lib/utils/url/whatwg-url/lib/utils.d.ts +37 -37
- package/lib/utils/url/whatwg-url/lib/utils.js +101 -101
- package/lib/utils/uuid.d.ts +17 -17
- package/lib/utils/uuid.js +218 -218
- package/lib/utils/validator.d.ts +26 -26
- package/lib/utils/validator.js +131 -131
- package/lib/utils/version.js +21 -21
- package/package.json +2 -1
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { IncomingHttpHeaders } from "http";
|
|
3
|
-
import { SyncContext } from '../store/SyncRowStore';
|
|
4
|
-
import { Connector, EntityDict, OakException, OpRecord } from "../types";
|
|
5
|
-
type ServerOption = {
|
|
6
|
-
protocol: string;
|
|
7
|
-
hostname: string;
|
|
8
|
-
port?: number;
|
|
9
|
-
apiPath?: string;
|
|
10
|
-
};
|
|
11
|
-
export declare class SimpleConnector<ED extends EntityDict, FrontCxt extends SyncContext<ED>> implements Connector<ED, FrontCxt> {
|
|
12
|
-
static ASPECT_ROUTER: string;
|
|
13
|
-
static BRIDGE_ROUTER: string;
|
|
14
|
-
static SUBSCRIBE_ROUTER: string;
|
|
15
|
-
static SUBSCRIBE_POINT_ROUTER: string;
|
|
16
|
-
static ENDPOINT_ROUTER: string;
|
|
17
|
-
private serverAspectUrl;
|
|
18
|
-
private serverBridgeUrl;
|
|
19
|
-
private serverSubscribePointUrl;
|
|
20
|
-
private option;
|
|
21
|
-
private makeException;
|
|
22
|
-
constructor(option: ServerOption, makeException: (exceptionData: any) => OakException<ED>);
|
|
23
|
-
callAspect(name: string, params: any, context: FrontCxt): Promise<{
|
|
24
|
-
result: any;
|
|
25
|
-
opRecords: any;
|
|
26
|
-
message: string | null;
|
|
27
|
-
} | {
|
|
28
|
-
result: ArrayBuffer;
|
|
29
|
-
message: string | null;
|
|
30
|
-
opRecords?: undefined;
|
|
31
|
-
}>;
|
|
32
|
-
getRouter(): string;
|
|
33
|
-
getSubscribeRouter(): string;
|
|
34
|
-
getSubscribePointRouter(): string;
|
|
35
|
-
getSubscribePoint(): Promise<{
|
|
36
|
-
url: any;
|
|
37
|
-
path: any;
|
|
38
|
-
}>;
|
|
39
|
-
getEndpointRouter(): string;
|
|
40
|
-
parseRequestHeaders(headers: IncomingHttpHeaders): {
|
|
41
|
-
contextString: string | undefined;
|
|
42
|
-
aspectName: string;
|
|
43
|
-
};
|
|
44
|
-
serializeResult(result: any, opRecords: OpRecord<ED>[], headers: IncomingHttpHeaders, body: any, message?: string): Promise<{
|
|
45
|
-
body: any;
|
|
46
|
-
headers?: Record<string, any> | undefined;
|
|
47
|
-
}>;
|
|
48
|
-
serializeException(exception: OakException<ED>, headers: IncomingHttpHeaders, body: any): {
|
|
49
|
-
body: any;
|
|
50
|
-
headers?: Record<string, any> | undefined;
|
|
51
|
-
};
|
|
52
|
-
getBridgeRouter(): string;
|
|
53
|
-
/**
|
|
54
|
-
* 通过本地服务器桥接访问外部资源的url
|
|
55
|
-
* @param url
|
|
56
|
-
* @param headers
|
|
57
|
-
*/
|
|
58
|
-
makeBridgeUrl(url: string, headers?: Record<string, string>): string;
|
|
59
|
-
parseBridgeRequestQuery(urlParams: string): {
|
|
60
|
-
url: string;
|
|
61
|
-
headers?: Record<string, string> | undefined;
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
export {};
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IncomingHttpHeaders } from "http";
|
|
3
|
+
import { SyncContext } from '../store/SyncRowStore';
|
|
4
|
+
import { Connector, EntityDict, OakException, OpRecord } from "../types";
|
|
5
|
+
type ServerOption = {
|
|
6
|
+
protocol: string;
|
|
7
|
+
hostname: string;
|
|
8
|
+
port?: number;
|
|
9
|
+
apiPath?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare class SimpleConnector<ED extends EntityDict, FrontCxt extends SyncContext<ED>> implements Connector<ED, FrontCxt> {
|
|
12
|
+
static ASPECT_ROUTER: string;
|
|
13
|
+
static BRIDGE_ROUTER: string;
|
|
14
|
+
static SUBSCRIBE_ROUTER: string;
|
|
15
|
+
static SUBSCRIBE_POINT_ROUTER: string;
|
|
16
|
+
static ENDPOINT_ROUTER: string;
|
|
17
|
+
private serverAspectUrl;
|
|
18
|
+
private serverBridgeUrl;
|
|
19
|
+
private serverSubscribePointUrl;
|
|
20
|
+
private option;
|
|
21
|
+
private makeException;
|
|
22
|
+
constructor(option: ServerOption, makeException: (exceptionData: any) => OakException<ED>);
|
|
23
|
+
callAspect(name: string, params: any, context: FrontCxt): Promise<{
|
|
24
|
+
result: any;
|
|
25
|
+
opRecords: any;
|
|
26
|
+
message: string | null;
|
|
27
|
+
} | {
|
|
28
|
+
result: ArrayBuffer;
|
|
29
|
+
message: string | null;
|
|
30
|
+
opRecords?: undefined;
|
|
31
|
+
}>;
|
|
32
|
+
getRouter(): string;
|
|
33
|
+
getSubscribeRouter(): string;
|
|
34
|
+
getSubscribePointRouter(): string;
|
|
35
|
+
getSubscribePoint(): Promise<{
|
|
36
|
+
url: any;
|
|
37
|
+
path: any;
|
|
38
|
+
}>;
|
|
39
|
+
getEndpointRouter(): string;
|
|
40
|
+
parseRequestHeaders(headers: IncomingHttpHeaders): {
|
|
41
|
+
contextString: string | undefined;
|
|
42
|
+
aspectName: string;
|
|
43
|
+
};
|
|
44
|
+
serializeResult(result: any, opRecords: OpRecord<ED>[], headers: IncomingHttpHeaders, body: any, message?: string): Promise<{
|
|
45
|
+
body: any;
|
|
46
|
+
headers?: Record<string, any> | undefined;
|
|
47
|
+
}>;
|
|
48
|
+
serializeException(exception: OakException<ED>, headers: IncomingHttpHeaders, body: any): {
|
|
49
|
+
body: any;
|
|
50
|
+
headers?: Record<string, any> | undefined;
|
|
51
|
+
};
|
|
52
|
+
getBridgeRouter(): string;
|
|
53
|
+
/**
|
|
54
|
+
* 通过本地服务器桥接访问外部资源的url
|
|
55
|
+
* @param url
|
|
56
|
+
* @param headers
|
|
57
|
+
*/
|
|
58
|
+
makeBridgeUrl(url: string, headers?: Record<string, string>): string;
|
|
59
|
+
parseBridgeRequestQuery(urlParams: string): {
|
|
60
|
+
url: string;
|
|
61
|
+
headers?: Record<string, string> | undefined;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export {};
|
|
@@ -65,7 +65,7 @@ class SimpleConnector {
|
|
|
65
65
|
}
|
|
66
66
|
catch (err) {
|
|
67
67
|
// fetch返回异常一定是网络异常
|
|
68
|
-
throw new types_1.OakNetworkException();
|
|
68
|
+
throw new types_1.OakNetworkException(`请求[${this.serverAspectUrl}],发生网络异常`);
|
|
69
69
|
}
|
|
70
70
|
if (response.status > 299) {
|
|
71
71
|
const err = new types_1.OakServerProxyException(`网络请求返回status是${response.status}`);
|
package/lib/utils/assert.d.ts
CHANGED
package/lib/utils/assert.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assert = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
/**
|
|
6
|
-
* 防止assert打包体积过大,从这里引用
|
|
7
|
-
*/
|
|
8
|
-
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
9
|
-
exports.assert = assert_1.default;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assert = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
/**
|
|
6
|
+
* 防止assert打包体积过大,从这里引用
|
|
7
|
+
*/
|
|
8
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
9
|
+
exports.assert = assert_1.default;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
type Mode = 'S' | 'X';
|
|
2
|
-
/**
|
|
3
|
-
* 模拟一个读写锁,用于同步。
|
|
4
|
-
* 注意,千万不要发生自己等自己
|
|
5
|
-
*/
|
|
6
|
-
export declare class RWLock {
|
|
7
|
-
private readNumber;
|
|
8
|
-
private writeNumber;
|
|
9
|
-
private readWaiter;
|
|
10
|
-
private writeWaiter;
|
|
11
|
-
constructor();
|
|
12
|
-
acquire(mode: Mode): Promise<void>;
|
|
13
|
-
release(): void;
|
|
14
|
-
}
|
|
15
|
-
export {};
|
|
1
|
+
type Mode = 'S' | 'X';
|
|
2
|
+
/**
|
|
3
|
+
* 模拟一个读写锁,用于同步。
|
|
4
|
+
* 注意,千万不要发生自己等自己
|
|
5
|
+
*/
|
|
6
|
+
export declare class RWLock {
|
|
7
|
+
private readNumber;
|
|
8
|
+
private writeNumber;
|
|
9
|
+
private readWaiter;
|
|
10
|
+
private writeWaiter;
|
|
11
|
+
constructor();
|
|
12
|
+
acquire(mode: Mode): Promise<void>;
|
|
13
|
+
release(): void;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
package/lib/utils/concurrent.js
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RWLock = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
|
-
/**
|
|
7
|
-
* 模拟一个读写锁,用于同步。
|
|
8
|
-
* 注意,千万不要发生自己等自己
|
|
9
|
-
*/
|
|
10
|
-
class RWLock {
|
|
11
|
-
readNumber;
|
|
12
|
-
writeNumber;
|
|
13
|
-
readWaiter;
|
|
14
|
-
writeWaiter;
|
|
15
|
-
constructor() {
|
|
16
|
-
this.readNumber = 0;
|
|
17
|
-
this.writeNumber = 0;
|
|
18
|
-
this.readWaiter = [];
|
|
19
|
-
this.writeWaiter = [];
|
|
20
|
-
}
|
|
21
|
-
async acquire(mode) {
|
|
22
|
-
if (mode === 'S') {
|
|
23
|
-
while (this.writeNumber > 0) {
|
|
24
|
-
const p = new Promise((resolve) => this.readWaiter.push(resolve));
|
|
25
|
-
await p;
|
|
26
|
-
}
|
|
27
|
-
this.readNumber++;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
while (this.writeNumber || this.readNumber) {
|
|
31
|
-
const p = new Promise((resolve) => this.writeWaiter.push(resolve));
|
|
32
|
-
await p;
|
|
33
|
-
}
|
|
34
|
-
this.writeNumber++;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
release() {
|
|
38
|
-
if (this.writeNumber) {
|
|
39
|
-
(0, assert_1.default)(this.writeNumber === 1);
|
|
40
|
-
this.writeNumber = 0;
|
|
41
|
-
if (this.readWaiter.length > 0) {
|
|
42
|
-
for (const f of this.readWaiter) {
|
|
43
|
-
f(undefined);
|
|
44
|
-
}
|
|
45
|
-
this.readWaiter = [];
|
|
46
|
-
}
|
|
47
|
-
else if (this.writeWaiter.length > 0) {
|
|
48
|
-
const f = this.writeWaiter.pop();
|
|
49
|
-
f(undefined);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
(0, assert_1.default)(this.readNumber > 0);
|
|
54
|
-
(0, assert_1.default)(this.readWaiter.length === 0);
|
|
55
|
-
this.readNumber--;
|
|
56
|
-
if (this.readNumber === 0) {
|
|
57
|
-
const f = this.writeWaiter.pop();
|
|
58
|
-
f && f(undefined);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
exports.RWLock = RWLock;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RWLock = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
|
+
/**
|
|
7
|
+
* 模拟一个读写锁,用于同步。
|
|
8
|
+
* 注意,千万不要发生自己等自己
|
|
9
|
+
*/
|
|
10
|
+
class RWLock {
|
|
11
|
+
readNumber;
|
|
12
|
+
writeNumber;
|
|
13
|
+
readWaiter;
|
|
14
|
+
writeWaiter;
|
|
15
|
+
constructor() {
|
|
16
|
+
this.readNumber = 0;
|
|
17
|
+
this.writeNumber = 0;
|
|
18
|
+
this.readWaiter = [];
|
|
19
|
+
this.writeWaiter = [];
|
|
20
|
+
}
|
|
21
|
+
async acquire(mode) {
|
|
22
|
+
if (mode === 'S') {
|
|
23
|
+
while (this.writeNumber > 0) {
|
|
24
|
+
const p = new Promise((resolve) => this.readWaiter.push(resolve));
|
|
25
|
+
await p;
|
|
26
|
+
}
|
|
27
|
+
this.readNumber++;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
while (this.writeNumber || this.readNumber) {
|
|
31
|
+
const p = new Promise((resolve) => this.writeWaiter.push(resolve));
|
|
32
|
+
await p;
|
|
33
|
+
}
|
|
34
|
+
this.writeNumber++;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
release() {
|
|
38
|
+
if (this.writeNumber) {
|
|
39
|
+
(0, assert_1.default)(this.writeNumber === 1);
|
|
40
|
+
this.writeNumber = 0;
|
|
41
|
+
if (this.readWaiter.length > 0) {
|
|
42
|
+
for (const f of this.readWaiter) {
|
|
43
|
+
f(undefined);
|
|
44
|
+
}
|
|
45
|
+
this.readWaiter = [];
|
|
46
|
+
}
|
|
47
|
+
else if (this.writeWaiter.length > 0) {
|
|
48
|
+
const f = this.writeWaiter.pop();
|
|
49
|
+
f(undefined);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
(0, assert_1.default)(this.readNumber > 0);
|
|
54
|
+
(0, assert_1.default)(this.readWaiter.length === 0);
|
|
55
|
+
this.readNumber--;
|
|
56
|
+
if (this.readNumber === 0) {
|
|
57
|
+
const f = this.writeWaiter.pop();
|
|
58
|
+
f && f(undefined);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.RWLock = RWLock;
|
package/lib/utils/date.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.excelStringToDate = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
6
|
-
function excelStringToDate(str) {
|
|
7
|
-
if (!str) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
if (typeof str === 'number') {
|
|
11
|
-
if (str < 100000) {
|
|
12
|
-
return (0, dayjs_1.default)((((str - 25569) * 24 - 8) * 3600) * 1000).valueOf(); // excel日期可能为1900-1-1至今的天数
|
|
13
|
-
}
|
|
14
|
-
return (0, dayjs_1.default)(str).valueOf();
|
|
15
|
-
}
|
|
16
|
-
return Date.parse(str);
|
|
17
|
-
}
|
|
18
|
-
exports.excelStringToDate = excelStringToDate;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.excelStringToDate = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
6
|
+
function excelStringToDate(str) {
|
|
7
|
+
if (!str) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
if (typeof str === 'number') {
|
|
11
|
+
if (str < 100000) {
|
|
12
|
+
return (0, dayjs_1.default)((((str - 25569) * 24 - 8) * 3600) * 1000).valueOf(); // excel日期可能为1900-1-1至今的天数
|
|
13
|
+
}
|
|
14
|
+
return (0, dayjs_1.default)(str).valueOf();
|
|
15
|
+
}
|
|
16
|
+
return Date.parse(str);
|
|
17
|
+
}
|
|
18
|
+
exports.excelStringToDate = excelStringToDate;
|
package/lib/utils/domain.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function composeUrl(url: string, params: Record<string, any>): string;
|
|
1
|
+
export declare function composeUrl(url: string, params: Record<string, any>): string;
|
package/lib/utils/domain.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.composeUrl = void 0;
|
|
4
|
-
function composeUrl(url, params) {
|
|
5
|
-
const urlSp = new URLSearchParams(params);
|
|
6
|
-
if (url.includes('?')) {
|
|
7
|
-
return `${url}&${urlSp}`;
|
|
8
|
-
}
|
|
9
|
-
return `${url}?${urlSp}`;
|
|
10
|
-
}
|
|
11
|
-
exports.composeUrl = composeUrl;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.composeUrl = void 0;
|
|
4
|
+
function composeUrl(url, params) {
|
|
5
|
+
const urlSp = new URLSearchParams(params);
|
|
6
|
+
if (url.includes('?')) {
|
|
7
|
+
return `${url}&${urlSp}`;
|
|
8
|
+
}
|
|
9
|
+
return `${url}?${urlSp}`;
|
|
10
|
+
}
|
|
11
|
+
exports.composeUrl = composeUrl;
|
package/lib/utils/geo.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDistanceBetweenPoints = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* 计算地球上两点之间的球面距离
|
|
6
|
-
*/
|
|
7
|
-
function getDistanceBetweenPoints(lat1, lon1, lat2, lon2) {
|
|
8
|
-
// 转为弧度
|
|
9
|
-
function toRadians(d) {
|
|
10
|
-
return d * Math.PI / 180;
|
|
11
|
-
}
|
|
12
|
-
const R = 6378137; // 地球长半径
|
|
13
|
-
const φ1 = toRadians(lat1);
|
|
14
|
-
const φ2 = toRadians(lat2);
|
|
15
|
-
const Δφ = toRadians(lat2 - lat1);
|
|
16
|
-
const Δλ = toRadians(lon2 - lon1);
|
|
17
|
-
const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
|
|
18
|
-
Math.cos(φ1) * Math.cos(φ2) *
|
|
19
|
-
Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
|
|
20
|
-
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
21
|
-
const d = R * c;
|
|
22
|
-
return d * 1000;
|
|
23
|
-
}
|
|
24
|
-
exports.getDistanceBetweenPoints = getDistanceBetweenPoints;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDistanceBetweenPoints = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* 计算地球上两点之间的球面距离
|
|
6
|
+
*/
|
|
7
|
+
function getDistanceBetweenPoints(lat1, lon1, lat2, lon2) {
|
|
8
|
+
// 转为弧度
|
|
9
|
+
function toRadians(d) {
|
|
10
|
+
return d * Math.PI / 180;
|
|
11
|
+
}
|
|
12
|
+
const R = 6378137; // 地球长半径
|
|
13
|
+
const φ1 = toRadians(lat1);
|
|
14
|
+
const φ2 = toRadians(lat2);
|
|
15
|
+
const Δφ = toRadians(lat2 - lat1);
|
|
16
|
+
const Δλ = toRadians(lon2 - lon1);
|
|
17
|
+
const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
|
|
18
|
+
Math.cos(φ1) * Math.cos(φ2) *
|
|
19
|
+
Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
|
|
20
|
+
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
21
|
+
const d = R * c;
|
|
22
|
+
return d * 1000;
|
|
23
|
+
}
|
|
24
|
+
exports.getDistanceBetweenPoints = getDistanceBetweenPoints;
|
package/lib/utils/lodash.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 避免lodash打包体积过大
|
|
3
|
-
* 像assign, keys尽量使用Object的函数
|
|
4
|
-
*/
|
|
5
|
-
import unset from 'lodash/unset';
|
|
6
|
-
import uniqBy from 'lodash/uniqBy';
|
|
7
|
-
import pull from 'lodash/pull';
|
|
8
|
-
import uniq from 'lodash/uniq';
|
|
9
|
-
import get from 'lodash/get';
|
|
10
|
-
import set from 'lodash/set';
|
|
11
|
-
import intersection from 'lodash/intersection';
|
|
12
|
-
import intersectionBy from 'lodash/intersectionBy';
|
|
13
|
-
import omit from 'lodash/omit';
|
|
14
|
-
import merge from 'lodash/merge';
|
|
15
|
-
import cloneDeep from 'lodash/cloneDeep';
|
|
16
|
-
import pick from 'lodash/pick';
|
|
17
|
-
import isEqual from 'lodash/isEqual';
|
|
18
|
-
import union from 'lodash/union';
|
|
19
|
-
import difference from 'lodash/difference';
|
|
20
|
-
import differenceBy from 'lodash/differenceBy';
|
|
21
|
-
import groupBy from 'lodash/groupBy';
|
|
22
|
-
import unionBy from 'lodash/unionBy';
|
|
23
|
-
import pullAll from 'lodash/pullAll';
|
|
24
|
-
export { unset, pull, uniq, uniqBy, get, set, intersection, intersectionBy, omit, merge, cloneDeep, pick, isEqual, union, difference, differenceBy, groupBy, unionBy, pullAll, };
|
|
1
|
+
/**
|
|
2
|
+
* 避免lodash打包体积过大
|
|
3
|
+
* 像assign, keys尽量使用Object的函数
|
|
4
|
+
*/
|
|
5
|
+
import unset from 'lodash/unset';
|
|
6
|
+
import uniqBy from 'lodash/uniqBy';
|
|
7
|
+
import pull from 'lodash/pull';
|
|
8
|
+
import uniq from 'lodash/uniq';
|
|
9
|
+
import get from 'lodash/get';
|
|
10
|
+
import set from 'lodash/set';
|
|
11
|
+
import intersection from 'lodash/intersection';
|
|
12
|
+
import intersectionBy from 'lodash/intersectionBy';
|
|
13
|
+
import omit from 'lodash/omit';
|
|
14
|
+
import merge from 'lodash/merge';
|
|
15
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
16
|
+
import pick from 'lodash/pick';
|
|
17
|
+
import isEqual from 'lodash/isEqual';
|
|
18
|
+
import union from 'lodash/union';
|
|
19
|
+
import difference from 'lodash/difference';
|
|
20
|
+
import differenceBy from 'lodash/differenceBy';
|
|
21
|
+
import groupBy from 'lodash/groupBy';
|
|
22
|
+
import unionBy from 'lodash/unionBy';
|
|
23
|
+
import pullAll from 'lodash/pullAll';
|
|
24
|
+
export { unset, pull, uniq, uniqBy, get, set, intersection, intersectionBy, omit, merge, cloneDeep, pick, isEqual, union, difference, differenceBy, groupBy, unionBy, pullAll, };
|
package/lib/utils/lodash.js
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pullAll = exports.unionBy = exports.groupBy = exports.differenceBy = exports.difference = exports.union = exports.isEqual = exports.pick = exports.cloneDeep = exports.merge = exports.omit = exports.intersectionBy = exports.intersection = exports.set = exports.get = exports.uniqBy = exports.uniq = exports.pull = exports.unset = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
/**
|
|
6
|
-
* 避免lodash打包体积过大
|
|
7
|
-
* 像assign, keys尽量使用Object的函数
|
|
8
|
-
*/
|
|
9
|
-
const unset_1 = tslib_1.__importDefault(require("lodash/unset"));
|
|
10
|
-
exports.unset = unset_1.default;
|
|
11
|
-
const uniqBy_1 = tslib_1.__importDefault(require("lodash/uniqBy"));
|
|
12
|
-
exports.uniqBy = uniqBy_1.default;
|
|
13
|
-
const pull_1 = tslib_1.__importDefault(require("lodash/pull"));
|
|
14
|
-
exports.pull = pull_1.default;
|
|
15
|
-
const uniq_1 = tslib_1.__importDefault(require("lodash/uniq"));
|
|
16
|
-
exports.uniq = uniq_1.default;
|
|
17
|
-
const get_1 = tslib_1.__importDefault(require("lodash/get"));
|
|
18
|
-
exports.get = get_1.default;
|
|
19
|
-
const set_1 = tslib_1.__importDefault(require("lodash/set"));
|
|
20
|
-
exports.set = set_1.default;
|
|
21
|
-
const intersection_1 = tslib_1.__importDefault(require("lodash/intersection"));
|
|
22
|
-
exports.intersection = intersection_1.default;
|
|
23
|
-
const intersectionBy_1 = tslib_1.__importDefault(require("lodash/intersectionBy"));
|
|
24
|
-
exports.intersectionBy = intersectionBy_1.default;
|
|
25
|
-
const omit_1 = tslib_1.__importDefault(require("lodash/omit"));
|
|
26
|
-
exports.omit = omit_1.default;
|
|
27
|
-
const merge_1 = tslib_1.__importDefault(require("lodash/merge"));
|
|
28
|
-
exports.merge = merge_1.default;
|
|
29
|
-
const cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep"));
|
|
30
|
-
exports.cloneDeep = cloneDeep_1.default;
|
|
31
|
-
const pick_1 = tslib_1.__importDefault(require("lodash/pick"));
|
|
32
|
-
exports.pick = pick_1.default;
|
|
33
|
-
const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
|
|
34
|
-
exports.isEqual = isEqual_1.default;
|
|
35
|
-
const union_1 = tslib_1.__importDefault(require("lodash/union"));
|
|
36
|
-
exports.union = union_1.default;
|
|
37
|
-
const difference_1 = tslib_1.__importDefault(require("lodash/difference"));
|
|
38
|
-
exports.difference = difference_1.default;
|
|
39
|
-
const differenceBy_1 = tslib_1.__importDefault(require("lodash/differenceBy"));
|
|
40
|
-
exports.differenceBy = differenceBy_1.default;
|
|
41
|
-
const groupBy_1 = tslib_1.__importDefault(require("lodash/groupBy"));
|
|
42
|
-
exports.groupBy = groupBy_1.default;
|
|
43
|
-
const unionBy_1 = tslib_1.__importDefault(require("lodash/unionBy"));
|
|
44
|
-
exports.unionBy = unionBy_1.default;
|
|
45
|
-
const pullAll_1 = tslib_1.__importDefault(require("lodash/pullAll"));
|
|
46
|
-
exports.pullAll = pullAll_1.default;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pullAll = exports.unionBy = exports.groupBy = exports.differenceBy = exports.difference = exports.union = exports.isEqual = exports.pick = exports.cloneDeep = exports.merge = exports.omit = exports.intersectionBy = exports.intersection = exports.set = exports.get = exports.uniqBy = exports.uniq = exports.pull = exports.unset = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
/**
|
|
6
|
+
* 避免lodash打包体积过大
|
|
7
|
+
* 像assign, keys尽量使用Object的函数
|
|
8
|
+
*/
|
|
9
|
+
const unset_1 = tslib_1.__importDefault(require("lodash/unset"));
|
|
10
|
+
exports.unset = unset_1.default;
|
|
11
|
+
const uniqBy_1 = tslib_1.__importDefault(require("lodash/uniqBy"));
|
|
12
|
+
exports.uniqBy = uniqBy_1.default;
|
|
13
|
+
const pull_1 = tslib_1.__importDefault(require("lodash/pull"));
|
|
14
|
+
exports.pull = pull_1.default;
|
|
15
|
+
const uniq_1 = tslib_1.__importDefault(require("lodash/uniq"));
|
|
16
|
+
exports.uniq = uniq_1.default;
|
|
17
|
+
const get_1 = tslib_1.__importDefault(require("lodash/get"));
|
|
18
|
+
exports.get = get_1.default;
|
|
19
|
+
const set_1 = tslib_1.__importDefault(require("lodash/set"));
|
|
20
|
+
exports.set = set_1.default;
|
|
21
|
+
const intersection_1 = tslib_1.__importDefault(require("lodash/intersection"));
|
|
22
|
+
exports.intersection = intersection_1.default;
|
|
23
|
+
const intersectionBy_1 = tslib_1.__importDefault(require("lodash/intersectionBy"));
|
|
24
|
+
exports.intersectionBy = intersectionBy_1.default;
|
|
25
|
+
const omit_1 = tslib_1.__importDefault(require("lodash/omit"));
|
|
26
|
+
exports.omit = omit_1.default;
|
|
27
|
+
const merge_1 = tslib_1.__importDefault(require("lodash/merge"));
|
|
28
|
+
exports.merge = merge_1.default;
|
|
29
|
+
const cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep"));
|
|
30
|
+
exports.cloneDeep = cloneDeep_1.default;
|
|
31
|
+
const pick_1 = tslib_1.__importDefault(require("lodash/pick"));
|
|
32
|
+
exports.pick = pick_1.default;
|
|
33
|
+
const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
|
|
34
|
+
exports.isEqual = isEqual_1.default;
|
|
35
|
+
const union_1 = tslib_1.__importDefault(require("lodash/union"));
|
|
36
|
+
exports.union = union_1.default;
|
|
37
|
+
const difference_1 = tslib_1.__importDefault(require("lodash/difference"));
|
|
38
|
+
exports.difference = difference_1.default;
|
|
39
|
+
const differenceBy_1 = tslib_1.__importDefault(require("lodash/differenceBy"));
|
|
40
|
+
exports.differenceBy = differenceBy_1.default;
|
|
41
|
+
const groupBy_1 = tslib_1.__importDefault(require("lodash/groupBy"));
|
|
42
|
+
exports.groupBy = groupBy_1.default;
|
|
43
|
+
const unionBy_1 = tslib_1.__importDefault(require("lodash/unionBy"));
|
|
44
|
+
exports.unionBy = unionBy_1.default;
|
|
45
|
+
const pullAll_1 = tslib_1.__importDefault(require("lodash/pullAll"));
|
|
46
|
+
exports.pullAll = pullAll_1.default;
|
package/lib/utils/mask.js
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.maskStar = exports.maskName = exports.maskMobile = exports.maskIdCard = void 0;
|
|
4
|
-
const maskIdCard = (idCardNumber) => {
|
|
5
|
-
if (!idCardNumber instanceof String) {
|
|
6
|
-
throw new Error("身份证号码必须是String类型");
|
|
7
|
-
}
|
|
8
|
-
let begin = idCardNumber.slice(0, 4);
|
|
9
|
-
let end = idCardNumber.slice(idCardNumber.length - 4, 4);
|
|
10
|
-
for (let i = 0; i < idCardNumber.length - 8; i++) {
|
|
11
|
-
begin = begin.concat("*");
|
|
12
|
-
}
|
|
13
|
-
return begin.concat(end);
|
|
14
|
-
};
|
|
15
|
-
exports.maskIdCard = maskIdCard;
|
|
16
|
-
const maskMobile = (mobile) => {
|
|
17
|
-
let begin = mobile.slice(0, 3);
|
|
18
|
-
let end = mobile.slice(7, 11);
|
|
19
|
-
return begin.concat("****").concat(end);
|
|
20
|
-
};
|
|
21
|
-
exports.maskMobile = maskMobile;
|
|
22
|
-
const maskName = (name) => {
|
|
23
|
-
return name.slice(0, name.length - 1).concat("*");
|
|
24
|
-
};
|
|
25
|
-
exports.maskName = maskName;
|
|
26
|
-
const maskStar = (str, frontLen, endLen, star = '*') => {
|
|
27
|
-
const len = str.length - frontLen - endLen;
|
|
28
|
-
let xing = '';
|
|
29
|
-
for (let i = 0; i < len; i++) {
|
|
30
|
-
xing += star;
|
|
31
|
-
}
|
|
32
|
-
return str.substring(0, frontLen) + xing + str.substring(str.length - endLen);
|
|
33
|
-
};
|
|
34
|
-
exports.maskStar = maskStar;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.maskStar = exports.maskName = exports.maskMobile = exports.maskIdCard = void 0;
|
|
4
|
+
const maskIdCard = (idCardNumber) => {
|
|
5
|
+
if (!idCardNumber instanceof String) {
|
|
6
|
+
throw new Error("身份证号码必须是String类型");
|
|
7
|
+
}
|
|
8
|
+
let begin = idCardNumber.slice(0, 4);
|
|
9
|
+
let end = idCardNumber.slice(idCardNumber.length - 4, 4);
|
|
10
|
+
for (let i = 0; i < idCardNumber.length - 8; i++) {
|
|
11
|
+
begin = begin.concat("*");
|
|
12
|
+
}
|
|
13
|
+
return begin.concat(end);
|
|
14
|
+
};
|
|
15
|
+
exports.maskIdCard = maskIdCard;
|
|
16
|
+
const maskMobile = (mobile) => {
|
|
17
|
+
let begin = mobile.slice(0, 3);
|
|
18
|
+
let end = mobile.slice(7, 11);
|
|
19
|
+
return begin.concat("****").concat(end);
|
|
20
|
+
};
|
|
21
|
+
exports.maskMobile = maskMobile;
|
|
22
|
+
const maskName = (name) => {
|
|
23
|
+
return name.slice(0, name.length - 1).concat("*");
|
|
24
|
+
};
|
|
25
|
+
exports.maskName = maskName;
|
|
26
|
+
const maskStar = (str, frontLen, endLen, star = '*') => {
|
|
27
|
+
const len = str.length - frontLen - endLen;
|
|
28
|
+
let xing = '';
|
|
29
|
+
for (let i = 0; i < len; i++) {
|
|
30
|
+
xing += star;
|
|
31
|
+
}
|
|
32
|
+
return str.substring(0, frontLen) + xing + str.substring(str.length - endLen);
|
|
33
|
+
};
|
|
34
|
+
exports.maskStar = maskStar;
|