@pwrdrvr/microapps-datalib 0.0.28 → 0.0.29
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/models/version.d.ts
CHANGED
|
@@ -10,17 +10,37 @@ export interface IVersionRecord {
|
|
|
10
10
|
Status: VersionStatus;
|
|
11
11
|
DefaultFile: string;
|
|
12
12
|
IntegrationID: string;
|
|
13
|
+
RouteIDAppVersion: string;
|
|
14
|
+
RouteIDAppVersionSplat: string;
|
|
13
15
|
}
|
|
14
16
|
export declare type IVersionRecordNoKeysLoose = Partial<Omit<IVersionRecord, 'PK' | 'SK' | 'AppName' | 'SemVer'>> & Pick<IVersionRecord, 'AppName' | 'SemVer'>;
|
|
15
17
|
export declare class Version implements IVersionRecord {
|
|
18
|
+
/**
|
|
19
|
+
* Load records for all the versions of an app
|
|
20
|
+
* @param opts
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
16
23
|
static LoadVersions(opts: {
|
|
17
24
|
dbManager: DBManager;
|
|
18
25
|
key: Pick<IVersionRecord, 'AppName'>;
|
|
19
26
|
}): Promise<Version[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Load record for a single version of an app
|
|
29
|
+
*/
|
|
20
30
|
static LoadVersion(opts: {
|
|
21
31
|
dbManager: DBManager;
|
|
22
32
|
key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
|
|
23
33
|
}): Promise<Version>;
|
|
34
|
+
/**
|
|
35
|
+
* Delete record for a single version of an app
|
|
36
|
+
*/
|
|
37
|
+
static DeleteVersion(opts: {
|
|
38
|
+
dbManager: DBManager;
|
|
39
|
+
key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
|
|
40
|
+
}): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Get PK (primary key / hash key) field value for current KeyBy
|
|
43
|
+
*/
|
|
24
44
|
get PK(): string;
|
|
25
45
|
private _keyBy;
|
|
26
46
|
private _appName;
|
|
@@ -29,8 +49,14 @@ export declare class Version implements IVersionRecord {
|
|
|
29
49
|
private _status;
|
|
30
50
|
private _defaultFile;
|
|
31
51
|
private _integrationID;
|
|
52
|
+
private _routeIDAppVersion;
|
|
53
|
+
private _routeIDAppVersionSplat;
|
|
32
54
|
constructor(init?: Partial<IVersionRecordNoKeysLoose>);
|
|
33
55
|
get DbStruct(): IVersionRecord;
|
|
56
|
+
/**
|
|
57
|
+
* Save this record to DynamoDB
|
|
58
|
+
* @param dbManager
|
|
59
|
+
*/
|
|
34
60
|
Save(dbManager: DBManager): Promise<void>;
|
|
35
61
|
get SK(): string;
|
|
36
62
|
get AppName(): string;
|
|
@@ -45,5 +71,9 @@ export declare class Version implements IVersionRecord {
|
|
|
45
71
|
set DefaultFile(value: string);
|
|
46
72
|
get IntegrationID(): string;
|
|
47
73
|
set IntegrationID(value: string);
|
|
74
|
+
get RouteIDAppVersion(): string;
|
|
75
|
+
set RouteIDAppVersion(value: string);
|
|
76
|
+
get RouteIDAppVersionSplat(): string;
|
|
77
|
+
set RouteIDAppVersionSplat(value: string);
|
|
48
78
|
}
|
|
49
79
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAM/B,oBAAY,aAAa,GACrB,SAAS,GACT,eAAe,GACf,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,UAAU,CAAC;AAEf,oBAAY,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"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"}
|
package/dist/models/version.js
CHANGED
|
@@ -12,9 +12,16 @@ class Version {
|
|
|
12
12
|
this._status = 'pending';
|
|
13
13
|
this._defaultFile = '';
|
|
14
14
|
this._integrationID = '';
|
|
15
|
+
this._routeIDAppVersion = '';
|
|
16
|
+
this._routeIDAppVersionSplat = '';
|
|
15
17
|
// Save any passed in values over the defaults
|
|
16
18
|
Object.assign(this, init);
|
|
17
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Load records for all the versions of an app
|
|
22
|
+
* @param opts
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
18
25
|
static async LoadVersions(opts) {
|
|
19
26
|
const { dbManager, key } = opts;
|
|
20
27
|
const { Items } = await dbManager.ddbDocClient.query({
|
|
@@ -34,6 +41,9 @@ class Version {
|
|
|
34
41
|
}
|
|
35
42
|
return records;
|
|
36
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Load record for a single version of an app
|
|
46
|
+
*/
|
|
37
47
|
static async LoadVersion(opts) {
|
|
38
48
|
const { dbManager, key } = opts;
|
|
39
49
|
const { Item } = await dbManager.ddbDocClient.get({
|
|
@@ -46,6 +56,22 @@ class Version {
|
|
|
46
56
|
const record = class_transformer_1.plainToClass(Version, Item);
|
|
47
57
|
return record;
|
|
48
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Delete record for a single version of an app
|
|
61
|
+
*/
|
|
62
|
+
static async DeleteVersion(opts) {
|
|
63
|
+
const { dbManager, key } = opts;
|
|
64
|
+
await dbManager.ddbDocClient.delete({
|
|
65
|
+
TableName: dbManager.tableName,
|
|
66
|
+
Key: {
|
|
67
|
+
PK: `appName#${key.AppName}`.toLowerCase(),
|
|
68
|
+
SK: `version#${key.SemVer}`.toLowerCase(),
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get PK (primary key / hash key) field value for current KeyBy
|
|
74
|
+
*/
|
|
49
75
|
get PK() {
|
|
50
76
|
switch (this._keyBy) {
|
|
51
77
|
case SaveBy.AppName:
|
|
@@ -64,8 +90,14 @@ class Version {
|
|
|
64
90
|
Status: this.Status,
|
|
65
91
|
DefaultFile: this.DefaultFile,
|
|
66
92
|
IntegrationID: this.IntegrationID,
|
|
93
|
+
RouteIDAppVersion: this.RouteIDAppVersion,
|
|
94
|
+
RouteIDAppVersionSplat: this.RouteIDAppVersionSplat,
|
|
67
95
|
};
|
|
68
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Save this record to DynamoDB
|
|
99
|
+
* @param dbManager
|
|
100
|
+
*/
|
|
69
101
|
async Save(dbManager) {
|
|
70
102
|
// TODO: Validate that all the fields needed are present
|
|
71
103
|
// Save under specific AppName key
|
|
@@ -119,6 +151,18 @@ class Version {
|
|
|
119
151
|
set IntegrationID(value) {
|
|
120
152
|
this._integrationID = value;
|
|
121
153
|
}
|
|
154
|
+
get RouteIDAppVersion() {
|
|
155
|
+
return this._routeIDAppVersion;
|
|
156
|
+
}
|
|
157
|
+
set RouteIDAppVersion(value) {
|
|
158
|
+
this._routeIDAppVersion = value;
|
|
159
|
+
}
|
|
160
|
+
get RouteIDAppVersionSplat() {
|
|
161
|
+
return this._routeIDAppVersionSplat;
|
|
162
|
+
}
|
|
163
|
+
set RouteIDAppVersionSplat(value) {
|
|
164
|
+
this._routeIDAppVersionSplat = value;
|
|
165
|
+
}
|
|
122
166
|
}
|
|
123
167
|
exports.Version = Version;
|
|
124
168
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":";;;AAAA,yDAAiD;AAGjD,IAAK,MAEJ;AAFD,WAAK,MAAM;IACT,yCAAO,CAAA;AACT,CAAC,EAFI,MAAM,KAAN,MAAM,QAEV;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -32,6 +32,8 @@ describe('version records', () => {
|
|
|
32
32
|
version.Type = 'lambda';
|
|
33
33
|
version.DefaultFile = 'index.html';
|
|
34
34
|
version.IntegrationID = 'abcd';
|
|
35
|
+
version.RouteIDAppVersion = '123';
|
|
36
|
+
version.RouteIDAppVersionSplat = '456';
|
|
35
37
|
|
|
36
38
|
await version.Save(dbManager);
|
|
37
39
|
|
|
@@ -48,6 +50,8 @@ describe('version records', () => {
|
|
|
48
50
|
expect(Item?.Type).toBe('lambda');
|
|
49
51
|
expect(Item?.DefaultFile).toBe('index.html');
|
|
50
52
|
expect(Item?.IntegrationID).toBe('abcd');
|
|
53
|
+
expect(Item?.RouteIDAppVersion).toEqual('123');
|
|
54
|
+
expect(Item?.RouteIDAppVersionSplat).toEqual('456');
|
|
51
55
|
});
|
|
52
56
|
|
|
53
57
|
it('load 1 version should load 1 version', async () => {
|
|
@@ -99,8 +103,10 @@ describe('version records', () => {
|
|
|
99
103
|
version.SemVer = '2.2.3-Beta5';
|
|
100
104
|
version.Status = 'pending';
|
|
101
105
|
version.Type = 'lambda';
|
|
102
|
-
version.DefaultFile = '
|
|
103
|
-
version.IntegrationID = '
|
|
106
|
+
version.DefaultFile = 'index1.html';
|
|
107
|
+
version.IntegrationID = 'abcd1';
|
|
108
|
+
version.RouteIDAppVersion = 'routeAppVersion1';
|
|
109
|
+
version.RouteIDAppVersionSplat = 'routeAppVersionSplat1';
|
|
104
110
|
|
|
105
111
|
await version.Save(dbManager);
|
|
106
112
|
|
|
@@ -109,8 +115,10 @@ describe('version records', () => {
|
|
|
109
115
|
version.SemVer = '2.2.3-Beta6';
|
|
110
116
|
version.Status = 'pending';
|
|
111
117
|
version.Type = 'lambda';
|
|
112
|
-
version.DefaultFile = '
|
|
113
|
-
version.IntegrationID = '
|
|
118
|
+
version.DefaultFile = 'index2.html';
|
|
119
|
+
version.IntegrationID = 'abcd2';
|
|
120
|
+
version.RouteIDAppVersion = 'routeAppVersion2';
|
|
121
|
+
version.RouteIDAppVersionSplat = 'routeAppVersionSplat2';
|
|
114
122
|
|
|
115
123
|
await version.Save(dbManager);
|
|
116
124
|
|
|
@@ -121,8 +129,14 @@ describe('version records', () => {
|
|
|
121
129
|
expect(versions[0].AppName).toBe('frog');
|
|
122
130
|
expect(versions[0].SK).toBe('version#2.2.3-beta5');
|
|
123
131
|
expect(versions[0].SemVer).toBe('2.2.3-Beta5');
|
|
132
|
+
expect(versions[0].DefaultFile).toEqual('index1.html');
|
|
133
|
+
expect(versions[0].RouteIDAppVersion).toEqual('routeAppVersion1');
|
|
134
|
+
expect(versions[0].RouteIDAppVersionSplat).toEqual('routeAppVersionSplat1');
|
|
124
135
|
expect(versions[1].AppName).toBe('frog');
|
|
125
136
|
expect(versions[1].SK).toBe('version#2.2.3-beta6');
|
|
126
137
|
expect(versions[1].SemVer).toBe('2.2.3-Beta6');
|
|
138
|
+
expect(versions[1].DefaultFile).toEqual('index2.html');
|
|
139
|
+
expect(versions[1].RouteIDAppVersion).toEqual('routeAppVersion2');
|
|
140
|
+
expect(versions[1].RouteIDAppVersionSplat).toEqual('routeAppVersionSplat2');
|
|
127
141
|
});
|
|
128
142
|
});
|
package/src/models/version.ts
CHANGED
|
@@ -24,6 +24,8 @@ export interface IVersionRecord {
|
|
|
24
24
|
Status: VersionStatus;
|
|
25
25
|
DefaultFile: string;
|
|
26
26
|
IntegrationID: string;
|
|
27
|
+
RouteIDAppVersion: string;
|
|
28
|
+
RouteIDAppVersionSplat: string;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
export type IVersionRecordNoKeysLoose = Partial<
|
|
@@ -32,6 +34,11 @@ export type IVersionRecordNoKeysLoose = Partial<
|
|
|
32
34
|
Pick<IVersionRecord, 'AppName' | 'SemVer'>;
|
|
33
35
|
|
|
34
36
|
export class Version implements IVersionRecord {
|
|
37
|
+
/**
|
|
38
|
+
* Load records for all the versions of an app
|
|
39
|
+
* @param opts
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
35
42
|
public static async LoadVersions(opts: {
|
|
36
43
|
dbManager: DBManager;
|
|
37
44
|
key: Pick<IVersionRecord, 'AppName'>;
|
|
@@ -57,6 +64,9 @@ export class Version implements IVersionRecord {
|
|
|
57
64
|
return records;
|
|
58
65
|
}
|
|
59
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Load record for a single version of an app
|
|
69
|
+
*/
|
|
60
70
|
public static async LoadVersion(opts: {
|
|
61
71
|
dbManager: DBManager;
|
|
62
72
|
key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
|
|
@@ -74,6 +84,27 @@ export class Version implements IVersionRecord {
|
|
|
74
84
|
return record;
|
|
75
85
|
}
|
|
76
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Delete record for a single version of an app
|
|
89
|
+
*/
|
|
90
|
+
public static async DeleteVersion(opts: {
|
|
91
|
+
dbManager: DBManager;
|
|
92
|
+
key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
|
|
93
|
+
}): Promise<void> {
|
|
94
|
+
const { dbManager, key } = opts;
|
|
95
|
+
|
|
96
|
+
await dbManager.ddbDocClient.delete({
|
|
97
|
+
TableName: dbManager.tableName,
|
|
98
|
+
Key: {
|
|
99
|
+
PK: `appName#${key.AppName}`.toLowerCase(),
|
|
100
|
+
SK: `version#${key.SemVer}`.toLowerCase(),
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Get PK (primary key / hash key) field value for current KeyBy
|
|
107
|
+
*/
|
|
77
108
|
public get PK(): string {
|
|
78
109
|
switch (this._keyBy) {
|
|
79
110
|
case SaveBy.AppName:
|
|
@@ -90,12 +121,16 @@ export class Version implements IVersionRecord {
|
|
|
90
121
|
private _status: VersionStatus;
|
|
91
122
|
private _defaultFile: string;
|
|
92
123
|
private _integrationID: string;
|
|
124
|
+
private _routeIDAppVersion: string;
|
|
125
|
+
private _routeIDAppVersionSplat: string | undefined;
|
|
93
126
|
|
|
94
127
|
public constructor(init?: Partial<IVersionRecordNoKeysLoose>) {
|
|
95
128
|
this._keyBy = SaveBy.AppName;
|
|
96
129
|
this._status = 'pending';
|
|
97
130
|
this._defaultFile = '';
|
|
98
131
|
this._integrationID = '';
|
|
132
|
+
this._routeIDAppVersion = '';
|
|
133
|
+
this._routeIDAppVersionSplat = '';
|
|
99
134
|
|
|
100
135
|
// Save any passed in values over the defaults
|
|
101
136
|
Object.assign(this, init);
|
|
@@ -111,9 +146,15 @@ export class Version implements IVersionRecord {
|
|
|
111
146
|
Status: this.Status,
|
|
112
147
|
DefaultFile: this.DefaultFile,
|
|
113
148
|
IntegrationID: this.IntegrationID,
|
|
149
|
+
RouteIDAppVersion: this.RouteIDAppVersion,
|
|
150
|
+
RouteIDAppVersionSplat: this.RouteIDAppVersionSplat,
|
|
114
151
|
};
|
|
115
152
|
}
|
|
116
153
|
|
|
154
|
+
/**
|
|
155
|
+
* Save this record to DynamoDB
|
|
156
|
+
* @param dbManager
|
|
157
|
+
*/
|
|
117
158
|
public async Save(dbManager: DBManager): Promise<void> {
|
|
118
159
|
// TODO: Validate that all the fields needed are present
|
|
119
160
|
|
|
@@ -175,4 +216,18 @@ export class Version implements IVersionRecord {
|
|
|
175
216
|
public set IntegrationID(value: string) {
|
|
176
217
|
this._integrationID = value;
|
|
177
218
|
}
|
|
219
|
+
|
|
220
|
+
public get RouteIDAppVersion(): string {
|
|
221
|
+
return this._routeIDAppVersion as string;
|
|
222
|
+
}
|
|
223
|
+
public set RouteIDAppVersion(value: string) {
|
|
224
|
+
this._routeIDAppVersion = value;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
public get RouteIDAppVersionSplat(): string {
|
|
228
|
+
return this._routeIDAppVersionSplat as string;
|
|
229
|
+
}
|
|
230
|
+
public set RouteIDAppVersionSplat(value: string) {
|
|
231
|
+
this._routeIDAppVersionSplat = value;
|
|
232
|
+
}
|
|
178
233
|
}
|