@static-suite/static-suite-data-server 0.0.1 → 0.0.3
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 +569 -107
- package/dist/http/README.md +569 -107
- package/dist/http/routes/dependency.d.ts +10 -0
- package/dist/http/routes/dependency.d.ts.map +1 -0
- package/dist/http/routes/dependency.js +71 -0
- package/dist/http/routes/dump.d.ts.map +1 -1
- package/dist/http/routes/dump.js +15 -10
- package/dist/http/routes/home.js +2 -1
- package/dist/http/routes/index.d.ts.map +1 -1
- package/dist/http/routes/index.js +8 -0
- package/dist/http/routes/status.d.ts.map +1 -1
- package/dist/http/routes/status.js +1 -6
- package/dist/http/views/dependencyIndex.pug +14 -0
- package/dist/lib/dataServer.d.ts +2 -1
- package/dist/lib/dataServer.d.ts.map +1 -1
- package/dist/lib/query/query.types.d.ts +2 -2
- package/dist/lib/query/query.types.d.ts.map +1 -1
- package/dist/lib/query/query.types.js +2 -2
- package/dist/lib/query/queryRunner.d.ts.map +1 -1
- package/dist/lib/query/queryRunner.js +3 -1
- package/dist/lib/store/dataDir/dataDir.types.d.ts +5 -5
- package/dist/lib/store/dataDir/dataDir.types.d.ts.map +1 -1
- package/dist/lib/store/dataDir/dataDirManager.d.ts.map +1 -1
- package/dist/lib/store/dataDir/dataDirManager.js +23 -12
- package/dist/lib/store/dependency/dependency.types.d.ts.map +1 -1
- package/dist/lib/store/dependency/dependencyFileHelper.d.ts +1 -1
- package/dist/lib/store/dependency/dependencyFileHelper.d.ts.map +1 -1
- package/dist/lib/store/dependency/dependencyFileHelper.js +5 -3
- package/dist/lib/store/dependency/dependencyManager.d.ts +12 -0
- package/dist/lib/store/dependency/dependencyManager.d.ts.map +1 -1
- package/dist/lib/store/dependency/dependencyManager.js +7 -5
- package/dist/lib/store/dependency/dependencyTagger.d.ts.map +1 -1
- package/dist/lib/store/dependency/dependencyTagger.js +3 -38
- package/dist/lib/store/diff/{diffManager.types.d.ts → diff.types.d.ts} +14 -6
- package/dist/lib/store/diff/diff.types.d.ts.map +1 -0
- package/dist/lib/store/{dependency/dependencyManager.types.js → diff/diff.types.js} +0 -0
- package/dist/lib/store/diff/diffManager.d.ts +1 -1
- package/dist/lib/store/diff/diffManager.d.ts.map +1 -1
- package/dist/lib/store/diff/diffManager.js +38 -81
- package/dist/lib/store/dump/{dumpManager.types.d.ts → dump.types.d.ts} +21 -8
- package/dist/lib/store/dump/dump.types.d.ts.map +1 -0
- package/dist/lib/store/{diff/diffManager.types.js → dump/dump.types.js} +0 -0
- package/dist/lib/store/dump/dumpManager.d.ts +1 -1
- package/dist/lib/store/dump/dumpManager.d.ts.map +1 -1
- package/dist/lib/store/dump/dumpManager.js +31 -56
- package/dist/lib/store/dump/dumpMetadataHelper.d.ts +7 -0
- package/dist/lib/store/dump/dumpMetadataHelper.d.ts.map +1 -0
- package/dist/lib/store/dump/dumpMetadataHelper.js +61 -0
- package/dist/lib/store/hook/hook.types.d.ts +49 -23
- package/dist/lib/store/hook/hook.types.d.ts.map +1 -1
- package/dist/lib/store/hook/hookManager.d.ts.map +1 -1
- package/dist/lib/store/hook/hookManager.js +19 -8
- package/dist/lib/store/store.d.ts.map +1 -1
- package/dist/lib/store/store.js +9 -4
- package/dist/lib/store/store.types.d.ts +14 -37
- package/dist/lib/store/store.types.d.ts.map +1 -1
- package/dist/lib/store/storeManager.d.ts.map +1 -1
- package/dist/lib/store/storeManager.js +20 -10
- package/dist/lib/store/workDir/storage/getChangedLinesBetween.d.ts +16 -0
- package/dist/lib/store/workDir/storage/getChangedLinesBetween.d.ts.map +1 -0
- package/dist/lib/store/workDir/storage/{getChangedLinesSince.js → getChangedLinesBetween.js} +22 -20
- package/dist/lib/store/workDir/storage/getDataFromLogLine.d.ts.map +1 -1
- package/dist/lib/store/workDir/storage/getDataFromLogLine.js +16 -3
- package/dist/lib/store/workDir/storage/index.d.ts +1 -1
- package/dist/lib/store/workDir/storage/index.d.ts.map +1 -1
- package/dist/lib/store/workDir/storage/index.js +1 -1
- package/dist/lib/store/workDir/workDir.types.d.ts +9 -1
- package/dist/lib/store/workDir/workDir.types.d.ts.map +1 -1
- package/dist/lib/store/workDir/workDirHelper.d.ts +13 -6
- package/dist/lib/store/workDir/workDirHelper.d.ts.map +1 -1
- package/dist/lib/store/workDir/workDirHelper.js +42 -11
- package/dist/lib/utils/fs/fsUtils.d.ts +6 -0
- package/dist/lib/utils/fs/fsUtils.d.ts.map +1 -1
- package/dist/lib/utils/fs/fsUtils.js +20 -1
- package/dist/lib/utils/module/moduleManager.d.ts.map +1 -1
- package/dist/lib/utils/module/moduleManager.js +5 -1
- package/dist/lib/utils/string/stringUtils.d.ts +14 -0
- package/dist/lib/utils/string/stringUtils.d.ts.map +1 -1
- package/dist/lib/utils/string/stringUtils.js +28 -1
- package/dist/static-suite-data-server.d.ts +19 -39
- package/package.json +3 -3
- package/src/http/routes/dependency.ts +91 -0
- package/src/http/routes/dump.ts +21 -10
- package/src/http/routes/home.ts +2 -2
- package/src/http/routes/index.ts +16 -0
- package/src/http/routes/status.ts +1 -9
- package/src/http/views/dependencyIndex.pug +14 -0
- package/src/lib/dataServer.ts +2 -0
- package/src/lib/query/query.types.ts +2 -2
- package/src/lib/query/queryRunner.ts +3 -1
- package/src/lib/store/dataDir/dataDir.types.ts +5 -5
- package/src/lib/store/dataDir/dataDirManager.ts +30 -14
- package/src/lib/store/dependency/dependency.types.ts +0 -5
- package/src/lib/store/dependency/dependencyFileHelper.ts +5 -3
- package/src/lib/store/dependency/dependencyManager.ts +6 -3
- package/src/lib/store/dependency/dependencyTagger.ts +3 -39
- package/src/lib/store/diff/{diffManager.types.ts → diff.types.ts} +14 -5
- package/src/lib/store/diff/diffManager.ts +45 -84
- package/src/lib/store/dump/{dumpManager.types.ts → dump.types.ts} +24 -7
- package/src/lib/store/dump/dumpManager.ts +40 -75
- package/src/lib/store/dump/dumpMetadataHelper.ts +73 -0
- package/src/lib/store/hook/hook.types.ts +58 -23
- package/src/lib/store/hook/hookManager.ts +24 -9
- package/src/lib/store/store.ts +9 -4
- package/src/lib/store/store.types.ts +16 -37
- package/src/lib/store/storeManager.ts +28 -12
- package/src/lib/store/workDir/__tests__/workDirHelper.test.ts +6 -1
- package/src/lib/store/workDir/storage/__tests__/{getChangedLinesSince.test.ts → getChangedLinesBetween.test.ts} +9 -4
- package/src/lib/store/workDir/storage/getChangedLinesBetween.ts +52 -0
- package/src/lib/store/workDir/storage/getDataFromLogLine.ts +22 -3
- package/src/lib/store/workDir/storage/index.ts +1 -1
- package/src/lib/store/workDir/workDir.types.ts +11 -1
- package/src/lib/store/workDir/workDirHelper.ts +45 -11
- package/src/lib/utils/fs/fsUtils.ts +18 -0
- package/src/lib/utils/module/moduleManager.ts +5 -1
- package/src/lib/utils/string/__tests__/stringUtils.test.ts +30 -1
- package/src/lib/utils/string/stringUtils.ts +32 -0
- package/dist/lib/query/queryRunner copy.d.ts +0 -3
- package/dist/lib/query/queryRunner copy.d.ts.map +0 -1
- package/dist/lib/query/queryRunner copy.js +0 -87
- package/dist/lib/store/dependency/dependencyManager copy.d.ts +0 -6
- package/dist/lib/store/dependency/dependencyManager copy.d.ts.map +0 -1
- package/dist/lib/store/dependency/dependencyManager copy.js +0 -91
- package/dist/lib/store/dependency/dependencyManager.types.d.ts +0 -48
- package/dist/lib/store/dependency/dependencyManager.types.d.ts.map +0 -1
- package/dist/lib/store/dependency/dependencyTagManager.d.ts +0 -6
- package/dist/lib/store/dependency/dependencyTagManager.d.ts.map +0 -1
- package/dist/lib/store/dependency/dependencyTagManager.js +0 -33
- package/dist/lib/store/diff/diffManager.types.d.ts.map +0 -1
- package/dist/lib/store/diff/tracker.d.ts +0 -3
- package/dist/lib/store/diff/tracker.d.ts.map +0 -1
- package/dist/lib/store/diff/tracker.js +0 -82
- package/dist/lib/store/diff/tracker.types.d.ts +0 -31
- package/dist/lib/store/diff/tracker.types.d.ts.map +0 -1
- package/dist/lib/store/diff/tracker.types.js +0 -2
- package/dist/lib/store/dump/dumpManager.types.d.ts.map +0 -1
- package/dist/lib/store/dump/dumpManager.types.js +0 -2
- package/dist/lib/store/include/includeIndex.d.ts +0 -6
- package/dist/lib/store/include/includeIndex.d.ts.map +0 -1
- package/dist/lib/store/include/includeIndex.js +0 -65
- package/dist/lib/store/include/includeIndex.types.d.ts +0 -29
- package/dist/lib/store/include/includeIndex.types.d.ts.map +0 -1
- package/dist/lib/store/include/includeIndex.types.js +0 -2
- package/dist/lib/store/workDir/storage/getChangedLinesSince.d.ts +0 -9
- package/dist/lib/store/workDir/storage/getChangedLinesSince.d.ts.map +0 -1
- package/src/lib/store/workDir/storage/getChangedLinesSince.ts +0 -47
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ConfigOptions } from '@lib/config/config.types';
|
|
2
2
|
import { Store } from '@lib/store/store.types';
|
|
3
3
|
import { FileType } from '@lib/utils/fs/fs.types';
|
|
4
|
+
import { Logger } from '@lib/utils/logger/logger.types';
|
|
5
|
+
import { Json } from '@lib/utils/object/object.types';
|
|
4
6
|
import { DependencyTagger } from '../dependency/dependency.types';
|
|
5
|
-
import { Dump } from '../dump/
|
|
7
|
+
import { Dump } from '../dump/dump.types';
|
|
6
8
|
import { ChangedFiles } from '../workDir/workDir.types';
|
|
7
9
|
/**
|
|
8
10
|
* A manager for a group of user-land modules.
|
|
@@ -12,13 +14,13 @@ import { ChangedFiles } from '../workDir/workDir.types';
|
|
|
12
14
|
export declare type HookManager = {
|
|
13
15
|
reset(): void;
|
|
14
16
|
invokeOnStoreLoadStart(): void;
|
|
15
|
-
invokeOnProcessFile(options:
|
|
16
|
-
invokeOnStoreItemAdd(options:
|
|
17
|
+
invokeOnProcessFile(options: FileTypeHookOptions): FileType;
|
|
18
|
+
invokeOnStoreItemAdd(options: StoreItemHookOptions): void;
|
|
17
19
|
invokeOnStoreLoadDone(): void;
|
|
18
20
|
invokeOnStoreChangeStart(changedFiles: ChangedFiles): void;
|
|
19
|
-
invokeOnStoreItemBeforeUpdate(options:
|
|
20
|
-
invokeOnStoreItemAfterUpdate(options:
|
|
21
|
-
invokeOnStoreItemDelete(options:
|
|
21
|
+
invokeOnStoreItemBeforeUpdate(options: StoreItemHookOptions): void;
|
|
22
|
+
invokeOnStoreItemAfterUpdate(options: StoreItemHookOptions): void;
|
|
23
|
+
invokeOnStoreItemDelete(options: StoreItemHookOptions): void;
|
|
22
24
|
invokeOnStoreChangeDone(changedFiles: ChangedFiles): void;
|
|
23
25
|
invokeOnDumpCreate(dump: Dump): Dump;
|
|
24
26
|
};
|
|
@@ -34,6 +36,10 @@ export interface OnModuleLoadHookOptions {
|
|
|
34
36
|
* The data store.
|
|
35
37
|
*/
|
|
36
38
|
store: Store;
|
|
39
|
+
/**
|
|
40
|
+
* The logger service.
|
|
41
|
+
*/
|
|
42
|
+
logger: Logger;
|
|
37
43
|
}
|
|
38
44
|
/**
|
|
39
45
|
* Options passed to a hook.
|
|
@@ -48,28 +54,48 @@ export interface BaseHookOptions {
|
|
|
48
54
|
* The data store.
|
|
49
55
|
*/
|
|
50
56
|
store: Store;
|
|
57
|
+
/**
|
|
58
|
+
* The logger service.
|
|
59
|
+
*/
|
|
60
|
+
logger: Logger;
|
|
51
61
|
/**
|
|
52
62
|
* The dependency tagger service.
|
|
53
63
|
*/
|
|
54
64
|
dependencyTagger: DependencyTagger;
|
|
55
65
|
}
|
|
56
66
|
/**
|
|
57
|
-
* Options passed to a
|
|
67
|
+
* Options passed to a store item hook.
|
|
58
68
|
*/
|
|
59
|
-
export interface
|
|
69
|
+
export interface StoreItemHookOptions {
|
|
60
70
|
/**
|
|
61
71
|
* Relative file path inside the data dir.
|
|
62
72
|
*/
|
|
63
73
|
relativeFilepath: string;
|
|
64
74
|
/**
|
|
65
|
-
*
|
|
75
|
+
* Contents of the store item.
|
|
66
76
|
*/
|
|
67
|
-
|
|
77
|
+
storeItem: Json | string | null;
|
|
78
|
+
/**
|
|
79
|
+
* Contents of the previous store item before store was updated.
|
|
80
|
+
*/
|
|
81
|
+
previousStoreItem?: Json | string | null;
|
|
82
|
+
}
|
|
83
|
+
export interface FullStoreItemHookOptions extends StoreItemHookOptions, BaseHookOptions {
|
|
68
84
|
}
|
|
69
85
|
/**
|
|
70
|
-
*
|
|
86
|
+
* Options passed to a file type hook.
|
|
71
87
|
*/
|
|
72
|
-
export interface
|
|
88
|
+
export interface FileTypeHookOptions {
|
|
89
|
+
/**
|
|
90
|
+
* Relative file path inside the data dir.
|
|
91
|
+
*/
|
|
92
|
+
relativeFilepath: string;
|
|
93
|
+
/**
|
|
94
|
+
* File contents, an object with "raw" and "json" members.
|
|
95
|
+
*/
|
|
96
|
+
fileContent: FileType;
|
|
97
|
+
}
|
|
98
|
+
export interface FullFileTypeHookOptions extends FileTypeHookOptions, BaseHookOptions {
|
|
73
99
|
}
|
|
74
100
|
export interface ChangedFilesHookOptions extends BaseHookOptions {
|
|
75
101
|
/**
|
|
@@ -119,11 +145,11 @@ export declare type HookModule = {
|
|
|
119
145
|
* @remarks
|
|
120
146
|
* This hook is aimed at altering the contents of the file before it being added to the store.
|
|
121
147
|
*
|
|
122
|
-
* @param options - An object with options passed to the hook. @see {@link
|
|
148
|
+
* @param options - An object with options passed to the hook. @see {@link FullFileTypeHookOptions}
|
|
123
149
|
*
|
|
124
|
-
* @returns The file contents,
|
|
150
|
+
* @returns The file contents, an object with "raw" and "json" members.
|
|
125
151
|
*/
|
|
126
|
-
onProcessFile?(options:
|
|
152
|
+
onProcessFile?(options: FullFileTypeHookOptions): FileType;
|
|
127
153
|
/**
|
|
128
154
|
* A hook executed after a file is added into the store.
|
|
129
155
|
*
|
|
@@ -131,9 +157,9 @@ export declare type HookModule = {
|
|
|
131
157
|
* This hook is aimed at adding some information to the store, e.g.- indexing all contents
|
|
132
158
|
* by their taxonomy.
|
|
133
159
|
*
|
|
134
|
-
* @param options - An object with options passed to the hook. @see {@link
|
|
160
|
+
* @param options - An object with options passed to the hook. @see {@link StoreItemHookOptions}
|
|
135
161
|
*/
|
|
136
|
-
onStoreItemAdd?(options:
|
|
162
|
+
onStoreItemAdd?(options: FullStoreItemHookOptions): void;
|
|
137
163
|
/**
|
|
138
164
|
* A hook executed after the store finishes loading.
|
|
139
165
|
*
|
|
@@ -160,9 +186,9 @@ export declare type HookModule = {
|
|
|
160
186
|
* This hook is aimed at adding some information to the store, e.g.- indexing all contents
|
|
161
187
|
* by their taxonomy.
|
|
162
188
|
*
|
|
163
|
-
* @param options - An object with options passed to the hook. @see {@link
|
|
189
|
+
* @param options - An object with options passed to the hook. @see {@link StoreItemHookOptions}
|
|
164
190
|
*/
|
|
165
|
-
onStoreItemBeforeUpdate?(options:
|
|
191
|
+
onStoreItemBeforeUpdate?(options: FullStoreItemHookOptions): void;
|
|
166
192
|
/**
|
|
167
193
|
* A hook executed after a file is updated in the store.
|
|
168
194
|
*
|
|
@@ -170,9 +196,9 @@ export declare type HookModule = {
|
|
|
170
196
|
* This hook is aimed at adding some information to the store, e.g.- indexing all contents
|
|
171
197
|
* by their taxonomy.
|
|
172
198
|
*
|
|
173
|
-
* @param options - An object with options passed to the hook. @see {@link
|
|
199
|
+
* @param options - An object with options passed to the hook. @see {@link StoreItemHookOptions}
|
|
174
200
|
*/
|
|
175
|
-
onStoreItemAfterUpdate?(options:
|
|
201
|
+
onStoreItemAfterUpdate?(options: FullStoreItemHookOptions): void;
|
|
176
202
|
/**
|
|
177
203
|
* A hook executed after a file is deleted from the store.
|
|
178
204
|
*
|
|
@@ -180,9 +206,9 @@ export declare type HookModule = {
|
|
|
180
206
|
* This hook is aimed at reverting the actions taken in storeAdd hook, e.g.- removing a file
|
|
181
207
|
* from a taxonomy index.
|
|
182
208
|
*
|
|
183
|
-
* @param options - An object with options passed to the hook. @see {@link
|
|
209
|
+
* @param options - An object with options passed to the hook. @see {@link StoreItemHookOptions}
|
|
184
210
|
*/
|
|
185
|
-
onStoreItemDelete?(options:
|
|
211
|
+
onStoreItemDelete?(options: FullStoreItemHookOptions): void;
|
|
186
212
|
/**
|
|
187
213
|
* A hook executed after the store ends updating.
|
|
188
214
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/hook/hook.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"hook.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/hook/hook.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hookManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/hook/hookManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hookManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/hook/hookManager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAc,MAAM,cAAc,CAAC;AAYvD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,WA6KzB,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.hookManager = void 0;
|
|
4
4
|
const config_1 = require("@lib/config");
|
|
5
5
|
const store_1 = require("@lib/store");
|
|
6
|
+
const logger_1 = require("@lib/utils/logger");
|
|
6
7
|
const dependencyTagger_1 = require("@lib/store/dependency/dependencyTagger");
|
|
7
8
|
const module_1 = require("@lib/utils/module");
|
|
8
9
|
/**
|
|
@@ -27,6 +28,7 @@ exports.hookManager = {
|
|
|
27
28
|
if (hookModule.onStoreLoadStart) {
|
|
28
29
|
hookModule.onStoreLoadStart({
|
|
29
30
|
store: store_1.store,
|
|
31
|
+
logger: logger_1.logger,
|
|
30
32
|
dependencyTagger: dependencyTagger_1.dependencyTagger,
|
|
31
33
|
});
|
|
32
34
|
}
|
|
@@ -43,6 +45,7 @@ exports.hookManager = {
|
|
|
43
45
|
relativeFilepath,
|
|
44
46
|
fileContent: processedFileContent,
|
|
45
47
|
store: store_1.store,
|
|
48
|
+
logger: logger_1.logger,
|
|
46
49
|
dependencyTagger: dependencyTagger_1.dependencyTagger,
|
|
47
50
|
});
|
|
48
51
|
if (returnValue) {
|
|
@@ -52,16 +55,17 @@ exports.hookManager = {
|
|
|
52
55
|
});
|
|
53
56
|
return processedFileContent;
|
|
54
57
|
},
|
|
55
|
-
invokeOnStoreItemAdd({ relativeFilepath,
|
|
58
|
+
invokeOnStoreItemAdd({ relativeFilepath, storeItem }) {
|
|
56
59
|
const hookModulesInfo = moduleManager.getModuleGroupInfo();
|
|
57
60
|
hookModulesInfo.forEach(hookInfo => {
|
|
58
61
|
const hookModule = hookInfo.getModule();
|
|
59
62
|
if (hookModule.onStoreItemAdd) {
|
|
60
63
|
hookModule.onStoreItemAdd({
|
|
61
64
|
relativeFilepath,
|
|
62
|
-
fileContent,
|
|
63
65
|
store: store_1.store,
|
|
66
|
+
logger: logger_1.logger,
|
|
64
67
|
dependencyTagger: dependencyTagger_1.dependencyTagger,
|
|
68
|
+
storeItem,
|
|
65
69
|
});
|
|
66
70
|
}
|
|
67
71
|
});
|
|
@@ -73,6 +77,7 @@ exports.hookManager = {
|
|
|
73
77
|
if (hookModule.onStoreLoadDone) {
|
|
74
78
|
hookModule.onStoreLoadDone({
|
|
75
79
|
store: store_1.store,
|
|
80
|
+
logger: logger_1.logger,
|
|
76
81
|
dependencyTagger: dependencyTagger_1.dependencyTagger,
|
|
77
82
|
});
|
|
78
83
|
}
|
|
@@ -85,50 +90,55 @@ exports.hookManager = {
|
|
|
85
90
|
if (hookModule.onStoreChangeStart) {
|
|
86
91
|
hookModule.onStoreChangeStart({
|
|
87
92
|
store: store_1.store,
|
|
93
|
+
logger: logger_1.logger,
|
|
88
94
|
dependencyTagger: dependencyTagger_1.dependencyTagger,
|
|
89
95
|
changedFiles,
|
|
90
96
|
});
|
|
91
97
|
}
|
|
92
98
|
});
|
|
93
99
|
},
|
|
94
|
-
invokeOnStoreItemBeforeUpdate({ relativeFilepath,
|
|
100
|
+
invokeOnStoreItemBeforeUpdate({ relativeFilepath, storeItem }) {
|
|
95
101
|
const hookModulesInfo = moduleManager.getModuleGroupInfo();
|
|
96
102
|
hookModulesInfo.forEach(hookInfo => {
|
|
97
103
|
const hookModule = hookInfo.getModule();
|
|
98
104
|
if (hookModule.onStoreItemBeforeUpdate) {
|
|
99
105
|
hookModule.onStoreItemBeforeUpdate({
|
|
100
106
|
store: store_1.store,
|
|
107
|
+
logger: logger_1.logger,
|
|
101
108
|
dependencyTagger: dependencyTagger_1.dependencyTagger,
|
|
102
109
|
relativeFilepath,
|
|
103
|
-
|
|
110
|
+
storeItem,
|
|
104
111
|
});
|
|
105
112
|
}
|
|
106
113
|
});
|
|
107
114
|
},
|
|
108
|
-
invokeOnStoreItemAfterUpdate({ relativeFilepath,
|
|
115
|
+
invokeOnStoreItemAfterUpdate({ relativeFilepath, storeItem, previousStoreItem, }) {
|
|
109
116
|
const hookModulesInfo = moduleManager.getModuleGroupInfo();
|
|
110
117
|
hookModulesInfo.forEach(hookInfo => {
|
|
111
118
|
const hookModule = hookInfo.getModule();
|
|
112
119
|
if (hookModule.onStoreItemAfterUpdate) {
|
|
113
120
|
hookModule.onStoreItemAfterUpdate({
|
|
114
121
|
store: store_1.store,
|
|
122
|
+
logger: logger_1.logger,
|
|
115
123
|
dependencyTagger: dependencyTagger_1.dependencyTagger,
|
|
116
124
|
relativeFilepath,
|
|
117
|
-
|
|
125
|
+
storeItem,
|
|
126
|
+
previousStoreItem,
|
|
118
127
|
});
|
|
119
128
|
}
|
|
120
129
|
});
|
|
121
130
|
},
|
|
122
|
-
invokeOnStoreItemDelete({ relativeFilepath,
|
|
131
|
+
invokeOnStoreItemDelete({ relativeFilepath, storeItem }) {
|
|
123
132
|
const hookModulesInfo = moduleManager.getModuleGroupInfo();
|
|
124
133
|
hookModulesInfo.forEach(hookInfo => {
|
|
125
134
|
const hookModule = hookInfo.getModule();
|
|
126
135
|
if (hookModule.onStoreItemDelete) {
|
|
127
136
|
hookModule.onStoreItemDelete({
|
|
128
137
|
store: store_1.store,
|
|
138
|
+
logger: logger_1.logger,
|
|
129
139
|
dependencyTagger: dependencyTagger_1.dependencyTagger,
|
|
130
140
|
relativeFilepath,
|
|
131
|
-
|
|
141
|
+
storeItem,
|
|
132
142
|
});
|
|
133
143
|
}
|
|
134
144
|
});
|
|
@@ -140,6 +150,7 @@ exports.hookManager = {
|
|
|
140
150
|
if (hookModule.onStoreChangeDone) {
|
|
141
151
|
hookModule.onStoreChangeDone({
|
|
142
152
|
store: store_1.store,
|
|
153
|
+
logger: logger_1.logger,
|
|
143
154
|
dependencyTagger: dependencyTagger_1.dependencyTagger,
|
|
144
155
|
changedFiles,
|
|
145
156
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/store.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,EAIN,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/store.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,EAIN,MAAM,eAAe,CAAC;AAevB,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAoEF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,IAQ7B,CAAC"}
|
package/dist/lib/store/store.js
CHANGED
|
@@ -8,6 +8,7 @@ const microtime_1 = __importDefault(require("microtime"));
|
|
|
8
8
|
const string_1 = require("@lib/utils/string");
|
|
9
9
|
const logger_1 = require("@lib/utils/logger");
|
|
10
10
|
const cache_1 = require("@lib/utils/cache");
|
|
11
|
+
const workDir_1 = require("./workDir");
|
|
11
12
|
// Instantiate the subset cache so it can be accessed faster.
|
|
12
13
|
const subsetCache = cache_1.cache.bin('store-subset');
|
|
13
14
|
const initIndex = () => {
|
|
@@ -19,7 +20,8 @@ const initIndex = () => {
|
|
|
19
20
|
};
|
|
20
21
|
const initData = () => new Map();
|
|
21
22
|
exports.store = {
|
|
22
|
-
|
|
23
|
+
initialUniqueId: workDir_1.unixEpochUniqueId,
|
|
24
|
+
currentUniqueId: workDir_1.unixEpochUniqueId,
|
|
23
25
|
data: initData(),
|
|
24
26
|
deleted: new Set(),
|
|
25
27
|
index: initIndex(),
|
|
@@ -33,7 +35,7 @@ exports.store.data.subset = (options) => {
|
|
|
33
35
|
recursive: 'true',
|
|
34
36
|
};
|
|
35
37
|
const opts = { ...defaultOptions, ...options };
|
|
36
|
-
let subset = { filenames: [], items: [] };
|
|
38
|
+
let subset = { map: new Map(), filenames: [], items: [] };
|
|
37
39
|
const dirWithTrimmedSlashes = opts.dir?.replace(/^\//, '').replace(/\/$/, '');
|
|
38
40
|
const dirPart = dirWithTrimmedSlashes ? `${dirWithTrimmedSlashes}/` : '';
|
|
39
41
|
let variantPart;
|
|
@@ -66,8 +68,10 @@ exports.store.data.subset = (options) => {
|
|
|
66
68
|
const mapKeys = Array.from(exports.store.data.keys());
|
|
67
69
|
mapKeys.forEach(k => {
|
|
68
70
|
if (k.match(regex)) {
|
|
71
|
+
const storeItem = exports.store.data.get(k);
|
|
72
|
+
subset.map.set(k, storeItem);
|
|
69
73
|
subset.filenames.push(k);
|
|
70
|
-
subset.items.push(
|
|
74
|
+
subset.items.push(storeItem);
|
|
71
75
|
}
|
|
72
76
|
});
|
|
73
77
|
subsetCache.set(pattern, subset);
|
|
@@ -79,7 +83,8 @@ exports.store.data.subset = (options) => {
|
|
|
79
83
|
* Resets store and deletes all loaded data.
|
|
80
84
|
*/
|
|
81
85
|
const resetStore = () => {
|
|
82
|
-
exports.store.
|
|
86
|
+
exports.store.initialUniqueId = workDir_1.unixEpochUniqueId;
|
|
87
|
+
exports.store.currentUniqueId = workDir_1.unixEpochUniqueId;
|
|
83
88
|
const previousSubset = exports.store.data.subset;
|
|
84
89
|
exports.store.data = initData();
|
|
85
90
|
exports.store.data.subset = previousSubset;
|
|
@@ -39,44 +39,17 @@ export interface StoreData<K, V> extends Map<K, V> {
|
|
|
39
39
|
*/
|
|
40
40
|
export declare type Store = {
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
*
|
|
47
|
-
* Given this scenario:
|
|
48
|
-
* - Data directory modified at 12:30:00
|
|
49
|
-
* - Syncing the store takes 3 seconds and finishes at 12:30:03
|
|
50
|
-
*
|
|
51
|
-
* ... syncDate will be 12:30:00, not 12:30:03.
|
|
52
|
-
*
|
|
53
|
-
* Doing it the other way round can cause data inconsistencies, because syncing files
|
|
54
|
-
* to the store takes time, it is done sequentially, and in the meanwhile, other
|
|
55
|
-
* modifications can happen:
|
|
56
|
-
* - Store last syncDate is 12:29:00
|
|
57
|
-
* - Data directory is modified at 12:30:00
|
|
58
|
-
* - We ask for modified files after 12:29:00 and got 3 files (1.json, 2.json and 3.json)
|
|
59
|
-
* - File "1.json" is processed and added to the store at 12:30:01
|
|
60
|
-
* - While "2.json" is being processed and added to the store, data directory is modified
|
|
61
|
-
* again at 12:30:02 and "1.json" is changed.
|
|
62
|
-
* - File "3.json" is processed and added to the store at 12:30:03
|
|
63
|
-
*
|
|
64
|
-
* At this moment, there are two options:
|
|
42
|
+
* Initial unique id when the store was initially loaded.
|
|
43
|
+
*/
|
|
44
|
+
initialUniqueId: string;
|
|
45
|
+
/**
|
|
46
|
+
* Current unique id to tell when was the store last synced.
|
|
65
47
|
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* - Data directory is modified again at 12:30:10 and only "3.json" is changed
|
|
69
|
-
* - We ask for modified files after 12:30:03 and get only "3.json"
|
|
70
|
-
* - Modification done at 12:30:02 to "1.json" is lost and cannot be recovered unless "1.json" is
|
|
71
|
-
* modified again, or Data Server is restarted
|
|
48
|
+
* Every time the store is updated, this id is set with the last modification
|
|
49
|
+
* unique id of the data directory, not the date when the store has finished updating.
|
|
72
50
|
*
|
|
73
|
-
* 2) Setting syncDate to the last modification date of the data directory:
|
|
74
|
-
* - Store syncDate is set to 12:30:00
|
|
75
|
-
* - Data directory is modified again at 12:30:10 and only "3.json" is changed
|
|
76
|
-
* - We ask for modified files after 12:30:00 and get "1.json" and "3.json"
|
|
77
|
-
* - Modification done at 12:30:02 to "1.json" is properly processed
|
|
78
51
|
*/
|
|
79
|
-
|
|
52
|
+
currentUniqueId: string;
|
|
80
53
|
/**
|
|
81
54
|
* Map that holds all data for all files.
|
|
82
55
|
*
|
|
@@ -102,7 +75,7 @@ export declare type Store = {
|
|
|
102
75
|
*/
|
|
103
76
|
data: StoreData<string, any>;
|
|
104
77
|
/**
|
|
105
|
-
* A list of deleted files
|
|
78
|
+
* A list of deleted files since last reboot, to be able to track them.
|
|
106
79
|
*/
|
|
107
80
|
deleted: Set<string>;
|
|
108
81
|
/**
|
|
@@ -114,7 +87,7 @@ export declare type Store = {
|
|
|
114
87
|
*/
|
|
115
88
|
url: Map<string, any>;
|
|
116
89
|
/**
|
|
117
|
-
* An index that holds all data for all files, keyed by their
|
|
90
|
+
* An index that holds all data for all files, keyed by their langcode and UUID.
|
|
118
91
|
*/
|
|
119
92
|
uuid: Map<string, any>;
|
|
120
93
|
/**
|
|
@@ -157,6 +130,10 @@ export declare type StoreSubsetOptions = {
|
|
|
157
130
|
* Object holding a subset of items from the store.
|
|
158
131
|
*/
|
|
159
132
|
export declare type StoreSubset = {
|
|
133
|
+
/**
|
|
134
|
+
* Map of elements, with the filename as key
|
|
135
|
+
*/
|
|
136
|
+
map: Map<string, any>;
|
|
160
137
|
/**
|
|
161
138
|
* Array of filenames in this subset.
|
|
162
139
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../../src/lib/store/store.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAAC;CAClD;AAED;;GAEG;AACH,oBAAY,KAAK,GAAG;IAClB
|
|
1
|
+
{"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../../src/lib/store/store.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAAC;CAClD;AAED;;GAEG;AACH,oBAAY,KAAK,GAAG;IAClB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE7B;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE;QACL;;WAEG;QACH,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEtB;;WAEG;QACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvB;;WAEG;QACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC1B,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,oBAAY,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,oBAAY,WAAW,GAAG;IACxB;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,oBAAY,YAAY,GAAG;IACzB;;;;;;;;;OASG;IACH,GAAG,CAAC,gBAAgB,EAAE,MAAM,GAAG,YAAY,CAAC;IAE5C;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IAEnC;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IAEnC;;;;;OAKG;IACH,aAAa,IAAI,YAAY,CAAC;IAE9B;;;;;;;;OAQG;IACH,uBAAuB,CACrB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,GAAG,GACf,YAAY,CAAC;IAEhB;;;;OAIG;IACH,KAAK,IAAI,YAAY,CAAC;CACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storeManager.d.ts","sourceRoot":"","sources":["../../../src/lib/store/storeManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"storeManager.d.ts","sourceRoot":"","sources":["../../../src/lib/store/storeManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAsG7C,eAAO,MAAM,YAAY,EAAE,YAiG1B,CAAC"}
|
|
@@ -24,10 +24,11 @@ const setFileIntoStore = (relativeFilepath) => {
|
|
|
24
24
|
relativeFilepath,
|
|
25
25
|
fileContent,
|
|
26
26
|
});
|
|
27
|
+
let previousStoredData = null;
|
|
27
28
|
const dataToStore = fileContent.json || fileContent.raw;
|
|
29
|
+
const previousData = _1.store.data.get(relativeFilepath);
|
|
28
30
|
if (fileContent.json) {
|
|
29
31
|
// Check if the object already exists to make sure we don't break the reference
|
|
30
|
-
const previousData = _1.store.data.get(relativeFilepath);
|
|
31
32
|
if (dataToStore && typeof dataToStore === 'object') {
|
|
32
33
|
if (previousData) {
|
|
33
34
|
// Delete include dependencies.
|
|
@@ -43,8 +44,10 @@ const setFileIntoStore = (relativeFilepath) => {
|
|
|
43
44
|
if (uuid && langcode) {
|
|
44
45
|
_1.store.index.uuid.get(langcode)?.delete(uuid);
|
|
45
46
|
}
|
|
46
|
-
// Delete all referenced object properties
|
|
47
|
+
// Delete all referenced object properties and copy them to another object.
|
|
48
|
+
previousStoredData = {};
|
|
47
49
|
Object.keys(previousData).forEach(key => {
|
|
50
|
+
previousStoredData[key] = previousData[key];
|
|
48
51
|
delete previousData[key];
|
|
49
52
|
});
|
|
50
53
|
// hydrate new object properties into referenced object
|
|
@@ -66,19 +69,25 @@ const setFileIntoStore = (relativeFilepath) => {
|
|
|
66
69
|
_1.store.index.url.set(url, dataToStore);
|
|
67
70
|
}
|
|
68
71
|
// Add include dependencies.
|
|
69
|
-
dependencyFileHelper_1.dependencyIncludeHelper.
|
|
72
|
+
dependencyFileHelper_1.dependencyIncludeHelper.addIncludeDependencies(relativeFilepath, dataToStore);
|
|
70
73
|
}
|
|
71
74
|
}
|
|
75
|
+
else {
|
|
76
|
+
previousStoredData = previousData;
|
|
77
|
+
}
|
|
72
78
|
_1.store.data.set(relativeFilepath, dataToStore);
|
|
73
79
|
// Remove this path from store.deleted
|
|
74
80
|
_1.store.deleted.delete(relativeFilepath);
|
|
75
|
-
return fileContent;
|
|
81
|
+
return { fileContent: dataToStore, previousStoredData };
|
|
76
82
|
};
|
|
77
83
|
exports.storeManager = {
|
|
78
84
|
add: (relativeFilepath) => {
|
|
79
|
-
const fileContent = setFileIntoStore(relativeFilepath);
|
|
85
|
+
const { fileContent } = setFileIntoStore(relativeFilepath);
|
|
80
86
|
// Invoke "store add" hook.
|
|
81
|
-
hook_1.hookManager.invokeOnStoreItemAdd({
|
|
87
|
+
hook_1.hookManager.invokeOnStoreItemAdd({
|
|
88
|
+
relativeFilepath,
|
|
89
|
+
storeItem: fileContent,
|
|
90
|
+
});
|
|
82
91
|
return exports.storeManager;
|
|
83
92
|
},
|
|
84
93
|
update: (relativeFilepath) => {
|
|
@@ -86,16 +95,17 @@ exports.storeManager = {
|
|
|
86
95
|
if (storedData) {
|
|
87
96
|
hook_1.hookManager.invokeOnStoreItemBeforeUpdate({
|
|
88
97
|
relativeFilepath,
|
|
89
|
-
|
|
98
|
+
storeItem: storedData,
|
|
90
99
|
});
|
|
91
100
|
}
|
|
92
|
-
const fileContent = setFileIntoStore(relativeFilepath);
|
|
101
|
+
const { fileContent, previousStoredData } = setFileIntoStore(relativeFilepath);
|
|
93
102
|
// Invalidate this item.
|
|
94
103
|
dependencyTagger_1.dependencyTagger.invalidateTags([relativeFilepath]);
|
|
95
104
|
// Invoke "store update" hook.
|
|
96
105
|
hook_1.hookManager.invokeOnStoreItemAfterUpdate({
|
|
97
106
|
relativeFilepath,
|
|
98
|
-
fileContent,
|
|
107
|
+
storeItem: fileContent,
|
|
108
|
+
previousStoreItem: previousStoredData,
|
|
99
109
|
});
|
|
100
110
|
return exports.storeManager;
|
|
101
111
|
},
|
|
@@ -122,7 +132,7 @@ exports.storeManager = {
|
|
|
122
132
|
// Invoke "store remove" hook.
|
|
123
133
|
hook_1.hookManager.invokeOnStoreItemDelete({
|
|
124
134
|
relativeFilepath,
|
|
125
|
-
|
|
135
|
+
storeItem: storedData,
|
|
126
136
|
});
|
|
127
137
|
return exports.storeManager;
|
|
128
138
|
},
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get changed files between a set of dates.
|
|
3
|
+
*
|
|
4
|
+
* @param fromUniqueId - Unique id to search from.
|
|
5
|
+
* @param toUniqueId - Unique id to search to.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* It searches for lines grater than fromUniqueId and lower
|
|
9
|
+
* or equal to toUniqueId, to avoid getting repeated entries
|
|
10
|
+
* when dates are advanced in blocks (from 1 to 2, from 2 to 3,
|
|
11
|
+
* from 3 to 4, etc).
|
|
12
|
+
*
|
|
13
|
+
* @returns Array of changed lines
|
|
14
|
+
*/
|
|
15
|
+
export declare const getChangedLinesBetween: (fromUniqueId: string, toUniqueId: string) => string[];
|
|
16
|
+
//# sourceMappingURL=getChangedLinesBetween.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getChangedLinesBetween.d.ts","sourceRoot":"","sources":["../../../../../src/lib/store/workDir/storage/getChangedLinesBetween.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,iBACnB,MAAM,cACR,MAAM,KACjB,MAAM,EA6BR,CAAC"}
|
package/dist/lib/store/workDir/storage/{getChangedLinesSince.js → getChangedLinesBetween.js}
RENAMED
|
@@ -3,40 +3,42 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.getChangedLinesBetween = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const logger_1 = require("@lib/utils/logger");
|
|
9
|
+
const string_1 = require("@lib/utils/string");
|
|
9
10
|
const getLogFile_1 = require("./getLogFile");
|
|
10
11
|
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
* Get changed files between a set of dates.
|
|
13
|
+
*
|
|
14
|
+
* @param fromUniqueId - Unique id to search from.
|
|
15
|
+
* @param toUniqueId - Unique id to search to.
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* It searches for lines grater than fromUniqueId and lower
|
|
19
|
+
* or equal to toUniqueId, to avoid getting repeated entries
|
|
20
|
+
* when dates are advanced in blocks (from 1 to 2, from 2 to 3,
|
|
21
|
+
* from 3 to 4, etc).
|
|
22
|
+
*
|
|
23
|
+
* @returns Array of changed lines
|
|
24
|
+
*/
|
|
25
|
+
const getChangedLinesBetween = (fromUniqueId, toUniqueId) => {
|
|
18
26
|
let allLines = [];
|
|
19
27
|
const logFile = (0, getLogFile_1.getLogFile)();
|
|
20
28
|
if (logFile) {
|
|
21
29
|
try {
|
|
22
|
-
allLines = fs_1.default.readFileSync(logFile).toString().split('\n');
|
|
30
|
+
allLines = fs_1.default.readFileSync(logFile).toString().trim().split('\n');
|
|
23
31
|
}
|
|
24
32
|
catch (e) {
|
|
25
33
|
logger_1.logger.error(`Error reading metadata log file located at ${`logFile`}: ${e}`);
|
|
26
34
|
}
|
|
27
35
|
}
|
|
28
|
-
// todo - Do not use dates and use timestamps in all cases
|
|
29
|
-
// to avoid having to fix offsets.
|
|
30
|
-
const date = new Date();
|
|
31
|
-
const dateOffset = -(date.getTimezoneOffset() * 60 * 1000);
|
|
32
36
|
const changedLines = allLines.filter(line => {
|
|
33
37
|
const uniqueId = line.substring(0, 32);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const uniqueIdDate = Date.parse(dateString) + dateOffset;
|
|
39
|
-
return uniqueIdDate && uniqueIdDate > sinceDate.getTime();
|
|
38
|
+
return (uniqueId &&
|
|
39
|
+
(0, string_1.isUniqueId)(uniqueId) &&
|
|
40
|
+
uniqueId > fromUniqueId &&
|
|
41
|
+
uniqueId <= toUniqueId);
|
|
40
42
|
});
|
|
41
43
|
logger_1.logger.debug(`Found ${changedLines.length} changed lines`);
|
|
42
44
|
changedLines.forEach(line => {
|
|
@@ -44,4 +46,4 @@ const getChangedLinesSince = (sinceDate) => {
|
|
|
44
46
|
});
|
|
45
47
|
return changedLines;
|
|
46
48
|
};
|
|
47
|
-
exports.
|
|
49
|
+
exports.getChangedLinesBetween = getChangedLinesBetween;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDataFromLogLine.d.ts","sourceRoot":"","sources":["../../../../../src/lib/store/workDir/storage/getDataFromLogLine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDataFromLogLine.d.ts","sourceRoot":"","sources":["../../../../../src/lib/store/workDir/storage/getDataFromLogLine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,WAAW,GAAG,IAuC/D,CAAC"}
|