@oliasoft-open-source/node-json-migrator 4.0.0 → 4.1.0
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/index.cjs +28 -18
- package/dist/index.d.cts +13 -4
- package/dist/index.d.mts +13 -4
- package/dist/index.mjs +28 -18
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -9036,22 +9036,22 @@ const getRecordList = async (db, entity, entityTableName, entityColumnNames, lat
|
|
|
9036
9036
|
const query = `
|
|
9037
9037
|
SELECT
|
|
9038
9038
|
$(entityIdColumn:name) AS id,
|
|
9039
|
-
name,
|
|
9039
|
+
$(entityNameColumn:name) AS name,
|
|
9040
9040
|
$(entityCreatedColumn:name) AS created,
|
|
9041
|
-
version
|
|
9041
|
+
$(entityVersionColumn:name) AS version
|
|
9042
9042
|
FROM $(entityTable:name)
|
|
9043
9043
|
WHERE (
|
|
9044
|
-
|
|
9044
|
+
$(entityVersionColumn:name) IS NULL OR $(entityVersionColumn:name) = ''
|
|
9045
9045
|
OR (
|
|
9046
|
-
|
|
9046
|
+
$(entityVersionColumn:name) <> $(latestVersion)
|
|
9047
9047
|
AND (
|
|
9048
9048
|
SELECT
|
|
9049
9049
|
CASE
|
|
9050
9050
|
WHEN IS_JSON(plan) THEN JSON_ARRAY_LENGTH(plan::json)
|
|
9051
|
-
|
|
9051
|
+
ELSE 0
|
|
9052
9052
|
END AS length
|
|
9053
9053
|
FROM $(entityVersionsTable:name)
|
|
9054
|
-
WHERE $(entityVersionsTable:name).version =
|
|
9054
|
+
WHERE $(entityVersionsTable:name).version = $(entityVersionColumn:name)
|
|
9055
9055
|
LIMIT 1
|
|
9056
9056
|
)::integer <= $(latestVersionPlanLength)
|
|
9057
9057
|
)
|
|
@@ -9061,7 +9061,9 @@ const getRecordList = async (db, entity, entityTableName, entityColumnNames, lat
|
|
|
9061
9061
|
entityTable: entityTableName,
|
|
9062
9062
|
entityVersionsTable: `${entity}_versions`,
|
|
9063
9063
|
entityIdColumn: entityColumnNames.id,
|
|
9064
|
+
entityNameColumn: entityColumnNames.name,
|
|
9064
9065
|
entityCreatedColumn: entityColumnNames.created,
|
|
9066
|
+
entityVersionColumn: entityColumnNames.version,
|
|
9065
9067
|
latestVersion,
|
|
9066
9068
|
latestVersionPlanLength
|
|
9067
9069
|
};
|
|
@@ -9084,18 +9086,22 @@ const updateRecord = async (t, entityTableName, entityColumnNames, entityId, cur
|
|
|
9084
9086
|
const useEtag = typeof etag === "number";
|
|
9085
9087
|
const query = `
|
|
9086
9088
|
UPDATE $(entityTable:name)
|
|
9087
|
-
SET
|
|
9088
|
-
|
|
9089
|
-
|
|
9090
|
-
|
|
9091
|
-
|
|
9092
|
-
|
|
9089
|
+
SET
|
|
9090
|
+
$(payloadColumn:name) = $(nextData),
|
|
9091
|
+
$(versionColumn:name) = $(nextVersion)
|
|
9092
|
+
${useEtag ? ", $(etagColumn:name) = $(etagColumn:name) + 1" : ""}
|
|
9093
|
+
WHERE $(idColumn:name) = $(entityId)
|
|
9094
|
+
AND $(versionColumn:name) = $(currentVersion)
|
|
9095
|
+
${useEtag ? "AND $(etagColumn:name) = $(etag)" : ""}
|
|
9093
9096
|
RETURNING *
|
|
9094
9097
|
`;
|
|
9095
9098
|
const params = {
|
|
9096
9099
|
entityTable: entityTableName,
|
|
9100
|
+
idColumn: entityColumnNames.id,
|
|
9101
|
+
payloadColumn: entityColumnNames.payload,
|
|
9102
|
+
versionColumn: entityColumnNames.version,
|
|
9103
|
+
etagColumn: entityColumnNames.etag,
|
|
9097
9104
|
entityId,
|
|
9098
|
-
entityIdColumn: entityColumnNames.id,
|
|
9099
9105
|
currentVersion,
|
|
9100
9106
|
nextData,
|
|
9101
9107
|
nextVersion,
|
|
@@ -9681,14 +9687,18 @@ const migrateRecord = async ({
|
|
|
9681
9687
|
config.entityColumnNames,
|
|
9682
9688
|
record.id
|
|
9683
9689
|
);
|
|
9684
|
-
const {
|
|
9690
|
+
const {
|
|
9691
|
+
[config.entityColumnNames.payload]: payload,
|
|
9692
|
+
[config.entityColumnNames.etag]: etag,
|
|
9693
|
+
[config.entityColumnNames.version]: currentVersion
|
|
9694
|
+
} = currentRecord;
|
|
9685
9695
|
await beforeMigrateRecord({
|
|
9686
9696
|
currentRecord,
|
|
9687
9697
|
transaction,
|
|
9688
9698
|
dry
|
|
9689
9699
|
});
|
|
9690
9700
|
const { nextPayload: nextData, nextVersion } = await migrate({
|
|
9691
|
-
payload
|
|
9701
|
+
payload,
|
|
9692
9702
|
config: {
|
|
9693
9703
|
...config,
|
|
9694
9704
|
version: currentVersion,
|
|
@@ -9722,9 +9732,9 @@ const migrateRecord = async ({
|
|
|
9722
9732
|
return null;
|
|
9723
9733
|
} catch (error) {
|
|
9724
9734
|
const migrationErrorPayload = {
|
|
9725
|
-
id: record.id,
|
|
9726
|
-
name: record.name,
|
|
9727
|
-
created: record.created,
|
|
9735
|
+
[config.entityColumnNames.id]: record.id,
|
|
9736
|
+
[config.entityColumnNames.name]: record.name,
|
|
9737
|
+
[config.entityColumnNames.created]: record.created,
|
|
9728
9738
|
error,
|
|
9729
9739
|
stackTrace: error.stack
|
|
9730
9740
|
};
|
package/dist/index.d.cts
CHANGED
|
@@ -19,13 +19,22 @@ type TMigration = {
|
|
|
19
19
|
};
|
|
20
20
|
type TEntityColumnNames = {
|
|
21
21
|
id: string;
|
|
22
|
-
created: string;
|
|
23
|
-
};
|
|
24
|
-
type TRecord<T extends TEntityColumnNames = TEntityColumnNames> = {
|
|
25
22
|
name: string;
|
|
23
|
+
payload: string;
|
|
24
|
+
etag?: string;
|
|
26
25
|
version: string;
|
|
27
|
-
|
|
26
|
+
created: string;
|
|
27
|
+
};
|
|
28
|
+
type TRecord<T extends TEntityColumnNames = TEntityColumnNames, TData = unknown> = {
|
|
28
29
|
[K in T['id']]: number | string;
|
|
30
|
+
} & {
|
|
31
|
+
[K in T['name']]: string;
|
|
32
|
+
} & {
|
|
33
|
+
[K in T['payload']]: TData;
|
|
34
|
+
} & (T['etag'] extends string ? {
|
|
35
|
+
[K in T['etag']]?: string;
|
|
36
|
+
} : Record<never, never>) & {
|
|
37
|
+
[K in T['version']]: string;
|
|
29
38
|
} & {
|
|
30
39
|
[K in T['created']]: string | Date;
|
|
31
40
|
};
|
package/dist/index.d.mts
CHANGED
|
@@ -19,13 +19,22 @@ type TMigration = {
|
|
|
19
19
|
};
|
|
20
20
|
type TEntityColumnNames = {
|
|
21
21
|
id: string;
|
|
22
|
-
created: string;
|
|
23
|
-
};
|
|
24
|
-
type TRecord<T extends TEntityColumnNames = TEntityColumnNames> = {
|
|
25
22
|
name: string;
|
|
23
|
+
payload: string;
|
|
24
|
+
etag?: string;
|
|
26
25
|
version: string;
|
|
27
|
-
|
|
26
|
+
created: string;
|
|
27
|
+
};
|
|
28
|
+
type TRecord<T extends TEntityColumnNames = TEntityColumnNames, TData = unknown> = {
|
|
28
29
|
[K in T['id']]: number | string;
|
|
30
|
+
} & {
|
|
31
|
+
[K in T['name']]: string;
|
|
32
|
+
} & {
|
|
33
|
+
[K in T['payload']]: TData;
|
|
34
|
+
} & (T['etag'] extends string ? {
|
|
35
|
+
[K in T['etag']]?: string;
|
|
36
|
+
} : Record<never, never>) & {
|
|
37
|
+
[K in T['version']]: string;
|
|
29
38
|
} & {
|
|
30
39
|
[K in T['created']]: string | Date;
|
|
31
40
|
};
|
package/dist/index.mjs
CHANGED
|
@@ -9015,22 +9015,22 @@ const getRecordList = async (db, entity, entityTableName, entityColumnNames, lat
|
|
|
9015
9015
|
const query = `
|
|
9016
9016
|
SELECT
|
|
9017
9017
|
$(entityIdColumn:name) AS id,
|
|
9018
|
-
name,
|
|
9018
|
+
$(entityNameColumn:name) AS name,
|
|
9019
9019
|
$(entityCreatedColumn:name) AS created,
|
|
9020
|
-
version
|
|
9020
|
+
$(entityVersionColumn:name) AS version
|
|
9021
9021
|
FROM $(entityTable:name)
|
|
9022
9022
|
WHERE (
|
|
9023
|
-
|
|
9023
|
+
$(entityVersionColumn:name) IS NULL OR $(entityVersionColumn:name) = ''
|
|
9024
9024
|
OR (
|
|
9025
|
-
|
|
9025
|
+
$(entityVersionColumn:name) <> $(latestVersion)
|
|
9026
9026
|
AND (
|
|
9027
9027
|
SELECT
|
|
9028
9028
|
CASE
|
|
9029
9029
|
WHEN IS_JSON(plan) THEN JSON_ARRAY_LENGTH(plan::json)
|
|
9030
|
-
|
|
9030
|
+
ELSE 0
|
|
9031
9031
|
END AS length
|
|
9032
9032
|
FROM $(entityVersionsTable:name)
|
|
9033
|
-
WHERE $(entityVersionsTable:name).version =
|
|
9033
|
+
WHERE $(entityVersionsTable:name).version = $(entityVersionColumn:name)
|
|
9034
9034
|
LIMIT 1
|
|
9035
9035
|
)::integer <= $(latestVersionPlanLength)
|
|
9036
9036
|
)
|
|
@@ -9040,7 +9040,9 @@ const getRecordList = async (db, entity, entityTableName, entityColumnNames, lat
|
|
|
9040
9040
|
entityTable: entityTableName,
|
|
9041
9041
|
entityVersionsTable: `${entity}_versions`,
|
|
9042
9042
|
entityIdColumn: entityColumnNames.id,
|
|
9043
|
+
entityNameColumn: entityColumnNames.name,
|
|
9043
9044
|
entityCreatedColumn: entityColumnNames.created,
|
|
9045
|
+
entityVersionColumn: entityColumnNames.version,
|
|
9044
9046
|
latestVersion,
|
|
9045
9047
|
latestVersionPlanLength
|
|
9046
9048
|
};
|
|
@@ -9063,18 +9065,22 @@ const updateRecord = async (t, entityTableName, entityColumnNames, entityId, cur
|
|
|
9063
9065
|
const useEtag = typeof etag === "number";
|
|
9064
9066
|
const query = `
|
|
9065
9067
|
UPDATE $(entityTable:name)
|
|
9066
|
-
SET
|
|
9067
|
-
|
|
9068
|
-
|
|
9069
|
-
|
|
9070
|
-
|
|
9071
|
-
|
|
9068
|
+
SET
|
|
9069
|
+
$(payloadColumn:name) = $(nextData),
|
|
9070
|
+
$(versionColumn:name) = $(nextVersion)
|
|
9071
|
+
${useEtag ? ", $(etagColumn:name) = $(etagColumn:name) + 1" : ""}
|
|
9072
|
+
WHERE $(idColumn:name) = $(entityId)
|
|
9073
|
+
AND $(versionColumn:name) = $(currentVersion)
|
|
9074
|
+
${useEtag ? "AND $(etagColumn:name) = $(etag)" : ""}
|
|
9072
9075
|
RETURNING *
|
|
9073
9076
|
`;
|
|
9074
9077
|
const params = {
|
|
9075
9078
|
entityTable: entityTableName,
|
|
9079
|
+
idColumn: entityColumnNames.id,
|
|
9080
|
+
payloadColumn: entityColumnNames.payload,
|
|
9081
|
+
versionColumn: entityColumnNames.version,
|
|
9082
|
+
etagColumn: entityColumnNames.etag,
|
|
9076
9083
|
entityId,
|
|
9077
|
-
entityIdColumn: entityColumnNames.id,
|
|
9078
9084
|
currentVersion,
|
|
9079
9085
|
nextData,
|
|
9080
9086
|
nextVersion,
|
|
@@ -9660,14 +9666,18 @@ const migrateRecord = async ({
|
|
|
9660
9666
|
config.entityColumnNames,
|
|
9661
9667
|
record.id
|
|
9662
9668
|
);
|
|
9663
|
-
const {
|
|
9669
|
+
const {
|
|
9670
|
+
[config.entityColumnNames.payload]: payload,
|
|
9671
|
+
[config.entityColumnNames.etag]: etag,
|
|
9672
|
+
[config.entityColumnNames.version]: currentVersion
|
|
9673
|
+
} = currentRecord;
|
|
9664
9674
|
await beforeMigrateRecord({
|
|
9665
9675
|
currentRecord,
|
|
9666
9676
|
transaction,
|
|
9667
9677
|
dry
|
|
9668
9678
|
});
|
|
9669
9679
|
const { nextPayload: nextData, nextVersion } = await migrate({
|
|
9670
|
-
payload
|
|
9680
|
+
payload,
|
|
9671
9681
|
config: {
|
|
9672
9682
|
...config,
|
|
9673
9683
|
version: currentVersion,
|
|
@@ -9701,9 +9711,9 @@ const migrateRecord = async ({
|
|
|
9701
9711
|
return null;
|
|
9702
9712
|
} catch (error) {
|
|
9703
9713
|
const migrationErrorPayload = {
|
|
9704
|
-
id: record.id,
|
|
9705
|
-
name: record.name,
|
|
9706
|
-
created: record.created,
|
|
9714
|
+
[config.entityColumnNames.id]: record.id,
|
|
9715
|
+
[config.entityColumnNames.name]: record.name,
|
|
9716
|
+
[config.entityColumnNames.created]: record.created,
|
|
9707
9717
|
error,
|
|
9708
9718
|
stackTrace: error.stack
|
|
9709
9719
|
};
|
package/package.json
CHANGED