@contember/migrations-client 2.1.0-alpha.9 → 2.1.0-beta.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/development/src/JsLoader.cjs +5 -5
- package/dist/development/src/JsLoader.cjs.map +1 -1
- package/dist/development/src/JsLoader.js +5 -5
- package/dist/development/src/JsLoader.js.map +1 -1
- package/dist/development/src/JsonLoader.cjs.map +1 -1
- package/dist/development/src/JsonLoader.js.map +1 -1
- package/dist/development/src/MigrationCreator.cjs.map +1 -1
- package/dist/development/src/MigrationCreator.js.map +1 -1
- package/dist/development/src/MigrationExecuteHelper.cjs.map +1 -1
- package/dist/development/src/MigrationExecuteHelper.js.map +1 -1
- package/dist/development/src/MigrationFile.cjs.map +1 -1
- package/dist/development/src/MigrationFile.js.map +1 -1
- package/dist/development/src/MigrationFilesManager.cjs.map +1 -1
- package/dist/development/src/MigrationFilesManager.js.map +1 -1
- package/dist/development/src/MigrationParser.cjs.map +1 -1
- package/dist/development/src/MigrationParser.js.map +1 -1
- package/dist/development/src/MigrationsResolver.cjs +1 -3
- package/dist/development/src/MigrationsResolver.cjs.map +1 -1
- package/dist/development/src/MigrationsResolver.js +1 -3
- package/dist/development/src/MigrationsResolver.js.map +1 -1
- package/dist/development/src/SchemaVersionBuilder.cjs.map +1 -1
- package/dist/development/src/SchemaVersionBuilder.js.map +1 -1
- package/dist/development/src/SystemClient.cjs.map +1 -1
- package/dist/development/src/SystemClient.js.map +1 -1
- package/dist/development/src/migrations.cjs +11 -0
- package/dist/development/src/migrations.cjs.map +1 -1
- package/dist/development/src/migrations.js +11 -0
- package/dist/development/src/migrations.js.map +1 -1
- package/dist/development/src/utils/assertNever.cjs.map +1 -1
- package/dist/development/src/utils/assertNever.js.map +1 -1
- package/dist/production/src/JsLoader.cjs +5 -5
- package/dist/production/src/JsLoader.cjs.map +1 -1
- package/dist/production/src/JsLoader.js +5 -5
- package/dist/production/src/JsLoader.js.map +1 -1
- package/dist/production/src/JsonLoader.cjs.map +1 -1
- package/dist/production/src/JsonLoader.js.map +1 -1
- package/dist/production/src/MigrationCreator.cjs.map +1 -1
- package/dist/production/src/MigrationCreator.js.map +1 -1
- package/dist/production/src/MigrationExecuteHelper.cjs.map +1 -1
- package/dist/production/src/MigrationExecuteHelper.js.map +1 -1
- package/dist/production/src/MigrationFile.cjs.map +1 -1
- package/dist/production/src/MigrationFile.js.map +1 -1
- package/dist/production/src/MigrationFilesManager.cjs.map +1 -1
- package/dist/production/src/MigrationFilesManager.js.map +1 -1
- package/dist/production/src/MigrationParser.cjs.map +1 -1
- package/dist/production/src/MigrationParser.js.map +1 -1
- package/dist/production/src/MigrationsResolver.cjs +1 -3
- package/dist/production/src/MigrationsResolver.cjs.map +1 -1
- package/dist/production/src/MigrationsResolver.js +1 -3
- package/dist/production/src/MigrationsResolver.js.map +1 -1
- package/dist/production/src/SchemaVersionBuilder.cjs.map +1 -1
- package/dist/production/src/SchemaVersionBuilder.js.map +1 -1
- package/dist/production/src/SystemClient.cjs.map +1 -1
- package/dist/production/src/SystemClient.js.map +1 -1
- package/dist/production/src/migrations.cjs +11 -0
- package/dist/production/src/migrations.cjs.map +1 -1
- package/dist/production/src/migrations.js +11 -0
- package/dist/production/src/migrations.js.map +1 -1
- package/dist/production/src/utils/assertNever.cjs.map +1 -1
- package/dist/production/src/utils/assertNever.js.map +1 -1
- package/dist/types/JsLoader.d.ts.map +1 -1
- package/dist/types/MigrationExecuteHelper.d.ts.map +1 -1
- package/dist/types/MigrationFile.d.ts.map +1 -1
- package/dist/types/MigrationsResolver.d.ts.map +1 -1
- package/dist/types/SchemaVersionBuilder.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/migrations.d.ts +5 -1
- package/dist/types/migrations.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -8
- package/src/JsLoader.ts +0 -2
- package/src/MigrationExecuteHelper.ts +0 -2
- package/src/MigrationFile.ts +2 -2
- package/src/MigrationFilesManager.ts +1 -1
- package/src/MigrationsResolver.ts +1 -4
- package/src/SchemaVersionBuilder.ts +1 -2
- package/src/index.ts +2 -5
- package/src/migrations.ts +20 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/migrations-client",
|
|
3
|
-
"version": "2.1.0-
|
|
3
|
+
"version": "2.1.0-beta.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "./dist/production/index.js",
|
|
6
6
|
"typings": "./dist/types/index.d.ts",
|
|
@@ -26,14 +26,19 @@
|
|
|
26
26
|
"test": "echo 'No tests'"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@contember/engine-common": "2.1.0-
|
|
30
|
-
"@contember/graphql-client": "2.1.0-
|
|
31
|
-
"@contember/schema": "2.1.0-
|
|
32
|
-
"@contember/schema-migrations": "2.1.0-
|
|
33
|
-
"@contember/schema-utils": "2.1.0-
|
|
29
|
+
"@contember/engine-common": "2.1.0-beta.1",
|
|
30
|
+
"@contember/graphql-client": "2.1.0-beta.1",
|
|
31
|
+
"@contember/schema": "2.1.0-beta.1",
|
|
32
|
+
"@contember/schema-migrations": "2.1.0-beta.1",
|
|
33
|
+
"@contember/schema-utils": "2.1.0-beta.1"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@types/node": "^
|
|
36
|
+
"@types/node": "^24.12.0"
|
|
37
37
|
},
|
|
38
|
-
"type": "module"
|
|
38
|
+
"type": "module",
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "git+https://github.com/contember/contember.git",
|
|
42
|
+
"directory": "packages/migrations-client"
|
|
43
|
+
}
|
|
39
44
|
}
|
package/src/JsLoader.ts
CHANGED
|
@@ -9,7 +9,6 @@ export class JsLoader implements MigrationFileLoader {
|
|
|
9
9
|
) {
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
public async load(file: MigrationFile): Promise<MigrationContent> {
|
|
14
13
|
const exports = await this.jsExecutor(file.path)
|
|
15
14
|
if (!('default' in exports) && !('query' in exports) && !('queries' in exports)) {
|
|
@@ -29,7 +28,6 @@ export class JsLoader implements MigrationFileLoader {
|
|
|
29
28
|
}
|
|
30
29
|
return migration
|
|
31
30
|
},
|
|
32
|
-
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
33
|
}
|
|
@@ -3,9 +3,7 @@ import { ContentMigrationFactoryArgs, ResolvedMigrationContent } from './Migrati
|
|
|
3
3
|
import { assertNever } from './utils/assertNever'
|
|
4
4
|
import { SystemClient } from './SystemClient'
|
|
5
5
|
|
|
6
|
-
|
|
7
6
|
export class MigrationExecutor {
|
|
8
|
-
|
|
9
7
|
async executeMigrations({
|
|
10
8
|
client,
|
|
11
9
|
migrations,
|
package/src/MigrationFile.ts
CHANGED
|
@@ -10,7 +10,8 @@ export interface MigrationFile {
|
|
|
10
10
|
getContent: () => Promise<MigrationContent>
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export const isSchemaMigration = (content: MigrationContent): content is SchemaMigration =>
|
|
13
|
+
export const isSchemaMigration = (content: MigrationContent): content is SchemaMigration =>
|
|
14
|
+
typeof content !== 'function' && 'modifications' in content
|
|
14
15
|
|
|
15
16
|
export type ResolvedMigrationContent =
|
|
16
17
|
| SchemaMigration
|
|
@@ -52,4 +53,3 @@ export type ContentMigrationQuery = {
|
|
|
52
53
|
stage?: string
|
|
53
54
|
checkMutationResult?: boolean
|
|
54
55
|
}
|
|
55
|
-
|
|
@@ -83,7 +83,7 @@ export class MigrationFilesManager {
|
|
|
83
83
|
const files = await this.tryReadDir()
|
|
84
84
|
|
|
85
85
|
const extensions = Object.keys(this.loaders).join('|')
|
|
86
|
-
const regex = new RegExp('^\\d{4}-\\d{2}-\\d{2}-\\d{6}-[\\w-]+\\.(' + extensions
|
|
86
|
+
const regex = new RegExp('^\\d{4}-\\d{2}-\\d{2}-\\d{6}-[\\w-]+\\.(' + extensions + ')$')
|
|
87
87
|
const filteredFiles = await Promise.all(
|
|
88
88
|
files
|
|
89
89
|
.filter(it => it.isFile())
|
|
@@ -4,7 +4,6 @@ import { isSchemaMigration, MigrationFile } from './MigrationFile'
|
|
|
4
4
|
import { MigrationVersionHelper } from '@contember/engine-common'
|
|
5
5
|
|
|
6
6
|
export class MigrationsResolver {
|
|
7
|
-
|
|
8
7
|
constructor(private readonly migrationFilesManager: MigrationFilesManager) {}
|
|
9
8
|
|
|
10
9
|
public get directory(): string {
|
|
@@ -31,9 +30,7 @@ export class MigrationsResolver {
|
|
|
31
30
|
public async findSchemaMigrationByVersion(version: string): Promise<Migration | null> {
|
|
32
31
|
const migrations = await this.getSchemaMigrations()
|
|
33
32
|
return migrations
|
|
34
|
-
.find(it =>
|
|
35
|
-
MigrationVersionHelper.extractVersion(it.version) === MigrationVersionHelper.extractVersion(version),
|
|
36
|
-
)
|
|
33
|
+
.find(it => MigrationVersionHelper.extractVersion(it.version) === MigrationVersionHelper.extractVersion(version))
|
|
37
34
|
?? null
|
|
38
35
|
}
|
|
39
36
|
|
|
@@ -25,8 +25,7 @@ export class SchemaVersionBuilder {
|
|
|
25
25
|
return (await this.migrationsResolver.getSchemaMigrations())
|
|
26
26
|
.filter(({ version }) => condition(version))
|
|
27
27
|
.reduce<Schema>(
|
|
28
|
-
(schema, { modifications, formatVersion }) =>
|
|
29
|
-
this.schemaMigrator.applyModifications(schema, modifications, formatVersion),
|
|
28
|
+
(schema, { modifications, formatVersion }) => this.schemaMigrator.applyModifications(schema, modifications, formatVersion),
|
|
30
29
|
initialSchema,
|
|
31
30
|
)
|
|
32
31
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
export {
|
|
2
|
+
calculateMigrationChecksum,
|
|
2
3
|
MigrationDescriber,
|
|
3
4
|
ModificationHandlerFactory,
|
|
4
5
|
SchemaDiffer,
|
|
5
6
|
SchemaMigrator,
|
|
6
7
|
VERSION_LATEST,
|
|
7
|
-
calculateMigrationChecksum,
|
|
8
|
-
} from '@contember/schema-migrations'
|
|
9
|
-
export type {
|
|
10
|
-
MigrationInfo,
|
|
11
|
-
Migration,
|
|
12
8
|
} from '@contember/schema-migrations'
|
|
9
|
+
export type { Migration, MigrationInfo } from '@contember/schema-migrations'
|
|
13
10
|
export * from './JsLoader'
|
|
14
11
|
export * from './JsonLoader'
|
|
15
12
|
export * from './MigrationCreator'
|
package/src/migrations.ts
CHANGED
|
@@ -14,6 +14,7 @@ export interface ExecutedMigration extends Migration {
|
|
|
14
14
|
export enum MigrationState {
|
|
15
15
|
TO_EXECUTE_OK = 'to_execute_ok',
|
|
16
16
|
TO_EXECUTE_ERROR = 'to_execute_error',
|
|
17
|
+
SKIP_EMPTY = 'skip_empty',
|
|
17
18
|
EXECUTED_OK = 'executed_ok',
|
|
18
19
|
EXECUTED_ERROR = 'executed_error',
|
|
19
20
|
EXECUTED_MISSING = 'executed_missing',
|
|
@@ -34,22 +35,26 @@ interface MigrationToExecuteInvalidStatus extends MigrationStatusBase<MigrationS
|
|
|
34
35
|
errorMessage: string
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
interface MigrationExecutedOkStatus extends MigrationStatusBase<MigrationState.EXECUTED_OK>{
|
|
38
|
+
interface MigrationExecutedOkStatus extends MigrationStatusBase<MigrationState.EXECUTED_OK> {
|
|
38
39
|
executedMigration: ExecutedMigrationInfo
|
|
39
40
|
localMigration: MigrationFile
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
interface MigrationExecutedMissingStatus extends MigrationStatusBase<MigrationState.EXECUTED_MISSING>{
|
|
43
|
+
interface MigrationExecutedMissingStatus extends MigrationStatusBase<MigrationState.EXECUTED_MISSING> {
|
|
43
44
|
executedMigration: ExecutedMigrationInfo
|
|
44
45
|
errorMessage: string
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
interface MigrationExecutedErrorStatus extends MigrationStatusBase<MigrationState.EXECUTED_ERROR>{
|
|
48
|
+
interface MigrationExecutedErrorStatus extends MigrationStatusBase<MigrationState.EXECUTED_ERROR> {
|
|
48
49
|
executedMigration: ExecutedMigrationInfo
|
|
49
50
|
localMigration: MigrationFile
|
|
50
51
|
errorMessage: string
|
|
51
52
|
}
|
|
52
53
|
|
|
54
|
+
export interface MigrationSkipStatus extends MigrationStatusBase<MigrationState.SKIP_EMPTY> {
|
|
55
|
+
localMigration: MigrationFile
|
|
56
|
+
}
|
|
57
|
+
|
|
53
58
|
export type ErrorMigrationStatus =
|
|
54
59
|
| MigrationToExecuteInvalidStatus
|
|
55
60
|
| MigrationExecutedMissingStatus
|
|
@@ -59,6 +64,7 @@ export type AnyMigrationStatus =
|
|
|
59
64
|
| ErrorMigrationStatus
|
|
60
65
|
| MigrationToExecuteOkStatus
|
|
61
66
|
| MigrationExecutedOkStatus
|
|
67
|
+
| MigrationSkipStatus
|
|
62
68
|
|
|
63
69
|
const isErrorMigrationStatus = (migration: AnyMigrationStatus): migration is ErrorMigrationStatus =>
|
|
64
70
|
[MigrationState.EXECUTED_ERROR, MigrationState.EXECUTED_MISSING, MigrationState.TO_EXECUTE_ERROR].includes(
|
|
@@ -70,7 +76,6 @@ export const sortMigrations = <M extends { version: string }>(migrations: M[]):
|
|
|
70
76
|
}
|
|
71
77
|
|
|
72
78
|
export class MigrationsStatusResolver {
|
|
73
|
-
|
|
74
79
|
async getMigrationsStatus(
|
|
75
80
|
executedMigrations: ExecutedMigrationInfo[],
|
|
76
81
|
localMigrations: MigrationFile[],
|
|
@@ -124,6 +129,16 @@ export class MigrationsStatusResolver {
|
|
|
124
129
|
if (allMigrations.find(it => it.version === localMigration.version)) {
|
|
125
130
|
continue
|
|
126
131
|
}
|
|
132
|
+
const migrationContent = await localMigration.getContent()
|
|
133
|
+
if (isSchemaMigration(migrationContent) && migrationContent.modifications.length === 0) {
|
|
134
|
+
allMigrations.push({
|
|
135
|
+
state: MigrationState.SKIP_EMPTY,
|
|
136
|
+
localMigration,
|
|
137
|
+
version: localMigration.version,
|
|
138
|
+
name: localMigration.name,
|
|
139
|
+
})
|
|
140
|
+
continue
|
|
141
|
+
}
|
|
127
142
|
|
|
128
143
|
if (latestExecuted && latestExecuted.version > localMigration.version) {
|
|
129
144
|
allMigrations.push({
|
|
@@ -148,10 +163,8 @@ export class MigrationsStatusResolver {
|
|
|
148
163
|
allMigrations: allMigrationsSorted,
|
|
149
164
|
errorMigrations: allMigrationsSorted.filter(isErrorMigrationStatus),
|
|
150
165
|
migrationsToExecute: allMigrationsSorted.filter(
|
|
151
|
-
(it): it is MigrationToExecuteOkStatus =>
|
|
152
|
-
it.state === MigrationState.TO_EXECUTE_OK || (force && it.state === MigrationState.TO_EXECUTE_ERROR),
|
|
166
|
+
(it): it is MigrationToExecuteOkStatus => it.state === MigrationState.TO_EXECUTE_OK || (force && it.state === MigrationState.TO_EXECUTE_ERROR),
|
|
153
167
|
),
|
|
154
168
|
}
|
|
155
169
|
}
|
|
156
|
-
|
|
157
170
|
}
|