@powersync/lib-services-framework 0.8.3 → 0.9.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/dist/logger/logger-index.d.ts +1 -1
- package/dist/logger/logger-index.js +1 -1
- package/dist/logger/logger-index.js.map +1 -1
- package/dist/migrations/AbstractMigrationAgent.d.ts +4 -0
- package/dist/migrations/AbstractMigrationAgent.js +8 -5
- package/dist/migrations/AbstractMigrationAgent.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-index.js","sourceRoot":"","sources":["../../src/logger/logger-index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"logger-index.js","sourceRoot":"","sources":["../../src/logger/logger-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnE,cAAc,aAAa,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { LockManager } from '../locks/LockManager.js';
|
|
2
|
+
import { Logger } from '../logger/logger-index.js';
|
|
2
3
|
import * as defs from './migration-definitions.js';
|
|
3
4
|
export type MigrationParams<Generics extends MigrationAgentGenerics = MigrationAgentGenerics> = {
|
|
4
5
|
count?: number;
|
|
5
6
|
direction: defs.Direction;
|
|
6
7
|
migrationContext?: Generics['MIGRATION_CONTEXT'];
|
|
8
|
+
logger?: Logger;
|
|
7
9
|
};
|
|
8
10
|
type WriteLogsParams = {
|
|
9
11
|
state?: defs.MigrationState;
|
|
@@ -15,9 +17,11 @@ export type MigrationAgentGenerics = {
|
|
|
15
17
|
export type RunMigrationParams<Generics extends MigrationAgentGenerics = MigrationAgentGenerics> = MigrationParams & {
|
|
16
18
|
migrations: defs.Migration<Generics['MIGRATION_CONTEXT']>[];
|
|
17
19
|
maxLockWaitMs?: number;
|
|
20
|
+
logger?: Logger;
|
|
18
21
|
};
|
|
19
22
|
type ExecuteParams = RunMigrationParams & {
|
|
20
23
|
state?: defs.MigrationState;
|
|
24
|
+
logger: Logger;
|
|
21
25
|
};
|
|
22
26
|
export declare const DEFAULT_MAX_LOCK_WAIT_MS: number;
|
|
23
27
|
export declare abstract class AbstractMigrationAgent<Generics extends MigrationAgentGenerics = MigrationAgentGenerics> implements AsyncDisposable {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger } from '../logger/
|
|
1
|
+
import { logger as defaultLogger } from '../logger/logger-index.js';
|
|
2
2
|
import * as defs from './migration-definitions.js';
|
|
3
3
|
export const DEFAULT_MAX_LOCK_WAIT_MS = 3 * 60 * 1000; // 3 minutes
|
|
4
4
|
export class AbstractMigrationAgent {
|
|
@@ -8,9 +8,10 @@ export class AbstractMigrationAgent {
|
|
|
8
8
|
}
|
|
9
9
|
async run(params) {
|
|
10
10
|
await this.init();
|
|
11
|
+
const logger = params.logger ?? defaultLogger;
|
|
11
12
|
const { direction, migrations, migrationContext } = params;
|
|
12
13
|
// Only one process should execute this at a time.
|
|
13
|
-
logger.
|
|
14
|
+
logger.debug('Acquiring lock for migrations');
|
|
14
15
|
const lockHandle = await this.locks.acquire({ max_wait_ms: params.maxLockWaitMs ?? DEFAULT_MAX_LOCK_WAIT_MS });
|
|
15
16
|
if (!lockHandle) {
|
|
16
17
|
throw new Error('Could not acquire lock');
|
|
@@ -32,7 +33,8 @@ export class AbstractMigrationAgent {
|
|
|
32
33
|
direction,
|
|
33
34
|
migrations,
|
|
34
35
|
state,
|
|
35
|
-
migrationContext
|
|
36
|
+
migrationContext,
|
|
37
|
+
logger
|
|
36
38
|
});
|
|
37
39
|
await this.writeLogsToStore({
|
|
38
40
|
log_stream: logStream,
|
|
@@ -40,13 +42,14 @@ export class AbstractMigrationAgent {
|
|
|
40
42
|
});
|
|
41
43
|
}
|
|
42
44
|
finally {
|
|
43
|
-
logger.
|
|
45
|
+
logger.debug('Releasing migration lock');
|
|
44
46
|
await releaseLock();
|
|
45
47
|
process.removeListener('beforeExit', releaseLock);
|
|
46
|
-
logger.
|
|
48
|
+
logger.debug('Done with migrations');
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
async *execute(params) {
|
|
52
|
+
const logger = params.logger;
|
|
50
53
|
const internalMigrations = await this.loadInternalMigrations();
|
|
51
54
|
let migrations = [...internalMigrations, ...params.migrations];
|
|
52
55
|
if (params.direction === defs.Direction.Down) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractMigrationAgent.js","sourceRoot":"","sources":["../../src/migrations/AbstractMigrationAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"AbstractMigrationAgent.js","sourceRoot":"","sources":["../../src/migrations/AbstractMigrationAgent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powersync/lib-services-framework",
|
|
3
3
|
"repository": "https://github.com/powersync-ja/powersync-service",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.9.1",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"uuid": "^11.1.0",
|
|
25
25
|
"winston": "^3.13.0",
|
|
26
26
|
"zod": "^3.23.8",
|
|
27
|
-
"@powersync/service-errors": "0.
|
|
28
|
-
"@powersync/service-sync-rules": "0.
|
|
27
|
+
"@powersync/service-errors": "0.4.1",
|
|
28
|
+
"@powersync/service-sync-rules": "0.34.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/lodash": "^4.17.5",
|