@primuslabs/por-client-sdk 0.1.5 → 0.1.7
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/README.md +7 -5
- package/dist/client/zktls_client.js +1 -1
- package/dist/config_schema.d.ts +30 -30
- package/dist/config_schema.js +12 -12
- package/dist/config_schema.js.map +1 -1
- package/dist/datasource/aster.d.ts +2 -2
- package/dist/datasource/aster.js.map +1 -1
- package/dist/datasource/binance.d.ts +2 -2
- package/dist/datasource/binance.js.map +1 -1
- package/dist/datasource/datasource_manager.d.ts +15 -0
- package/dist/datasource/datasource_manager.js +20 -0
- package/dist/datasource/datasource_manager.js.map +1 -0
- package/dist/datasource/index.d.ts +1 -3
- package/dist/datasource/index.js +1 -3
- package/dist/datasource/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/scheduler.d.ts +2 -0
- package/dist/scheduler.js +47 -19
- package/dist/scheduler.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ app: # Core application configuration
|
|
|
41
41
|
services: # External service endpoints
|
|
42
42
|
blockchain: # Blockchain connection and signer info
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
datasource: # Datasource account configurations
|
|
45
45
|
binance: # Binance exchange accounts
|
|
46
46
|
aster: # Aster exchange accounts
|
|
47
47
|
```
|
|
@@ -103,11 +103,11 @@ Blockchain connection and signer configuration.
|
|
|
103
103
|
|
|
104
104
|
---
|
|
105
105
|
|
|
106
|
-
###
|
|
106
|
+
### Datasource Accounts
|
|
107
107
|
|
|
108
|
-
Supports multiple
|
|
108
|
+
Supports multiple datasource accounts. At least one datasource is required. Now only support Binance and Aster.
|
|
109
109
|
|
|
110
|
-
#### Fields of `
|
|
110
|
+
#### Fields of each `datasource`
|
|
111
111
|
|
|
112
112
|
| Field | Type | Description | Example |
|
|
113
113
|
| ----------- | ------- | ---------------------------------------------- | --------------------------- |
|
|
@@ -120,4 +120,6 @@ Supports multiple exchange accounts. At least one exchange is required. Now only
|
|
|
120
120
|
|
|
121
121
|
## Data Sources
|
|
122
122
|
|
|
123
|
-
|
|
123
|
+
Supported datasources:
|
|
124
|
+
* Binance
|
|
125
|
+
* Aster
|
|
@@ -107,7 +107,7 @@ export class ZkTLSClient {
|
|
|
107
107
|
noProxy: opts.noProxy,
|
|
108
108
|
getAllJsonResponse: "true"
|
|
109
109
|
};
|
|
110
|
-
const result = await this.primusNetwork.attest(params,
|
|
110
|
+
const result = await this.primusNetwork.attest(params, 6 * 60 * 1000);
|
|
111
111
|
console.log(`✅ attest done (${Date.now() - start}ms):`, result);
|
|
112
112
|
return result;
|
|
113
113
|
}
|
package/dist/config_schema.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export type
|
|
2
|
+
export type DATASOURCE = "binance" | "aster";
|
|
3
3
|
declare const BinanceKindSchema: z.ZodEnum<{
|
|
4
4
|
spot: "spot";
|
|
5
5
|
"usds-futures": "usds-futures";
|
|
@@ -41,24 +41,24 @@ declare const AppConfigSchema: z.ZodObject<{
|
|
|
41
41
|
userToken: z.ZodString;
|
|
42
42
|
projectId: z.ZodString;
|
|
43
43
|
}, z.core.$strict>;
|
|
44
|
-
runtime: z.ZodObject<{
|
|
45
|
-
version: z.ZodString
|
|
44
|
+
runtime: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
45
|
+
version: z.ZodDefault<z.ZodString>;
|
|
46
46
|
env: z.ZodDefault<z.ZodEnum<{
|
|
47
47
|
development: "development";
|
|
48
48
|
production: "production";
|
|
49
49
|
}>>;
|
|
50
50
|
logVerbose: z.ZodDefault<z.ZodNumber>;
|
|
51
51
|
jobInterval: z.ZodDefault<z.ZodNumber>;
|
|
52
|
-
}, z.core.$strict
|
|
53
|
-
services: z.ZodObject<{
|
|
54
|
-
zkvm: z.ZodObject<{
|
|
55
|
-
url: z.ZodURL
|
|
56
|
-
}, z.core.$strict
|
|
57
|
-
data: z.ZodObject<{
|
|
58
|
-
url: z.ZodURL
|
|
59
|
-
}, z.core.$strict
|
|
60
|
-
}, z.core.$strict
|
|
61
|
-
blockchain: z.ZodObject<{
|
|
52
|
+
}, z.core.$strict>>;
|
|
53
|
+
services: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
54
|
+
zkvm: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
55
|
+
url: z.ZodDefault<z.ZodURL>;
|
|
56
|
+
}, z.core.$strict>>;
|
|
57
|
+
data: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
58
|
+
url: z.ZodDefault<z.ZodURL>;
|
|
59
|
+
}, z.core.$strict>>;
|
|
60
|
+
}, z.core.$strict>>;
|
|
61
|
+
blockchain: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
62
62
|
network: z.ZodDefault<z.ZodEnum<{
|
|
63
63
|
base: "base";
|
|
64
64
|
"base-sepolia": "base-sepolia";
|
|
@@ -67,9 +67,9 @@ declare const AppConfigSchema: z.ZodObject<{
|
|
|
67
67
|
signer: z.ZodOptional<z.ZodObject<{
|
|
68
68
|
privateKey: z.ZodString;
|
|
69
69
|
}, z.core.$strict>>;
|
|
70
|
-
}, z.core.$strict
|
|
70
|
+
}, z.core.$strict>>;
|
|
71
71
|
}, z.core.$strict>;
|
|
72
|
-
declare const
|
|
72
|
+
declare const DatasourceConfigSchema: z.ZodObject<{
|
|
73
73
|
binance: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
74
74
|
apiKey: z.ZodString;
|
|
75
75
|
apiSecret: z.ZodString;
|
|
@@ -99,24 +99,24 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
99
99
|
userToken: z.ZodString;
|
|
100
100
|
projectId: z.ZodString;
|
|
101
101
|
}, z.core.$strict>;
|
|
102
|
-
runtime: z.ZodObject<{
|
|
103
|
-
version: z.ZodString
|
|
102
|
+
runtime: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
103
|
+
version: z.ZodDefault<z.ZodString>;
|
|
104
104
|
env: z.ZodDefault<z.ZodEnum<{
|
|
105
105
|
development: "development";
|
|
106
106
|
production: "production";
|
|
107
107
|
}>>;
|
|
108
108
|
logVerbose: z.ZodDefault<z.ZodNumber>;
|
|
109
109
|
jobInterval: z.ZodDefault<z.ZodNumber>;
|
|
110
|
-
}, z.core.$strict
|
|
111
|
-
services: z.ZodObject<{
|
|
112
|
-
zkvm: z.ZodObject<{
|
|
113
|
-
url: z.ZodURL
|
|
114
|
-
}, z.core.$strict
|
|
115
|
-
data: z.ZodObject<{
|
|
116
|
-
url: z.ZodURL
|
|
117
|
-
}, z.core.$strict
|
|
118
|
-
}, z.core.$strict
|
|
119
|
-
blockchain: z.ZodObject<{
|
|
110
|
+
}, z.core.$strict>>;
|
|
111
|
+
services: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
112
|
+
zkvm: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
113
|
+
url: z.ZodDefault<z.ZodURL>;
|
|
114
|
+
}, z.core.$strict>>;
|
|
115
|
+
data: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
116
|
+
url: z.ZodDefault<z.ZodURL>;
|
|
117
|
+
}, z.core.$strict>>;
|
|
118
|
+
}, z.core.$strict>>;
|
|
119
|
+
blockchain: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
120
120
|
network: z.ZodDefault<z.ZodEnum<{
|
|
121
121
|
base: "base";
|
|
122
122
|
"base-sepolia": "base-sepolia";
|
|
@@ -125,9 +125,9 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
125
125
|
signer: z.ZodOptional<z.ZodObject<{
|
|
126
126
|
privateKey: z.ZodString;
|
|
127
127
|
}, z.core.$strict>>;
|
|
128
|
-
}, z.core.$strict
|
|
128
|
+
}, z.core.$strict>>;
|
|
129
129
|
}, z.core.$strict>;
|
|
130
|
-
|
|
130
|
+
datasource: z.ZodObject<{
|
|
131
131
|
binance: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
132
132
|
apiKey: z.ZodString;
|
|
133
133
|
apiSecret: z.ZodString;
|
|
@@ -153,7 +153,7 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
153
153
|
}, z.core.$strict>;
|
|
154
154
|
}, z.core.$strict>;
|
|
155
155
|
export type AppConfig = z.infer<typeof AppConfigSchema>;
|
|
156
|
-
export type
|
|
156
|
+
export type DatasourceConfig = z.infer<typeof DatasourceConfigSchema>;
|
|
157
157
|
export type Config = z.infer<typeof ConfigSchema>;
|
|
158
158
|
export declare function loadConfigFromFile(filePath?: string): Config;
|
|
159
159
|
export {};
|
package/dist/config_schema.js
CHANGED
|
@@ -20,20 +20,20 @@ const AppIdentitySchema = z.object({
|
|
|
20
20
|
projectId: z.string().min(1),
|
|
21
21
|
}).strict();
|
|
22
22
|
const AppRuntimeSchema = z.object({
|
|
23
|
-
version: z.string().regex(/^\d+\.\d+\.\d+$/),
|
|
23
|
+
version: z.string().regex(/^\d+\.\d+\.\d+$/).default("0.1.0"),
|
|
24
24
|
env: z.enum(["development", "production"]).default("production"),
|
|
25
25
|
logVerbose: z.number().int().min(0).max(5).default(0),
|
|
26
26
|
jobInterval: z.number().int().min(10).default(1800),
|
|
27
27
|
}).strict();
|
|
28
28
|
const ZkvmServiceSchema = z.object({
|
|
29
|
-
url: z.url(),
|
|
29
|
+
url: z.url().default("https://api-por.primuslabs.xyz:38080"),
|
|
30
30
|
}).strict();
|
|
31
31
|
const DataServiceSchema = z.object({
|
|
32
|
-
url: z.url(),
|
|
32
|
+
url: z.url().default("https://api-por-data.primuslabs.xyz/por-admin"),
|
|
33
33
|
}).strict();
|
|
34
34
|
const AppServicesSchema = z.object({
|
|
35
|
-
zkvm: ZkvmServiceSchema,
|
|
36
|
-
data: DataServiceSchema,
|
|
35
|
+
zkvm: z.preprocess((v) => v ?? {}, ZkvmServiceSchema),
|
|
36
|
+
data: z.preprocess((v) => v ?? {}, DataServiceSchema),
|
|
37
37
|
}).strict();
|
|
38
38
|
const BlockchainSignerSchema = z.object({
|
|
39
39
|
privateKey: z.string(),
|
|
@@ -45,20 +45,20 @@ const BlockchainSchema = z.object({
|
|
|
45
45
|
}).strict();
|
|
46
46
|
const AppConfigSchema = z.object({
|
|
47
47
|
identity: AppIdentitySchema,
|
|
48
|
-
runtime: AppRuntimeSchema,
|
|
49
|
-
services: AppServicesSchema,
|
|
50
|
-
blockchain: BlockchainSchema,
|
|
48
|
+
runtime: z.preprocess((v) => v ?? {}, AppRuntimeSchema),
|
|
49
|
+
services: z.preprocess((v) => v ?? {}, AppServicesSchema),
|
|
50
|
+
blockchain: z.preprocess((v) => v ?? {}, BlockchainSchema),
|
|
51
51
|
}).strict();
|
|
52
|
-
const
|
|
52
|
+
const DatasourceConfigSchema = z.object({
|
|
53
53
|
binance: z.array(BinanceAccountSchema).optional(),
|
|
54
54
|
aster: z.array(AsterAccountSchema).optional(),
|
|
55
55
|
}).strict().refine((data) => (data.binance?.length ?? 0) > 0 || (data.aster?.length ?? 0) > 0, {
|
|
56
|
-
message: "At least one
|
|
57
|
-
path: ["
|
|
56
|
+
message: "At least one datasource account of [binance,aster] must be configured",
|
|
57
|
+
path: ["datasource"],
|
|
58
58
|
});
|
|
59
59
|
const ConfigSchema = z.object({
|
|
60
60
|
app: AppConfigSchema,
|
|
61
|
-
|
|
61
|
+
datasource: DatasourceConfigSchema,
|
|
62
62
|
}).strict();
|
|
63
63
|
function mask(value) {
|
|
64
64
|
if (!value)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_schema.js","sourceRoot":"","sources":["../src/config_schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,IAAI,MAAM,SAAS,CAAC;AAI3B,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;AACtF,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;AAIzD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/C,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,CAAyB,IAAO,EAAE,EAAE,CACxD,iBAAiB,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAC/G,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAGrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;AAGjE,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"config_schema.js","sourceRoot":"","sources":["../src/config_schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,IAAI,MAAM,SAAS,CAAC;AAI3B,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;AACtF,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;AAIzD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/C,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,CAAyB,IAAO,EAAE,EAAE,CACxD,iBAAiB,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAC/G,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAGrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;AAGjE,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7D,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAChE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CACpD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC;CAC7D,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC;CACtE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC;CACtD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACzD,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1B,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC;IACzD,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC;CAC3D,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACjD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAChB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAC1E;IACE,OAAO,EAAE,uEAAuE;IAChF,IAAI,EAAE,CAAC,YAAY,CAAC;CACrB,CACF,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,GAAG,EAAE,eAAe;IACpB,UAAU,EAAE,sBAAsB;CACnC,CAAC,CAAC,MAAM,EAAE,CAAC;AAOZ,SAAS,IAAI,CAAC,KAAyB;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACzB,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC1E,SAAS,UAAU,CAAC,GAAQ;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,MAAM,UAAU,kBAAkB,CAAC,WAAmB,aAAa;IACjE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gCAAiC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { VERIFY_TYPE, RequestParamsOutput } from "../types.js";
|
|
2
|
-
import { AsterKind, AsterAccount,
|
|
2
|
+
import { AsterKind, AsterAccount, DatasourceConfig } from "../config_schema.js";
|
|
3
3
|
import { BaseExchange } from "./base_exchange.js";
|
|
4
4
|
export declare class Aster extends BaseExchange<AsterAccount, AsterKind> {
|
|
5
|
-
constructor(accounts?:
|
|
5
|
+
constructor(accounts?: DatasourceConfig["aster"]);
|
|
6
6
|
get hasSpot(): boolean;
|
|
7
7
|
get hasUsdSFutures(): boolean;
|
|
8
8
|
get spotAccounts(): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aster.js","sourceRoot":"","sources":["../../src/datasource/aster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,wBAAwB;AACxB,SAAS,sBAAsB,CAAC,GAAW,EAAE,QAAwB,EAAE,MAAM,GAAG,EAAE;IAChF,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,yCAAyC;IAChE,IAAI,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,EAAE,CAAC;IAE9D,IAAI,YAAY,GAAG,EAAE,CAAA;IACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG;YAClB,GAAG,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE;YACtB,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE;SACxC,CAAC;QAEF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAGD,MAAM,OAAO,KAAM,SAAQ,YAAqC;IAC9D,YAAY,
|
|
1
|
+
{"version":3,"file":"aster.js","sourceRoot":"","sources":["../../src/datasource/aster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,wBAAwB;AACxB,SAAS,sBAAsB,CAAC,GAAW,EAAE,QAAwB,EAAE,MAAM,GAAG,EAAE;IAChF,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,yCAAyC;IAChE,IAAI,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,EAAE,CAAC;IAE9D,IAAI,YAAY,GAAG,EAAE,CAAA;IACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG;YAClB,GAAG,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE;YACtB,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE;SACxC,CAAC;QAEF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAGD,MAAM,OAAO,KAAM,SAAQ,YAAqC;IAC9D,YAAY,QAAoC;QAC9C,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,cAAc,KAAK,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,mBAAmB,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEtE,GAAG;IACH,2EAA2E;IAC3E,GAAG;IAEH,iCAAiC;IACjC,2BAA2B;IAE3B,iHAAiH;IACjH,iDAAiD;IAC1C,sBAAsB,CAAC,aAA0B,iBAAiB;QACvE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAEpC,MAAM,GAAG,GAAG,0CAA0C,CAAC;QACvD,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,OAAO,wBAAwB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,2HAA2H;IAC3H,kDAAkD;IAC3C,4BAA4B,CAAC,aAA0B,iBAAiB;QAC7E,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QAE3C,MAAM,GAAG,GAAG,2CAA2C,CAAC;QACxD,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC3E,OAAO,wBAAwB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { VERIFY_TYPE, RequestParamsOutput } from "../types.js";
|
|
2
|
-
import { BinanceKind, BinanceAccount,
|
|
2
|
+
import { BinanceKind, BinanceAccount, DatasourceConfig } from "../config_schema.js";
|
|
3
3
|
import { BaseExchange } from "./base_exchange.js";
|
|
4
4
|
export declare class Binance extends BaseExchange<BinanceAccount, BinanceKind> {
|
|
5
|
-
constructor(accounts?:
|
|
5
|
+
constructor(accounts?: DatasourceConfig["binance"]);
|
|
6
6
|
get hasSpot(): boolean;
|
|
7
7
|
get hasUsdSFutures(): boolean;
|
|
8
8
|
get hasCoinFutures(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binance.js","sourceRoot":"","sources":["../../src/datasource/binance.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,MAAM,OAAO,OAAQ,SAAQ,YAAyC;IACpE,YAAY,
|
|
1
|
+
{"version":3,"file":"binance.js","sourceRoot":"","sources":["../../src/datasource/binance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DatasourceConfig } from "../config_schema.js";
|
|
2
|
+
import { Binance } from "./binance.js";
|
|
3
|
+
import { Aster } from "./aster.js";
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* const manager = new DatasourceManager(datasource_config);
|
|
8
|
+
* manager.aster?.hasSpot; // boolean
|
|
9
|
+
* manager.binance?.usdSFuturesAccounts; // BinanceAccount[]
|
|
10
|
+
*/
|
|
11
|
+
export declare class DatasourceManager {
|
|
12
|
+
readonly binance?: Binance;
|
|
13
|
+
readonly aster?: Aster;
|
|
14
|
+
constructor(config: DatasourceConfig);
|
|
15
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Binance } from "./binance.js";
|
|
2
|
+
import { Aster } from "./aster.js";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* const manager = new DatasourceManager(datasource_config);
|
|
7
|
+
* manager.aster?.hasSpot; // boolean
|
|
8
|
+
* manager.binance?.usdSFuturesAccounts; // BinanceAccount[]
|
|
9
|
+
*/
|
|
10
|
+
export class DatasourceManager {
|
|
11
|
+
binance;
|
|
12
|
+
aster;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
if (config.binance)
|
|
15
|
+
this.binance = new Binance(config.binance);
|
|
16
|
+
if (config.aster)
|
|
17
|
+
this.aster = new Aster(config.aster);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=datasource_manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource_manager.js","sourceRoot":"","sources":["../../src/datasource/datasource_manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACZ,OAAO,CAAW;IAClB,KAAK,CAAS;IAE9B,YAAY,MAAwB;QAClC,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;CACF"}
|
package/dist/datasource/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datasource/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datasource/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from "./types";
|
|
2
2
|
export * from "./utils";
|
|
3
3
|
export * from "./client";
|
|
4
|
-
export
|
|
4
|
+
export { DatasourceManager } from "./datasource";
|
|
5
5
|
export { loadConfigFromFile } from "./config_schema";
|
|
6
6
|
export { Scheduler } from "./scheduler";
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./types";
|
|
2
2
|
export * from "./utils";
|
|
3
3
|
export * from "./client";
|
|
4
|
-
export
|
|
4
|
+
export { DatasourceManager } from "./datasource";
|
|
5
5
|
export { loadConfigFromFile } from "./config_schema";
|
|
6
6
|
export { Scheduler } from "./scheduler";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/scheduler.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ interface SchedulerOptions {
|
|
|
3
3
|
intervalMs: number;
|
|
4
4
|
shouldStop?: (err: any) => boolean;
|
|
5
5
|
stopMode?: "immediate" | "delayed";
|
|
6
|
+
stateFile?: string;
|
|
6
7
|
}
|
|
7
8
|
export declare class Scheduler {
|
|
8
9
|
private job;
|
|
@@ -10,6 +11,7 @@ export declare class Scheduler {
|
|
|
10
11
|
private stopped;
|
|
11
12
|
private lastSigintTime;
|
|
12
13
|
private sigintCount;
|
|
14
|
+
private stateFile?;
|
|
13
15
|
constructor(job: JobFn, opts: SchedulerOptions);
|
|
14
16
|
stop(signal?: string): void;
|
|
15
17
|
start(): Promise<void>;
|
package/dist/scheduler.js
CHANGED
|
@@ -1,51 +1,79 @@
|
|
|
1
1
|
import { sleepMs } from "./utils.js";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
function readState(file) {
|
|
5
|
+
try {
|
|
6
|
+
if (!fs.existsSync(file))
|
|
7
|
+
return null;
|
|
8
|
+
const raw = fs.readFileSync(file, "utf8");
|
|
9
|
+
return JSON.parse(raw);
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function writeState(file, state) {
|
|
16
|
+
try {
|
|
17
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
18
|
+
fs.writeFileSync(file, JSON.stringify(state), "utf8");
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
console.warn("⚠️ Failed to write scheduler state:", err);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
2
24
|
export class Scheduler {
|
|
3
25
|
job;
|
|
4
26
|
opts;
|
|
5
27
|
stopped = false;
|
|
6
28
|
lastSigintTime = 0;
|
|
7
29
|
sigintCount = 0;
|
|
30
|
+
stateFile;
|
|
8
31
|
constructor(job, opts) {
|
|
9
32
|
this.job = job;
|
|
10
33
|
this.opts = opts;
|
|
11
34
|
if (!this.opts.stopMode)
|
|
12
35
|
this.opts.stopMode = "delayed";
|
|
36
|
+
this.stateFile = opts.stateFile;
|
|
13
37
|
process.on("SIGTERM", () => this.stop("SIGTERM"));
|
|
14
38
|
process.on("SIGINT", () => this.stop("SIGINT"));
|
|
15
39
|
}
|
|
16
40
|
stop(signal) {
|
|
17
|
-
if (signal) {
|
|
18
|
-
|
|
19
|
-
console.log(`🛑 Received ${signal}.`);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
console.log("🛑 Stop requested.");
|
|
41
|
+
if (signal && signal !== "SIGINT") {
|
|
42
|
+
console.log(`🛑 Received ${signal}.`);
|
|
24
43
|
}
|
|
25
44
|
const now = Date.now();
|
|
26
45
|
if (signal === "SIGINT") {
|
|
27
|
-
if (now - this.lastSigintTime <= 2000)
|
|
46
|
+
if (now - this.lastSigintTime <= 2000)
|
|
28
47
|
this.sigintCount++;
|
|
29
|
-
|
|
30
|
-
else {
|
|
48
|
+
else
|
|
31
49
|
this.sigintCount = 1;
|
|
32
|
-
}
|
|
33
50
|
this.lastSigintTime = now;
|
|
34
|
-
if (this.sigintCount >= 2)
|
|
51
|
+
if (this.sigintCount >= 2)
|
|
35
52
|
process.exit(1);
|
|
36
|
-
|
|
37
|
-
else {
|
|
38
|
-
console.log(`🛑 Received ${signal}. (Press twice Ctrl + C to exit)`);
|
|
39
|
-
}
|
|
53
|
+
console.log("🛑 Press Ctrl+C twice to exit");
|
|
40
54
|
}
|
|
41
55
|
this.stopped = true;
|
|
42
56
|
}
|
|
43
57
|
async start() {
|
|
44
|
-
const intervalMs = this.opts
|
|
58
|
+
const { intervalMs } = this.opts;
|
|
45
59
|
console.log(`Start Scheduler at ${new Date().toISOString()} with job interval: ${intervalMs} (ms)`);
|
|
60
|
+
if (this.stateFile) {
|
|
61
|
+
const state = readState(this.stateFile);
|
|
62
|
+
if (state?.lastStartedAt) {
|
|
63
|
+
const elapsed = Date.now() - state.lastStartedAt;
|
|
64
|
+
const delay = intervalMs - elapsed;
|
|
65
|
+
if (delay > 0) {
|
|
66
|
+
console.log(`⏳ Recovering schedule, wait the next in ${delay / 1000.0} s`);
|
|
67
|
+
await sleepMs(delay);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
46
71
|
while (!this.stopped) {
|
|
47
72
|
const startedAt = Date.now();
|
|
48
|
-
|
|
73
|
+
if (this.stateFile) {
|
|
74
|
+
writeState(this.stateFile, { lastStartedAt: startedAt });
|
|
75
|
+
}
|
|
76
|
+
console.log("🚀 job start", new Date(startedAt).toISOString());
|
|
49
77
|
let shouldStop = false;
|
|
50
78
|
try {
|
|
51
79
|
await this.job();
|
|
@@ -61,7 +89,7 @@ export class Scheduler {
|
|
|
61
89
|
this.stopped = true;
|
|
62
90
|
}
|
|
63
91
|
if (!this.stopped) {
|
|
64
|
-
console.log(`⏳ Next in ${delayMs}
|
|
92
|
+
console.log(`⏳ Next in ${delayMs / 1000.0} s`);
|
|
65
93
|
await sleepMs(delayMs);
|
|
66
94
|
}
|
|
67
95
|
if (shouldStop && this.opts.stopMode === "delayed") {
|
package/dist/scheduler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
|