@bitblit/ratchet-node-only 4.0.419-alpha → 4.0.421-alpha
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/lib/build/index.d.ts +1 -0
- package/lib/build/index.js +2 -0
- package/lib/build/index.js.map +1 -0
- package/lib/build/ratchet-node-only-info.d.ts +5 -0
- package/lib/build/ratchet-node-only-info.js +15 -0
- package/lib/build/ratchet-node-only-info.js.map +1 -0
- package/lib/ci/apply-ci-env-variables-to-files.d.ts +7 -0
- package/lib/ci/apply-ci-env-variables-to-files.js +81 -0
- package/lib/ci/apply-ci-env-variables-to-files.js.map +1 -0
- package/lib/ci/ci-run-information-util.d.ts +8 -0
- package/lib/ci/ci-run-information-util.js +44 -0
- package/lib/ci/ci-run-information-util.js.map +1 -0
- package/lib/ci/ci-run-information.d.ts +9 -0
- package/lib/ci/ci-run-information.js +2 -0
- package/lib/ci/ci-run-information.js.map +1 -0
- package/lib/ci/index.d.ts +3 -0
- package/lib/ci/index.js +4 -0
- package/lib/ci/index.js.map +1 -0
- package/lib/cli/abstract-ratchet-cli-handler.d.ts +6 -0
- package/lib/cli/abstract-ratchet-cli-handler.js +31 -0
- package/lib/cli/abstract-ratchet-cli-handler.js.map +1 -0
- package/lib/cli/cli-ratchet.d.ts +6 -0
- package/lib/cli/cli-ratchet.js +29 -0
- package/lib/cli/cli-ratchet.js.map +1 -0
- package/lib/cli/index.d.ts +3 -0
- package/lib/cli/index.js +4 -0
- package/lib/cli/index.js.map +1 -0
- package/lib/cli/ratchet-cli-handler.d.ts +6 -0
- package/lib/cli/ratchet-cli-handler.js +20 -0
- package/lib/cli/ratchet-cli-handler.js.map +1 -0
- package/lib/csv/csv-ratchet.d.ts +24 -0
- package/lib/csv/csv-ratchet.js +159 -0
- package/lib/csv/csv-ratchet.js.map +1 -0
- package/lib/csv/index.d.ts +1 -0
- package/lib/csv/index.js +2 -0
- package/lib/csv/index.js.map +1 -0
- package/lib/export-builder/export-map-builder-config.d.ts +9 -0
- package/lib/export-builder/export-map-builder-config.js +2 -0
- package/lib/export-builder/export-map-builder-config.js.map +1 -0
- package/lib/export-builder/export-map-builder-target-config.d.ts +5 -0
- package/lib/export-builder/export-map-builder-target-config.js +2 -0
- package/lib/export-builder/export-map-builder-target-config.js.map +1 -0
- package/lib/export-builder/export-map-builder.d.ts +8 -0
- package/lib/export-builder/export-map-builder.js +138 -0
- package/lib/export-builder/export-map-builder.js.map +1 -0
- package/lib/export-builder/index.d.ts +3 -0
- package/lib/export-builder/index.js +4 -0
- package/lib/export-builder/index.js.map +1 -0
- package/lib/files/files-to-static-class.d.ts +5 -0
- package/lib/files/files-to-static-class.js +76 -0
- package/lib/files/files-to-static-class.js.map +1 -0
- package/lib/files/index.d.ts +2 -0
- package/lib/files/index.js +3 -0
- package/lib/files/index.js.map +1 -0
- package/lib/files/unique-file-rename.d.ts +4 -0
- package/lib/files/unique-file-rename.js +68 -0
- package/lib/files/unique-file-rename.js.map +1 -0
- package/lib/stream/buffer-writable.d.ts +7 -0
- package/lib/stream/buffer-writable.js +17 -0
- package/lib/stream/buffer-writable.js.map +1 -0
- package/lib/stream/index.d.ts +4 -0
- package/lib/stream/index.js +5 -0
- package/lib/stream/index.js.map +1 -0
- package/lib/stream/multi-stream.d.ts +6 -0
- package/lib/stream/multi-stream.js +13 -0
- package/lib/stream/multi-stream.js.map +1 -0
- package/lib/stream/node-stream-ratchet.d.ts +9 -0
- package/lib/stream/node-stream-ratchet.js +53 -0
- package/lib/stream/node-stream-ratchet.js.map +1 -0
- package/lib/stream/string-writable.d.ts +7 -0
- package/lib/stream/string-writable.js +15 -0
- package/lib/stream/string-writable.js.map +1 -0
- package/lib/third-party/git/git-ratchet.d.ts +26 -0
- package/lib/third-party/git/git-ratchet.js +71 -0
- package/lib/third-party/git/git-ratchet.js.map +1 -0
- package/lib/third-party/index.d.ts +2 -0
- package/lib/third-party/index.js +3 -0
- package/lib/third-party/index.js.map +1 -0
- package/lib/third-party/slack/publish-ci-release-to-slack.d.ts +4 -0
- package/lib/third-party/slack/publish-ci-release-to-slack.js +59 -0
- package/lib/third-party/slack/publish-ci-release-to-slack.js.map +1 -0
- package/package.json +10 -8
- package/lib/index.mjs +0 -2
- package/lib/types.d.ts +0 -149
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ratchet-node-only-info.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/build/index.ts"],"names":[],"mappings":"AAIA,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class RatchetNodeOnlyInfo {
|
|
2
|
+
constructor() { }
|
|
3
|
+
static buildInformation() {
|
|
4
|
+
const val = {
|
|
5
|
+
version: 'LOCAL-SNAPSHOT',
|
|
6
|
+
hash: 'LOCAL-HASH',
|
|
7
|
+
branch: 'LOCAL-BRANCH',
|
|
8
|
+
tag: 'LOCAL-TAG',
|
|
9
|
+
timeBuiltISO: 'LOCAL-TIME-ISO',
|
|
10
|
+
notes: 'LOCAL-NOTES',
|
|
11
|
+
};
|
|
12
|
+
return val;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ratchet-node-only-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ratchet-node-only-info.js","sourceRoot":"","sources":["../../src/build/ratchet-node-only-info.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IAG9B,gBAAuB,CAAC;IAEjB,MAAM,CAAC,gBAAgB;QAC5B,MAAM,GAAG,GAAqB;YAC5B,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,gBAAgB;YAC9B,KAAK,EAAE,aAAa;SACrB,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CiRunInformation } from './ci-run-information.js';
|
|
2
|
+
export declare class ApplyCiEnvVariablesToFiles {
|
|
3
|
+
static process(fileNames: string[], cfg: CiRunInformation, buildFinder?: string, branchFinder?: string, hashFinder?: string, tagFinder?: string, timeFinder?: string): Promise<number>;
|
|
4
|
+
static extractFileNames(): string[];
|
|
5
|
+
static extractVariableConfig(inName: string): CiRunInformation;
|
|
6
|
+
static runFromCliArgs(args: string[]): Promise<number>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { CiRunInformationUtil } from './ci-run-information-util.js';
|
|
3
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/lang/require-ratchet';
|
|
4
|
+
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
5
|
+
import { ErrorRatchet } from '@bitblit/ratchet-common/lang/error-ratchet';
|
|
6
|
+
import { StringRatchet } from '@bitblit/ratchet-common/lang/string-ratchet';
|
|
7
|
+
export class ApplyCiEnvVariablesToFiles {
|
|
8
|
+
static async process(fileNames, cfg, buildFinder = 'LOCAL-SNAPSHOT', branchFinder = 'LOCAL-BRANCH', hashFinder = 'LOCAL-HASH', tagFinder = 'LOCAL-TAG', timeFinder = 'LOCAL-TIME') {
|
|
9
|
+
RequireRatchet.notNullOrUndefined(cfg, 'cfg');
|
|
10
|
+
RequireRatchet.notNullOrUndefined(cfg.buildNumber, 'cfg.buildNumber');
|
|
11
|
+
RequireRatchet.notNullOrUndefined(cfg.localTime, 'cfg.localTime');
|
|
12
|
+
if (!fileNames) {
|
|
13
|
+
throw new Error('fileNames must be defined');
|
|
14
|
+
}
|
|
15
|
+
if (fileNames.length === 0) {
|
|
16
|
+
Logger.warn('Warning - no files supplied to process');
|
|
17
|
+
}
|
|
18
|
+
if (!cfg.buildNumber) {
|
|
19
|
+
ErrorRatchet.throwFormattedErr('%s env var not set - apparently not in a CI environment', cfg.buildNumber);
|
|
20
|
+
}
|
|
21
|
+
Logger.info('Processing files %j with run info %j', cfg);
|
|
22
|
+
let foundCount = 0;
|
|
23
|
+
fileNames.forEach((f) => {
|
|
24
|
+
if (!fs.existsSync(f)) {
|
|
25
|
+
Logger.error('Could not find file %s to process, continuing', f);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
try {
|
|
29
|
+
let contents = fs.readFileSync(f).toString();
|
|
30
|
+
contents = contents.split(buildFinder).join(cfg.buildNumber);
|
|
31
|
+
contents = contents.split(branchFinder).join(cfg.branch || '');
|
|
32
|
+
contents = contents.split(hashFinder).join(cfg.commitHash || '');
|
|
33
|
+
contents = contents.split(tagFinder).join(cfg.tag || '');
|
|
34
|
+
contents = contents.split(timeFinder).join(cfg.localTime || '');
|
|
35
|
+
fs.writeFileSync(f, contents);
|
|
36
|
+
foundCount++;
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
Logger.error('Error processing %s , continuing: %s', f, err, err);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return foundCount;
|
|
44
|
+
}
|
|
45
|
+
static extractFileNames() {
|
|
46
|
+
let rval = [];
|
|
47
|
+
if (process && process.argv && process.argv.length > 3) {
|
|
48
|
+
rval = process.argv.slice(3);
|
|
49
|
+
}
|
|
50
|
+
return rval;
|
|
51
|
+
}
|
|
52
|
+
static extractVariableConfig(inName) {
|
|
53
|
+
let rval = null;
|
|
54
|
+
const name = StringRatchet.trimToEmpty(inName).toLowerCase();
|
|
55
|
+
switch (name) {
|
|
56
|
+
case 'circleci':
|
|
57
|
+
rval = CiRunInformationUtil.createDefaultCircleCiRunInformation();
|
|
58
|
+
break;
|
|
59
|
+
case 'github':
|
|
60
|
+
rval = CiRunInformationUtil.createDefaultGithubActionsRunInformation();
|
|
61
|
+
break;
|
|
62
|
+
case 'test':
|
|
63
|
+
rval = CiRunInformationUtil.createTestingCiRunInformation();
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
ErrorRatchet.throwFormattedErr('Unrecognized env var config type : %s', name);
|
|
67
|
+
}
|
|
68
|
+
Logger.info('Using variable config : %j', rval);
|
|
69
|
+
return rval;
|
|
70
|
+
}
|
|
71
|
+
static async runFromCliArgs(args) {
|
|
72
|
+
if (args.length > 1) {
|
|
73
|
+
return ApplyCiEnvVariablesToFiles.process(args.slice(1), ApplyCiEnvVariablesToFiles.extractVariableConfig(args[0]));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
Logger.infoP('Usage : apply-ci-env-variables-to-files {file1} {file2} ...');
|
|
77
|
+
return -1;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=apply-ci-env-variables-to-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-ci-env-variables-to-files.js","sourceRoot":"","sources":["../../src/ci/apply-ci-env-variables-to-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,MAAM,OAAO,0BAA0B;IAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,CACzB,SAAmB,EACnB,GAAqB,EACrB,WAAW,GAAG,gBAAgB,EAC9B,YAAY,GAAG,cAAc,EAC7B,UAAU,GAAG,YAAY,EACzB,SAAS,GAAG,WAAW,EACvB,UAAU,GAAG,YAAY;QAEzB,cAAc,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9C,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACtE,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,YAAY,CAAC,iBAAiB,CAAC,yDAAyD,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7G,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;QAEzD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,IAAI,QAAQ,GAAW,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACrD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC7D,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;oBAC/D,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBACjE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;oBACzD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;oBAChE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBAC9B,UAAU,EAAE,CAAC;gBACf,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,gBAAgB;QAC5B,IAAI,IAAI,GAAa,EAAE,CAAC;QACxB,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,MAAc;QAChD,IAAI,IAAI,GAAqB,IAAI,CAAC;QAClC,MAAM,IAAI,GAAW,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACrE,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,UAAU;gBACb,IAAI,GAAG,oBAAoB,CAAC,mCAAmC,EAAE,CAAC;gBAClE,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,oBAAoB,CAAC,wCAAwC,EAAE,CAAC;gBACvE,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,GAAG,oBAAoB,CAAC,6BAA6B,EAAE,CAAC;gBAC5D,MAAM;YACR;gBACE,YAAY,CAAC,iBAAiB,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;QAEhD,OAAO,IAAI,CAAC;IACd,CAAC;IAMM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAc;QAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,0BAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;YAC5E,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CiRunInformation } from './ci-run-information.js';
|
|
2
|
+
export declare class CiRunInformationUtil {
|
|
3
|
+
static readonly DEFAULT_TIME_FORMAT: string;
|
|
4
|
+
static readonly DEFAULT_TIME_ZONE: string;
|
|
5
|
+
static createTestingCiRunInformation(timezone?: string): CiRunInformation;
|
|
6
|
+
static createDefaultCircleCiRunInformation(timezone?: string): CiRunInformation;
|
|
7
|
+
static createDefaultGithubActionsRunInformation(timezone?: string): CiRunInformation;
|
|
8
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { GlobalRatchet } from '@bitblit/ratchet-common/lang/global-ratchet';
|
|
3
|
+
export class CiRunInformationUtil {
|
|
4
|
+
static DEFAULT_TIME_FORMAT = 'yyyy-MM-dd HH:mm:ss a z';
|
|
5
|
+
static DEFAULT_TIME_ZONE = 'America/Los_Angeles';
|
|
6
|
+
static createTestingCiRunInformation(timezone = CiRunInformationUtil.DEFAULT_TIME_ZONE) {
|
|
7
|
+
const now = new Date().toISOString();
|
|
8
|
+
const rval = {
|
|
9
|
+
buildNumber: 'Test_buildNumberVar_' + now,
|
|
10
|
+
localTime: DateTime.local().setZone(timezone).toFormat(CiRunInformationUtil.DEFAULT_TIME_FORMAT),
|
|
11
|
+
branch: 'Test_branchVar_' + now,
|
|
12
|
+
tag: 'Test_tagVar_' + now,
|
|
13
|
+
commitHash: 'Test_hashVar_' + now,
|
|
14
|
+
userName: 'Test_userNameVar_' + now,
|
|
15
|
+
projectName: 'Test_projectNameVar_' + now,
|
|
16
|
+
};
|
|
17
|
+
return rval;
|
|
18
|
+
}
|
|
19
|
+
static createDefaultCircleCiRunInformation(timezone = CiRunInformationUtil.DEFAULT_TIME_ZONE) {
|
|
20
|
+
const rval = {
|
|
21
|
+
buildNumber: GlobalRatchet.fetchGlobalVar('CIRCLE_BUILD_NUM'),
|
|
22
|
+
branch: GlobalRatchet.fetchGlobalVar('CIRCLE_BRANCH'),
|
|
23
|
+
tag: GlobalRatchet.fetchGlobalVar('CIRCLE_TAG'),
|
|
24
|
+
commitHash: GlobalRatchet.fetchGlobalVar('CIRCLE_SHA1'),
|
|
25
|
+
localTime: DateTime.local().setZone(timezone).toFormat(CiRunInformationUtil.DEFAULT_TIME_FORMAT),
|
|
26
|
+
userName: GlobalRatchet.fetchGlobalVar('CIRCLE_USERNAME'),
|
|
27
|
+
projectName: GlobalRatchet.fetchGlobalVar('CIRCLE_PROJECT_REPONAME'),
|
|
28
|
+
};
|
|
29
|
+
return rval;
|
|
30
|
+
}
|
|
31
|
+
static createDefaultGithubActionsRunInformation(timezone = CiRunInformationUtil.DEFAULT_TIME_ZONE) {
|
|
32
|
+
const rval = {
|
|
33
|
+
buildNumber: GlobalRatchet.fetchGlobalVar('GITHUB_RUN_NUMBER'),
|
|
34
|
+
branch: GlobalRatchet.fetchGlobalVar('GITHUB_REF_NAME'),
|
|
35
|
+
tag: GlobalRatchet.fetchGlobalVar('GITHUB_REF_NAME'),
|
|
36
|
+
commitHash: GlobalRatchet.fetchGlobalVar('GITHUB_SHA'),
|
|
37
|
+
localTime: DateTime.local().setZone(timezone).toFormat(CiRunInformationUtil.DEFAULT_TIME_FORMAT),
|
|
38
|
+
userName: GlobalRatchet.fetchGlobalVar('GITHUB_ACTOR'),
|
|
39
|
+
projectName: GlobalRatchet.fetchGlobalVar('GITHUB_REPOSITORY'),
|
|
40
|
+
};
|
|
41
|
+
return rval;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=ci-run-information-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-run-information-util.js","sourceRoot":"","sources":["../../src/ci/ci-run-information-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,MAAM,OAAO,oBAAoB;IACxB,MAAM,CAAU,mBAAmB,GAAW,yBAAyB,CAAC;IACxE,MAAM,CAAU,iBAAiB,GAAW,qBAAqB,CAAC;IAElE,MAAM,CAAC,6BAA6B,CAAC,QAAQ,GAAG,oBAAoB,CAAC,iBAAiB;QAC3F,MAAM,GAAG,GAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAqB;YAC7B,WAAW,EAAE,sBAAsB,GAAG,GAAG;YACzC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;YAChG,MAAM,EAAE,iBAAiB,GAAG,GAAG;YAC/B,GAAG,EAAE,cAAc,GAAG,GAAG;YACzB,UAAU,EAAE,eAAe,GAAG,GAAG;YACjC,QAAQ,EAAE,mBAAmB,GAAG,GAAG;YACnC,WAAW,EAAE,sBAAsB,GAAG,GAAG;SAC1C,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,mCAAmC,CAAC,QAAQ,GAAG,oBAAoB,CAAC,iBAAiB;QACjG,MAAM,IAAI,GAAqB;YAC7B,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC;YAC7D,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC;YACrD,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC;YAC/C,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC;YACvD,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;YAChG,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACzD,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,yBAAyB,CAAC;SACrE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,wCAAwC,CAAC,QAAQ,GAAG,oBAAoB,CAAC,iBAAiB;QACtG,MAAM,IAAI,GAAqB;YAC7B,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,mBAAmB,CAAC;YAC9D,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACvD,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACpD,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC;YACtD,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;YAChG,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC;YACtD,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,mBAAmB,CAAC;SAC/D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-run-information.js","sourceRoot":"","sources":["../../src/ci/ci-run-information.ts"],"names":[],"mappings":""}
|
package/lib/ci/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ci/index.ts"],"names":[],"mappings":"AAIA,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BuildInformation } from '@bitblit/ratchet-common/build/build-information';
|
|
2
|
+
export declare abstract class AbstractRatchetCliHandler {
|
|
3
|
+
abstract fetchHandlerMap(): Record<string, any>;
|
|
4
|
+
abstract fetchVersionInfo(): BuildInformation;
|
|
5
|
+
findAndExecuteHandler(useSubstringMatch?: boolean): Promise<void>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CliRatchet } from './cli-ratchet.js';
|
|
2
|
+
export class AbstractRatchetCliHandler {
|
|
3
|
+
async findAndExecuteHandler(useSubstringMatch = false) {
|
|
4
|
+
let handler = null;
|
|
5
|
+
const versionArgs = CliRatchet.argsAfterCommand(['version'], useSubstringMatch);
|
|
6
|
+
if (versionArgs) {
|
|
7
|
+
console.log('Version : ' + JSON.stringify(this.fetchVersionInfo()));
|
|
8
|
+
console.log('Process: ' + JSON.stringify(process?.argv) + ' VersionArgs: ' + JSON.stringify(versionArgs));
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
const handlerMap = this.fetchHandlerMap();
|
|
12
|
+
const keys = Object.keys(handlerMap);
|
|
13
|
+
let remainArgs = null;
|
|
14
|
+
for (let i = 0; i < keys.length && !handler; i++) {
|
|
15
|
+
remainArgs = CliRatchet.argsAfterCommand([keys[i], keys[i] + '.js']);
|
|
16
|
+
if (remainArgs) {
|
|
17
|
+
handler = handlerMap[keys[i]];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (handler) {
|
|
21
|
+
console.debug('Running command with args ' + JSON.stringify(remainArgs));
|
|
22
|
+
await handler(remainArgs);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.log('Unrecognized command : ', process.argv);
|
|
26
|
+
console.log('Valid commands are : ', Object.keys(handlerMap));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=abstract-ratchet-cli-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-ratchet-cli-handler.js","sourceRoot":"","sources":["../../src/cli/abstract-ratchet-cli-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,OAAgB,yBAAyB;IAItC,KAAK,CAAC,qBAAqB,CAAC,oBAA6B,KAAK;QACnE,IAAI,OAAO,GAAQ,IAAI,CAAC;QACxB,MAAM,WAAW,GAAa,UAAU,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAC1F,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5G,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAwB,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAa,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,UAAU,GAAa,IAAI,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACrE,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBACzE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare class CliRatchet {
|
|
2
|
+
static isCalledFromCLI(filenames: string[], useSubstringMatch?: boolean): boolean;
|
|
3
|
+
static argsAfterCommand(filenames: string[], useSubstringMatch?: boolean): string[];
|
|
4
|
+
static isCalledFromCLISingle(filename: string, useSubstringMatch?: boolean): boolean;
|
|
5
|
+
static indexOfCommandArgument(filename: string, useSubstringMatch?: boolean): number;
|
|
6
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class CliRatchet {
|
|
2
|
+
static isCalledFromCLI(filenames, useSubstringMatch = false) {
|
|
3
|
+
let rval = false;
|
|
4
|
+
for (let i = 0; filenames && i < filenames.length && !rval; i++) {
|
|
5
|
+
rval = CliRatchet.indexOfCommandArgument(filenames[i], useSubstringMatch) !== null;
|
|
6
|
+
}
|
|
7
|
+
return rval;
|
|
8
|
+
}
|
|
9
|
+
static argsAfterCommand(filenames, useSubstringMatch = false) {
|
|
10
|
+
let rval = null;
|
|
11
|
+
if (process?.argv?.length && filenames?.length) {
|
|
12
|
+
let idx = null;
|
|
13
|
+
for (let i = 0; i < filenames.length && idx === null; i++) {
|
|
14
|
+
idx = CliRatchet.indexOfCommandArgument(filenames[i], useSubstringMatch);
|
|
15
|
+
}
|
|
16
|
+
rval = idx !== null ? process.argv.slice(idx + 1, process.argv.length) : null;
|
|
17
|
+
}
|
|
18
|
+
return rval;
|
|
19
|
+
}
|
|
20
|
+
static isCalledFromCLISingle(filename, useSubstringMatch = false) {
|
|
21
|
+
return CliRatchet.isCalledFromCLI([filename], useSubstringMatch);
|
|
22
|
+
}
|
|
23
|
+
static indexOfCommandArgument(filename, useSubstringMatch = false) {
|
|
24
|
+
const contFileName = process.argv.map((arg) => (!useSubstringMatch && arg === filename) || (useSubstringMatch && arg.indexOf(filename) !== -1));
|
|
25
|
+
const idx = contFileName.indexOf(true);
|
|
26
|
+
return idx === -1 ? null : idx;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=cli-ratchet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-ratchet.js","sourceRoot":"","sources":["../../src/cli/cli-ratchet.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IACd,MAAM,CAAC,eAAe,CAAC,SAAmB,EAAE,oBAA6B,KAAK;QACnF,IAAI,IAAI,GAAY,KAAK,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAChE,IAAI,GAAG,UAAU,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,KAAK,IAAI,CAAC;QACrF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,SAAmB,EAAE,oBAA6B,KAAK;QACpF,IAAI,IAAI,GAAa,IAAI,CAAC;QAC1B,IAAI,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;YAC/C,IAAI,GAAG,GAAW,IAAI,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,GAAG,GAAG,UAAU,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAgB,EAAE,oBAA6B,KAAK;QACtF,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,QAAgB,EAAE,oBAA6B,KAAK;QACvF,MAAM,YAAY,GAAc,OAAO,CAAC,IAAI,CAAC,GAAG,CAC9C,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,IAAI,GAAG,KAAK,QAAQ,CAAC,IAAI,CAAC,iBAAiB,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CACzG,CAAC;QACF,MAAM,GAAG,GAAW,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC;CACF"}
|
package/lib/cli/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAIA,cAAc,mCAAmC,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AbstractRatchetCliHandler } from './abstract-ratchet-cli-handler.js';
|
|
2
|
+
import { BuildInformation } from '@bitblit/ratchet-common/build/build-information';
|
|
3
|
+
export declare class RatchetCliHandler extends AbstractRatchetCliHandler {
|
|
4
|
+
fetchHandlerMap(): Record<string, any>;
|
|
5
|
+
fetchVersionInfo(): BuildInformation;
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RatchetNodeOnlyInfo } from '../build/ratchet-node-only-info.js';
|
|
2
|
+
import { ApplyCiEnvVariablesToFiles } from '../ci/apply-ci-env-variables-to-files.js';
|
|
3
|
+
import { FilesToStaticClass } from '../files/files-to-static-class.js';
|
|
4
|
+
import { PublishCiReleaseToSlack } from '../third-party/slack/publish-ci-release-to-slack.js';
|
|
5
|
+
import { AbstractRatchetCliHandler } from './abstract-ratchet-cli-handler.js';
|
|
6
|
+
import { UniqueFileRename } from '../files/unique-file-rename.js';
|
|
7
|
+
export class RatchetCliHandler extends AbstractRatchetCliHandler {
|
|
8
|
+
fetchHandlerMap() {
|
|
9
|
+
return {
|
|
10
|
+
'apply-ci-env-variables-to-files': ApplyCiEnvVariablesToFiles.runFromCliArgs,
|
|
11
|
+
'files-to-static-class': FilesToStaticClass.runFromCliArgs,
|
|
12
|
+
'publish-ci-release-to-slack': PublishCiReleaseToSlack.runFromCliArgs,
|
|
13
|
+
'unique-file-rename': UniqueFileRename.runFromCliArgs,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
fetchVersionInfo() {
|
|
17
|
+
return RatchetNodeOnlyInfo.buildInformation();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ratchet-cli-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ratchet-cli-handler.js","sourceRoot":"","sources":["../../src/cli/ratchet-cli-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,MAAM,OAAO,iBAAkB,SAAQ,yBAAyB;IAC9D,eAAe;QACb,OAAO;YACL,iCAAiC,EAAE,0BAA0B,CAAC,cAAc;YAC5E,uBAAuB,EAAE,kBAAkB,CAAC,cAAc;YAC1D,6BAA6B,EAAE,uBAAuB,CAAC,cAAc;YACrE,oBAAoB,EAAE,gBAAgB,CAAC,cAAc;SACtD,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,OAAO,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Options as ParseOptions } from 'csv-parse';
|
|
2
|
+
import { Options } from 'csv-stringify';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { Readable, Writable } from 'stream';
|
|
5
|
+
export declare class CsvRatchet {
|
|
6
|
+
static defaultParseOptions(): ParseOptions;
|
|
7
|
+
static defaultStringifyOptions(): Options;
|
|
8
|
+
static stringParse<T>(input: string, pf: ParseFunction<T>, opts?: ParseOptions): Promise<T[]>;
|
|
9
|
+
static streamParse<T>(readStream: Readable, pf: ParseFunction<T>, opts?: ParseOptions): Promise<T[]>;
|
|
10
|
+
static fileParse<T>(filename: string, pf: ParseFunction<T>): Promise<T[]>;
|
|
11
|
+
static generateCsvData(objectsToConvert: any[], opts?: Options): Promise<string>;
|
|
12
|
+
static generateComparison(file1: string, file2: string, keyField: string): Promise<ComparisonResults>;
|
|
13
|
+
static streamObjectsToCsv<T>(srcSubject: Subject<T>, output: Writable, inOpts?: Options): Promise<number>;
|
|
14
|
+
static defaultParseFunction<T>(row: any): T;
|
|
15
|
+
}
|
|
16
|
+
type ParseFunction<T> = (row: any) => T;
|
|
17
|
+
export interface ComparisonResults {
|
|
18
|
+
file1OnlyKeys: string[];
|
|
19
|
+
file2OnlyKeys: string[];
|
|
20
|
+
bothFilesKeys: string[];
|
|
21
|
+
file1Data: Map<string, any>;
|
|
22
|
+
file2Data: Map<string, any>;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { parse } from 'csv-parse';
|
|
3
|
+
import { stringify } from 'csv-stringify';
|
|
4
|
+
import { Readable } from 'stream';
|
|
5
|
+
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
6
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/lang/require-ratchet';
|
|
7
|
+
import { MapRatchet } from '@bitblit/ratchet-common/lang/map-ratchet';
|
|
8
|
+
export class CsvRatchet {
|
|
9
|
+
static defaultParseOptions() {
|
|
10
|
+
const rval = {
|
|
11
|
+
delimiter: ',',
|
|
12
|
+
columns: true,
|
|
13
|
+
};
|
|
14
|
+
return rval;
|
|
15
|
+
}
|
|
16
|
+
static defaultStringifyOptions() {
|
|
17
|
+
const rval = {
|
|
18
|
+
header: true,
|
|
19
|
+
};
|
|
20
|
+
return rval;
|
|
21
|
+
}
|
|
22
|
+
static async stringParse(input, pf, opts = CsvRatchet.defaultParseOptions()) {
|
|
23
|
+
return CsvRatchet.streamParse(Readable.from(input), pf, opts);
|
|
24
|
+
}
|
|
25
|
+
static async streamParse(readStream, pf, opts = CsvRatchet.defaultParseOptions()) {
|
|
26
|
+
return new Promise((res, rej) => {
|
|
27
|
+
const rval = [];
|
|
28
|
+
const p = parse(opts);
|
|
29
|
+
p.on('readable', () => {
|
|
30
|
+
let record = p.read();
|
|
31
|
+
while (record) {
|
|
32
|
+
const newVal = pf(record);
|
|
33
|
+
if (newVal) {
|
|
34
|
+
rval.push(newVal);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
}
|
|
38
|
+
record = p.read();
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
p.on('error', (err) => {
|
|
42
|
+
rej(err);
|
|
43
|
+
});
|
|
44
|
+
p.on('end', () => {
|
|
45
|
+
res(rval);
|
|
46
|
+
});
|
|
47
|
+
readStream.pipe(p);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
static async fileParse(filename, pf) {
|
|
51
|
+
const readStream = fs.createReadStream(filename);
|
|
52
|
+
return CsvRatchet.streamParse(readStream, pf);
|
|
53
|
+
}
|
|
54
|
+
static async generateCsvData(objectsToConvert, opts = CsvRatchet.defaultStringifyOptions()) {
|
|
55
|
+
Logger.silly('Converting %d items into csv file', objectsToConvert.length);
|
|
56
|
+
const genProm = new Promise((res, rej) => {
|
|
57
|
+
stringify(objectsToConvert, opts, function (err, data) {
|
|
58
|
+
if (err) {
|
|
59
|
+
rej(err);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
res(data);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
return genProm;
|
|
67
|
+
}
|
|
68
|
+
static async generateComparison(file1, file2, keyField) {
|
|
69
|
+
RequireRatchet.notNullOrUndefined(file1, 'file1');
|
|
70
|
+
RequireRatchet.notNullOrUndefined(file2, 'file2');
|
|
71
|
+
RequireRatchet.notNullOrUndefined(keyField, 'keyField');
|
|
72
|
+
Logger.info('Created csv compare with files %s and %s keyed on %s', file1, file2, keyField);
|
|
73
|
+
let file1Parsed = await this.streamParse(fs.createReadStream(file1), (f) => {
|
|
74
|
+
f;
|
|
75
|
+
});
|
|
76
|
+
file1Parsed = file1Parsed.map((m) => {
|
|
77
|
+
const next = {};
|
|
78
|
+
Object.keys(m).forEach((k) => {
|
|
79
|
+
next[k.trim()] = m[k];
|
|
80
|
+
});
|
|
81
|
+
return next;
|
|
82
|
+
});
|
|
83
|
+
const file1Mapped = MapRatchet.mapByUniqueProperty(file1Parsed, keyField);
|
|
84
|
+
let file2Parsed = await this.streamParse(fs.createReadStream(file2), (f) => {
|
|
85
|
+
f;
|
|
86
|
+
});
|
|
87
|
+
file2Parsed = file2Parsed.map((m) => {
|
|
88
|
+
const next = {};
|
|
89
|
+
Object.keys(m).forEach((k) => {
|
|
90
|
+
next[k.trim()] = m[k];
|
|
91
|
+
});
|
|
92
|
+
return next;
|
|
93
|
+
});
|
|
94
|
+
const file2Mapped = MapRatchet.mapByUniqueProperty(file2Parsed, keyField);
|
|
95
|
+
const f1Only = [];
|
|
96
|
+
const f2Only = [];
|
|
97
|
+
const both = [];
|
|
98
|
+
Array.from(file1Mapped.keys()).forEach((f1k) => {
|
|
99
|
+
if (file2Mapped.has(f1k)) {
|
|
100
|
+
both.push(f1k);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
f1Only.push(f1k);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
Array.from(file2Mapped.keys()).forEach((f1k) => {
|
|
107
|
+
if (!file1Mapped.has(f1k)) {
|
|
108
|
+
f2Only.push(f1k);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
const rval = {
|
|
112
|
+
file1Data: file1Mapped,
|
|
113
|
+
file2Data: file2Mapped,
|
|
114
|
+
file1OnlyKeys: f1Only,
|
|
115
|
+
file2OnlyKeys: f2Only,
|
|
116
|
+
bothFilesKeys: both,
|
|
117
|
+
};
|
|
118
|
+
return rval;
|
|
119
|
+
}
|
|
120
|
+
static async streamObjectsToCsv(srcSubject, output, inOpts) {
|
|
121
|
+
RequireRatchet.notNullOrUndefined(srcSubject, 'srcSubject');
|
|
122
|
+
RequireRatchet.notNullOrUndefined(output, 'output');
|
|
123
|
+
const opts = inOpts || CsvRatchet.defaultStringifyOptions();
|
|
124
|
+
Logger.silly('Running pipe to csv output : %j', opts);
|
|
125
|
+
let count = 0;
|
|
126
|
+
const genProm = new Promise((res, rej) => {
|
|
127
|
+
const stringifier = stringify(opts);
|
|
128
|
+
stringifier.on('error', (err) => {
|
|
129
|
+
if (sub) {
|
|
130
|
+
sub.unsubscribe();
|
|
131
|
+
}
|
|
132
|
+
rej(err);
|
|
133
|
+
});
|
|
134
|
+
stringifier.on('finish', () => {
|
|
135
|
+
if (sub) {
|
|
136
|
+
sub.unsubscribe();
|
|
137
|
+
}
|
|
138
|
+
res(count);
|
|
139
|
+
});
|
|
140
|
+
stringifier.pipe(output);
|
|
141
|
+
const sub = srcSubject.subscribe((next) => {
|
|
142
|
+
Logger.debug('Adding %j to csv', next);
|
|
143
|
+
count++;
|
|
144
|
+
stringifier.write(next);
|
|
145
|
+
}, (err) => {
|
|
146
|
+
Logger.error('Error generating : %s', err);
|
|
147
|
+
rej(err);
|
|
148
|
+
}, () => {
|
|
149
|
+
Logger.debug('Finished');
|
|
150
|
+
stringifier.end();
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
return genProm;
|
|
154
|
+
}
|
|
155
|
+
static defaultParseFunction(row) {
|
|
156
|
+
return row;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=csv-ratchet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv-ratchet.js","sourceRoot":"","sources":["../../src/csv/csv-ratchet.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAA2B,KAAK,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAW,SAAS,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAY,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAEtE,MAAM,OAAO,UAAU;IACd,MAAM,CAAC,mBAAmB;QAC/B,MAAM,IAAI,GAAiB;YACzB,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,IAAI;SACd,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,uBAAuB;QACnC,MAAM,IAAI,GAAY;YACpB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,WAAW,CAC7B,KAAa,EACb,EAAoB,EACpB,OAAqB,UAAU,CAAC,mBAAmB,EAAE;QAErD,OAAO,UAAU,CAAC,WAAW,CAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,WAAW,CAC7B,UAAoB,EACpB,EAAoB,EACpB,OAAqB,UAAU,CAAC,mBAAmB,EAAE;QAErD,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAEtB,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;gBACpB,IAAI,MAAM,GAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3B,OAAO,MAAM,EAAE,CAAC;oBACd,MAAM,MAAM,GAAM,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC7B,IAAI,MAAM,EAAE,CAAC;wBACX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACpB,CAAC;yBAAM,CAAC;oBAER,CAAC;oBACD,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACpB,GAAG,CAAC,GAAG,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACf,GAAG,CAAC,IAAI,CAAC,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAI,QAAgB,EAAE,EAAoB;QACrE,MAAM,UAAU,GAAe,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7D,OAAO,UAAU,CAAC,WAAW,CAAI,UAAU,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,gBAAuB,EAAE,OAAgB,UAAU,CAAC,uBAAuB,EAAE;QAC/G,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAoB,IAAI,OAAO,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChE,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,IAAI;gBACnD,IAAI,GAAG,EAAE,CAAC;oBACR,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,KAAa,EAAE,QAAgB;QACnF,cAAc,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClD,cAAc,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClD,cAAc,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAExD,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE5F,IAAI,WAAW,GAAU,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAChF,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,MAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAqB,UAAU,CAAC,mBAAmB,CAAc,WAAW,EAAE,QAAQ,CAAC,CAAC;QAGzG,IAAI,WAAW,GAAU,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAChF,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAQH,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,MAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAqB,UAAU,CAAC,mBAAmB,CAAc,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEzG,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7C,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAsB;YAC9B,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,WAAW;YACtB,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE,IAAI;SACpB,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAI,UAAsB,EAAE,MAAgB,EAAE,MAAgB;QAClG,cAAc,CAAC,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC5D,cAAc,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAI,GAAY,MAAM,IAAI,UAAU,CAAC,uBAAuB,EAAE,CAAC;QAErE,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,KAAK,GAAW,CAAC,CAAC;QACtB,MAAM,OAAO,GAAoB,IAAI,OAAO,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChE,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC9B,IAAI,GAAG,EAAE,CAAC;oBACR,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAC5B,IAAI,GAAG,EAAE,CAAC;oBACR,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,CAAC;gBACD,GAAG,CAAC,KAAK,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEzB,MAAM,GAAG,GAAiB,UAAU,CAAC,SAAS,CAC5C,CAAC,IAAI,EAAE,EAAE;gBACP,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBACvC,KAAK,EAAE,CAAC;gBACR,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;gBAC3C,GAAG,CAAC,GAAG,CAAC,CAAC;YACX,CAAC,EACD,GAAG,EAAE;gBACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACzB,WAAW,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAI,GAAQ;QAC5C,OAAO,GAAQ,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './csv-ratchet.js';
|
package/lib/csv/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/csv/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExportMapBuilderTargetConfig } from './export-map-builder-target-config.js';
|
|
2
|
+
export interface ExportMapBuilderConfig {
|
|
3
|
+
sourceRoot?: string;
|
|
4
|
+
targets?: ExportMapBuilderTargetConfig[];
|
|
5
|
+
includes?: RegExp[];
|
|
6
|
+
excludes?: RegExp[];
|
|
7
|
+
targetPackageJsonFile?: string;
|
|
8
|
+
dryRun?: boolean;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-map-builder-config.js","sourceRoot":"","sources":["../../src/export-builder/export-map-builder-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-map-builder-target-config.js","sourceRoot":"","sources":["../../src/export-builder/export-map-builder-target-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExportMapBuilderConfig } from './export-map-builder-config.js';
|
|
2
|
+
export declare class ExportMapBuilder {
|
|
3
|
+
static process(cfg: ExportMapBuilderConfig): Record<string, any>;
|
|
4
|
+
private static pathMatchesOneOfRegExp;
|
|
5
|
+
private static findExports;
|
|
6
|
+
private static processSingleFile;
|
|
7
|
+
static runFromCliArgs(args: string[]): Promise<Record<string, any>>;
|
|
8
|
+
}
|