@neurodevs/meta-node 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/__tests__/modules/NodeAutomodule.test.d.ts +20 -0
- package/build/__tests__/modules/NodeAutomodule.test.js +166 -0
- package/build/__tests__/modules/NodeAutomodule.test.js.map +1 -0
- package/build/__tests__/modules/PackageJsonUpdater.test.d.ts +7 -0
- package/build/__tests__/modules/PackageJsonUpdater.test.js +63 -0
- package/build/__tests__/modules/PackageJsonUpdater.test.js.map +1 -0
- package/build/index.d.ts +8 -2
- package/build/index.js +17 -6
- package/build/index.js.map +1 -1
- package/build/modules/GitAutocloner.d.ts +5 -6
- package/build/modules/GitAutocloner.js +14 -17
- package/build/modules/GitAutocloner.js.map +1 -1
- package/build/modules/NodeAutomodule.d.ts +34 -0
- package/build/modules/NodeAutomodule.js +102 -0
- package/build/modules/NodeAutomodule.js.map +1 -0
- package/build/modules/PackageJsonUpdater.d.ts +8 -0
- package/build/modules/PackageJsonUpdater.js +10 -0
- package/build/modules/PackageJsonUpdater.js.map +1 -0
- package/build/modules/pathExists.d.ts +1 -0
- package/build/modules/pathExists.js +14 -0
- package/build/modules/pathExists.js.map +1 -0
- package/build/scripts/runAutomodule.d.ts +1 -0
- package/build/scripts/runAutomodule.js +22 -0
- package/build/scripts/runAutomodule.js.map +1 -0
- package/build/scripts/runAutopackage.js +3 -3
- package/build/scripts/runAutopackage.js.map +1 -1
- package/build/testDoubles/Automodule/FakeAutomodule.d.ts +8 -0
- package/build/testDoubles/Automodule/FakeAutomodule.js +18 -0
- package/build/testDoubles/Automodule/FakeAutomodule.js.map +1 -0
- package/build/testDoubles/fs/fakePathExists.d.ts +3 -0
- package/build/testDoubles/fs/fakePathExists.js +13 -0
- package/build/testDoubles/fs/fakePathExists.js.map +1 -0
- package/build/testDoubles/fs/fakeWriteFile.d.ts +6 -0
- package/build/testDoubles/fs/fakeWriteFile.js +13 -0
- package/build/testDoubles/fs/fakeWriteFile.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/modules/NodeAutomodule.test.ts +160 -0
- package/src/__tests__/modules/PackageJsonUpdater.test.ts +23 -0
- package/src/index.ts +18 -5
- package/src/modules/GitAutocloner.ts +18 -22
- package/src/modules/NodeAutomodule.ts +136 -0
- package/src/modules/PackageJsonUpdater.ts +13 -0
- package/src/modules/pathExists.ts +10 -0
- package/src/scripts/runAutomodule.ts +22 -0
- package/src/scripts/runAutopackage.ts +3 -3
- package/src/testDoubles/Automodule/FakeAutomodule.ts +19 -0
- package/src/testDoubles/fs/fakePathExists.ts +9 -0
- package/src/testDoubles/fs/fakeWriteFile.ts +9 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import AbstractSpruceTest from '@sprucelabs/test-utils';
|
|
2
|
+
export default class NodeAutomoduleTest extends AbstractSpruceTest {
|
|
3
|
+
private static instance;
|
|
4
|
+
protected static beforeEach(): Promise<void>;
|
|
5
|
+
protected static createsInstance(): Promise<void>;
|
|
6
|
+
protected static runThrowsIfTestSaveDirMissing(): Promise<void>;
|
|
7
|
+
protected static runThrowsIfModuleSaveDirMissing(): Promise<void>;
|
|
8
|
+
protected static createsTestFileAsExpected(): Promise<void>;
|
|
9
|
+
protected static createsModuleFileAsExpected(): Promise<void>;
|
|
10
|
+
private static run;
|
|
11
|
+
private static setFakePathExists;
|
|
12
|
+
private static setFakeWriteFile;
|
|
13
|
+
private static readonly testSaveDir;
|
|
14
|
+
private static readonly moduleSaveDir;
|
|
15
|
+
private static readonly interfaceName;
|
|
16
|
+
private static readonly implName;
|
|
17
|
+
private static get testFilePattern();
|
|
18
|
+
private static get moduleFilePattern();
|
|
19
|
+
private static NodeAutomodule;
|
|
20
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
const test_utils_1 = __importStar(require("@sprucelabs/test-utils"));
|
|
46
|
+
const NodeAutomodule_1 = __importDefault(require("../../modules/NodeAutomodule"));
|
|
47
|
+
const fakePathExists_1 = __importStar(require("../../testDoubles/fs/fakePathExists"));
|
|
48
|
+
const fakeWriteFile_1 = __importStar(require("../../testDoubles/fs/fakeWriteFile"));
|
|
49
|
+
class NodeAutomoduleTest extends test_utils_1.default {
|
|
50
|
+
static async beforeEach() {
|
|
51
|
+
await super.beforeEach();
|
|
52
|
+
this.setFakePathExists();
|
|
53
|
+
this.setFakeWriteFile();
|
|
54
|
+
this.instance = this.NodeAutomodule();
|
|
55
|
+
}
|
|
56
|
+
static async createsInstance() {
|
|
57
|
+
test_utils_1.assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
58
|
+
}
|
|
59
|
+
static async runThrowsIfTestSaveDirMissing() {
|
|
60
|
+
(0, fakePathExists_1.setPathShouldExist)(this.testSaveDir, false);
|
|
61
|
+
const err = await test_utils_1.assert.doesThrowAsync(async () => await this.run());
|
|
62
|
+
test_utils_1.assert.isEqual(err.message, `testSaveDir does not exist: ${this.testSaveDir}!`, 'Did not receive the expected error!');
|
|
63
|
+
}
|
|
64
|
+
static async runThrowsIfModuleSaveDirMissing() {
|
|
65
|
+
(0, fakePathExists_1.setPathShouldExist)(this.moduleSaveDir, false);
|
|
66
|
+
const err = await test_utils_1.assert.doesThrowAsync(async () => await this.run());
|
|
67
|
+
test_utils_1.assert.isEqual(err.message, `moduleSaveDir does not exist: ${this.moduleSaveDir}!`, 'Did not receive the expected error!');
|
|
68
|
+
}
|
|
69
|
+
static async createsTestFileAsExpected() {
|
|
70
|
+
await this.run();
|
|
71
|
+
test_utils_1.assert.isEqualDeep(fakeWriteFile_1.callsToWriteFile[0], {
|
|
72
|
+
file: `${this.testSaveDir}/${this.implName}.test.ts`,
|
|
73
|
+
data: this.testFilePattern,
|
|
74
|
+
}, 'Did not write expected test file!');
|
|
75
|
+
}
|
|
76
|
+
static async createsModuleFileAsExpected() {
|
|
77
|
+
await this.run();
|
|
78
|
+
test_utils_1.assert.isEqualDeep(fakeWriteFile_1.callsToWriteFile[1], {
|
|
79
|
+
file: `${this.moduleSaveDir}/${this.implName}.ts`,
|
|
80
|
+
data: this.moduleFilePattern,
|
|
81
|
+
}, 'Did not write expected module file!');
|
|
82
|
+
}
|
|
83
|
+
static async run() {
|
|
84
|
+
return await this.instance.run();
|
|
85
|
+
}
|
|
86
|
+
static setFakePathExists() {
|
|
87
|
+
NodeAutomodule_1.default.pathExists = fakePathExists_1.default;
|
|
88
|
+
(0, fakePathExists_1.setPathShouldExist)(this.testSaveDir, true);
|
|
89
|
+
(0, fakePathExists_1.setPathShouldExist)(this.moduleSaveDir, true);
|
|
90
|
+
}
|
|
91
|
+
static setFakeWriteFile() {
|
|
92
|
+
NodeAutomodule_1.default.writeFile = fakeWriteFile_1.default;
|
|
93
|
+
(0, fakeWriteFile_1.resetCallsToWriteFile)();
|
|
94
|
+
}
|
|
95
|
+
static get testFilePattern() {
|
|
96
|
+
return `
|
|
97
|
+
import AbstractSpruceTest, { test, assert } from '@sprucelabs/test-utils'
|
|
98
|
+
import ${this.implName}, { ${this.interfaceName} } from '../../modules/${this.implName}'
|
|
99
|
+
|
|
100
|
+
export default class ${this.implName}Test extends AbstractSpruceTest {
|
|
101
|
+
private static instance: ${this.interfaceName}
|
|
102
|
+
|
|
103
|
+
protected static async beforeEach() {
|
|
104
|
+
await super.beforeEach()
|
|
105
|
+
|
|
106
|
+
this.instance = this.${this.implName}()
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@test()
|
|
110
|
+
protected static async createsInstance() {
|
|
111
|
+
assert.isTruthy(this.instance, 'Failed to create instance!')
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
private static ${this.implName}() {
|
|
115
|
+
return ${this.implName}.Create()
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
`;
|
|
119
|
+
}
|
|
120
|
+
static get moduleFilePattern() {
|
|
121
|
+
return `
|
|
122
|
+
export default class ${this.implName} implements ${this.interfaceName} {
|
|
123
|
+
public static Class?: ${this.interfaceName}Constructor
|
|
124
|
+
|
|
125
|
+
protected constructor() {}
|
|
126
|
+
|
|
127
|
+
public static Create() {
|
|
128
|
+
return new (this.Class ?? this)()
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface ${this.interfaceName} {}
|
|
133
|
+
|
|
134
|
+
export type ${this.interfaceName}Constructor = new () => ${this.interfaceName}
|
|
135
|
+
`;
|
|
136
|
+
}
|
|
137
|
+
static NodeAutomodule() {
|
|
138
|
+
return NodeAutomodule_1.default.Create({
|
|
139
|
+
testSaveDir: this.testSaveDir,
|
|
140
|
+
moduleSaveDir: this.moduleSaveDir,
|
|
141
|
+
interfaceName: this.interfaceName,
|
|
142
|
+
implName: this.implName,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
NodeAutomoduleTest.testSaveDir = (0, test_utils_1.generateId)();
|
|
147
|
+
NodeAutomoduleTest.moduleSaveDir = (0, test_utils_1.generateId)();
|
|
148
|
+
NodeAutomoduleTest.interfaceName = (0, test_utils_1.generateId)();
|
|
149
|
+
NodeAutomoduleTest.implName = (0, test_utils_1.generateId)();
|
|
150
|
+
exports.default = NodeAutomoduleTest;
|
|
151
|
+
__decorate([
|
|
152
|
+
(0, test_utils_1.test)()
|
|
153
|
+
], NodeAutomoduleTest, "createsInstance", null);
|
|
154
|
+
__decorate([
|
|
155
|
+
(0, test_utils_1.test)()
|
|
156
|
+
], NodeAutomoduleTest, "runThrowsIfTestSaveDirMissing", null);
|
|
157
|
+
__decorate([
|
|
158
|
+
(0, test_utils_1.test)()
|
|
159
|
+
], NodeAutomoduleTest, "runThrowsIfModuleSaveDirMissing", null);
|
|
160
|
+
__decorate([
|
|
161
|
+
(0, test_utils_1.test)()
|
|
162
|
+
], NodeAutomoduleTest, "createsTestFileAsExpected", null);
|
|
163
|
+
__decorate([
|
|
164
|
+
(0, test_utils_1.test)()
|
|
165
|
+
], NodeAutomoduleTest, "createsModuleFileAsExpected", null);
|
|
166
|
+
//# sourceMappingURL=NodeAutomodule.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeAutomodule.test.js","sourceRoot":"","sources":["../../../src/__tests__/modules/NodeAutomodule.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AbstractSpruceTest from '@sprucelabs/test-utils';
|
|
2
|
+
export default class PackageJsonUpdaterTest extends AbstractSpruceTest {
|
|
3
|
+
private static instance;
|
|
4
|
+
protected static beforeEach(): Promise<void>;
|
|
5
|
+
protected static createsInstance(): Promise<void>;
|
|
6
|
+
private static PackageJsonUpdater;
|
|
7
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
const test_utils_1 = __importStar(require("@sprucelabs/test-utils"));
|
|
46
|
+
const PackageJsonUpdater_1 = __importDefault(require("../../modules/PackageJsonUpdater"));
|
|
47
|
+
class PackageJsonUpdaterTest extends test_utils_1.default {
|
|
48
|
+
static async beforeEach() {
|
|
49
|
+
await super.beforeEach();
|
|
50
|
+
this.instance = this.PackageJsonUpdater();
|
|
51
|
+
}
|
|
52
|
+
static async createsInstance() {
|
|
53
|
+
test_utils_1.assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
54
|
+
}
|
|
55
|
+
static PackageJsonUpdater() {
|
|
56
|
+
return PackageJsonUpdater_1.default.Create();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.default = PackageJsonUpdaterTest;
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, test_utils_1.test)()
|
|
62
|
+
], PackageJsonUpdaterTest, "createsInstance", null);
|
|
63
|
+
//# sourceMappingURL=PackageJsonUpdater.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageJsonUpdater.test.js","sourceRoot":"","sources":["../../../src/__tests__/modules/PackageJsonUpdater.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAyE;AACzE,0FAEyC;AAEzC,MAAqB,sBAAuB,SAAQ,oBAAkB;IAGxD,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC7C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,mBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IAChE,CAAC;IAEO,MAAM,CAAC,kBAAkB;QAC7B,OAAO,4BAAkB,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;CACJ;AAjBD,yCAiBC;AAP0B;IADtB,IAAA,iBAAI,GAAE;mDAGN"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
export { default as NpmAutopackage } from './modules/NpmAutopackage';
|
|
2
|
-
export * from './modules/NpmAutopackage';
|
|
3
1
|
export { default as GitAutocloner } from './modules/GitAutocloner';
|
|
4
2
|
export * from './modules/GitAutocloner';
|
|
5
3
|
export { default as FakeAutocloner } from './testDoubles/Autocloner/FakeAutocloner';
|
|
6
4
|
export * from './testDoubles/Autocloner/FakeAutocloner';
|
|
5
|
+
export { default as NodeAutomodule } from './modules/NodeAutomodule';
|
|
6
|
+
export * from './modules/NodeAutomodule';
|
|
7
|
+
export { default as FakeAutomodule } from './testDoubles/Automodule/FakeAutomodule';
|
|
8
|
+
export * from './testDoubles/Automodule/FakeAutomodule';
|
|
9
|
+
export { default as NpmAutopackage } from './modules/NpmAutopackage';
|
|
10
|
+
export * from './modules/NpmAutopackage';
|
|
11
|
+
export { default as PackageJsonUpdater } from './modules/PackageJsonUpdater';
|
|
12
|
+
export * from './modules/PackageJsonUpdater';
|
package/build/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
//
|
|
2
|
+
// Autocloner
|
|
3
3
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
4
|
if (k2 === undefined) k2 = k;
|
|
5
5
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -18,15 +18,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
18
18
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.
|
|
22
|
-
var NpmAutopackage_1 = require("./modules/NpmAutopackage");
|
|
23
|
-
Object.defineProperty(exports, "NpmAutopackage", { enumerable: true, get: function () { return __importDefault(NpmAutopackage_1).default; } });
|
|
24
|
-
__exportStar(require("./modules/NpmAutopackage"), exports);
|
|
25
|
-
// Autocloner
|
|
21
|
+
exports.PackageJsonUpdater = exports.NpmAutopackage = exports.FakeAutomodule = exports.NodeAutomodule = exports.FakeAutocloner = exports.GitAutocloner = void 0;
|
|
26
22
|
var GitAutocloner_1 = require("./modules/GitAutocloner");
|
|
27
23
|
Object.defineProperty(exports, "GitAutocloner", { enumerable: true, get: function () { return __importDefault(GitAutocloner_1).default; } });
|
|
28
24
|
__exportStar(require("./modules/GitAutocloner"), exports);
|
|
29
25
|
var FakeAutocloner_1 = require("./testDoubles/Autocloner/FakeAutocloner");
|
|
30
26
|
Object.defineProperty(exports, "FakeAutocloner", { enumerable: true, get: function () { return __importDefault(FakeAutocloner_1).default; } });
|
|
31
27
|
__exportStar(require("./testDoubles/Autocloner/FakeAutocloner"), exports);
|
|
28
|
+
// Automodule
|
|
29
|
+
var NodeAutomodule_1 = require("./modules/NodeAutomodule");
|
|
30
|
+
Object.defineProperty(exports, "NodeAutomodule", { enumerable: true, get: function () { return __importDefault(NodeAutomodule_1).default; } });
|
|
31
|
+
__exportStar(require("./modules/NodeAutomodule"), exports);
|
|
32
|
+
var FakeAutomodule_1 = require("./testDoubles/Automodule/FakeAutomodule");
|
|
33
|
+
Object.defineProperty(exports, "FakeAutomodule", { enumerable: true, get: function () { return __importDefault(FakeAutomodule_1).default; } });
|
|
34
|
+
__exportStar(require("./testDoubles/Automodule/FakeAutomodule"), exports);
|
|
35
|
+
// Autopackage
|
|
36
|
+
var NpmAutopackage_1 = require("./modules/NpmAutopackage");
|
|
37
|
+
Object.defineProperty(exports, "NpmAutopackage", { enumerable: true, get: function () { return __importDefault(NpmAutopackage_1).default; } });
|
|
38
|
+
__exportStar(require("./modules/NpmAutopackage"), exports);
|
|
39
|
+
// PackageJsonUpdater
|
|
40
|
+
var PackageJsonUpdater_1 = require("./modules/PackageJsonUpdater");
|
|
41
|
+
Object.defineProperty(exports, "PackageJsonUpdater", { enumerable: true, get: function () { return __importDefault(PackageJsonUpdater_1).default; } });
|
|
42
|
+
__exportStar(require("./modules/PackageJsonUpdater"), exports);
|
|
32
43
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,aAAa;;;;;;;;;;;;;;;;;;;;AAEb,yDAAkE;AAAzD,+HAAA,OAAO,OAAiB;AACjC,0DAAuC;AAEvC,0EAAmF;AAA1E,iIAAA,OAAO,OAAkB;AAClC,0EAAuD;AAEvD,aAAa;AAEb,2DAAoE;AAA3D,iIAAA,OAAO,OAAkB;AAClC,2DAAwC;AAExC,0EAAmF;AAA1E,iIAAA,OAAO,OAAkB;AAClC,0EAAuD;AAEvD,cAAc;AAEd,2DAAoE;AAA3D,iIAAA,OAAO,OAAkB;AAClC,2DAAwC;AAExC,qBAAqB;AAErB,mEAA4E;AAAnE,yIAAA,OAAO,OAAsB;AACtC,+DAA4C"}
|
|
@@ -13,20 +13,19 @@ export default class GitAutocloner implements Autocloner {
|
|
|
13
13
|
static Create(): Autocloner;
|
|
14
14
|
run(options: AutoclonerOptions): Promise<void>;
|
|
15
15
|
private throwIfDirPathDoesNotExist;
|
|
16
|
-
private get
|
|
16
|
+
private get dirPathExists();
|
|
17
|
+
private throwDirPathDoesNotExist;
|
|
17
18
|
private changeDirectoryToDirPath;
|
|
18
19
|
private cloneReposFromUrls;
|
|
19
20
|
private cloneCurrentUrl;
|
|
21
|
+
private get currentRepoExists();
|
|
22
|
+
private get currentRepoName();
|
|
23
|
+
private readonly regexForRepoName;
|
|
20
24
|
private tryToCloneRepo;
|
|
21
25
|
private throwGitCloneFailed;
|
|
22
26
|
private get gitCloneFailedMessage();
|
|
23
|
-
private get dirPathExists();
|
|
24
|
-
private get currentRepoName();
|
|
25
|
-
private get currentRepoExists();
|
|
26
|
-
private get repoExistsMessage();
|
|
27
27
|
private get existsSync();
|
|
28
28
|
private get execSync();
|
|
29
|
-
private readonly regex;
|
|
30
29
|
}
|
|
31
30
|
export interface Autocloner {
|
|
32
31
|
run(options: AutoclonerOptions): Promise<void>;
|
|
@@ -6,7 +6,7 @@ const process_1 = require("process");
|
|
|
6
6
|
class GitAutocloner {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.log = console;
|
|
9
|
-
this.
|
|
9
|
+
this.regexForRepoName = /\/([a-zA-Z0-9_.-]+)\.git/;
|
|
10
10
|
}
|
|
11
11
|
static Create() {
|
|
12
12
|
return new (this.Class ?? this)();
|
|
@@ -21,11 +21,14 @@ class GitAutocloner {
|
|
|
21
21
|
}
|
|
22
22
|
throwIfDirPathDoesNotExist() {
|
|
23
23
|
if (!this.dirPathExists) {
|
|
24
|
-
|
|
24
|
+
this.throwDirPathDoesNotExist();
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
get
|
|
28
|
-
return
|
|
27
|
+
get dirPathExists() {
|
|
28
|
+
return this.existsSync(this.dirPath);
|
|
29
|
+
}
|
|
30
|
+
throwDirPathDoesNotExist() {
|
|
31
|
+
throw new Error(`dirPath does not exist: ${this.dirPath}!`);
|
|
29
32
|
}
|
|
30
33
|
changeDirectoryToDirPath() {
|
|
31
34
|
(0, process_1.chdir)(this.dirPath);
|
|
@@ -41,9 +44,15 @@ class GitAutocloner {
|
|
|
41
44
|
this.tryToCloneRepo();
|
|
42
45
|
}
|
|
43
46
|
else {
|
|
44
|
-
this.log.info(this.
|
|
47
|
+
this.log.info(`Repo exists, skipping: ${this.currentRepoName}!`);
|
|
45
48
|
}
|
|
46
49
|
}
|
|
50
|
+
get currentRepoExists() {
|
|
51
|
+
return this.existsSync(this.currentRepoName);
|
|
52
|
+
}
|
|
53
|
+
get currentRepoName() {
|
|
54
|
+
return this.currentUrl.match(this.regexForRepoName)[1];
|
|
55
|
+
}
|
|
47
56
|
tryToCloneRepo() {
|
|
48
57
|
try {
|
|
49
58
|
this.execSync(`git clone ${this.currentUrl}`);
|
|
@@ -59,18 +68,6 @@ class GitAutocloner {
|
|
|
59
68
|
get gitCloneFailedMessage() {
|
|
60
69
|
return `Git clone failed for repo: ${this.currentUrl}!\n\n${this.currentError}\n\n`;
|
|
61
70
|
}
|
|
62
|
-
get dirPathExists() {
|
|
63
|
-
return this.existsSync(this.dirPath);
|
|
64
|
-
}
|
|
65
|
-
get currentRepoName() {
|
|
66
|
-
return this.currentUrl.match(this.regex)[1];
|
|
67
|
-
}
|
|
68
|
-
get currentRepoExists() {
|
|
69
|
-
return this.existsSync(this.currentRepoName);
|
|
70
|
-
}
|
|
71
|
-
get repoExistsMessage() {
|
|
72
|
-
return `Repo already exists, skipping: ${this.currentRepoName}!`;
|
|
73
|
-
}
|
|
74
71
|
get existsSync() {
|
|
75
72
|
return GitAutocloner.existsSync;
|
|
76
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitAutocloner.js","sourceRoot":"","sources":["../../src/modules/GitAutocloner.ts"],"names":[],"mappings":";;AAAA,iDAAwC;AACxC,2BAA+B;AAC/B,qCAA+B;AAE/B,MAAqB,aAAa;IAW9B;QAFQ,QAAG,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"GitAutocloner.js","sourceRoot":"","sources":["../../src/modules/GitAutocloner.ts"],"names":[],"mappings":";;AAAA,iDAAwC;AACxC,2BAA+B;AAC/B,qCAA+B;AAE/B,MAAqB,aAAa;IAW9B;QAFQ,QAAG,GAAG,OAAO,CAAA;QA4DJ,qBAAgB,GAAG,0BAA0B,CAAA;IA1DrC,CAAC;IAEnB,MAAM,CAAC,MAAM;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAA;IACrC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,OAA0B;QACvC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QAEjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,IAAI,CAAC,0BAA0B,EAAE,CAAA;QACjC,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC7B,CAAC;IAEO,0BAA0B;QAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACnC,CAAC;IACL,CAAC;IAED,IAAY,aAAa;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAEO,wBAAwB;QAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IAC/D,CAAC;IAEO,wBAAwB;QAC5B,IAAA,eAAK,EAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;IAEO,kBAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;YACrB,IAAI,CAAC,eAAe,EAAE,CAAA;QAC1B,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,EAAE,CAAA;QACzB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;QACpE,CAAC;IACL,CAAC;IAED,IAAY,iBAAiB;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAChD,CAAC;IAED,IAAY,eAAe;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAE,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC;IAIO,cAAc;QAClB,IAAI,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QACjD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;YACvB,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC9B,CAAC;IACL,CAAC;IAEO,mBAAmB;QACvB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC/C,CAAC;IAED,IAAY,qBAAqB;QAC7B,OAAO,8BAA8B,IAAI,CAAC,UAAU,QAAQ,IAAI,CAAC,YAAY,MAAM,CAAA;IACvF,CAAC;IAED,IAAY,UAAU;QAClB,OAAO,aAAa,CAAC,UAAU,CAAA;IACnC,CAAC;IAED,IAAY,QAAQ;QAChB,OAAO,aAAa,CAAC,QAAQ,CAAA;IACjC,CAAC;;AA5Fa,sBAAQ,GAAG,wBAAQ,AAAX,CAAW;AACnB,wBAAU,GAAG,eAAU,AAAb,CAAa;kBAHpB,aAAa"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { writeFile } from 'fs/promises';
|
|
2
|
+
import pathExists from './pathExists';
|
|
3
|
+
export default class NodeAutomodule implements Automodule {
|
|
4
|
+
static Class?: AutomoduleConstructor;
|
|
5
|
+
static pathExists: typeof pathExists;
|
|
6
|
+
static writeFile: typeof writeFile;
|
|
7
|
+
private testSaveDir;
|
|
8
|
+
private moduleSaveDir;
|
|
9
|
+
private interfaceName;
|
|
10
|
+
private implName;
|
|
11
|
+
protected constructor(options: AutomoduleOptions);
|
|
12
|
+
static Create(options: AutomoduleOptions): Automodule;
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
private throwIfTestDirDoesNotExist;
|
|
15
|
+
private throwIfModuleDirDoesNotExist;
|
|
16
|
+
private createTestFile;
|
|
17
|
+
private get testFileName();
|
|
18
|
+
private createModuleFile;
|
|
19
|
+
private get moduleFileName();
|
|
20
|
+
private get pathExists();
|
|
21
|
+
private get writeFile();
|
|
22
|
+
private get testFilePattern();
|
|
23
|
+
private get moduleFilePattern();
|
|
24
|
+
}
|
|
25
|
+
export interface Automodule {
|
|
26
|
+
run(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export type AutomoduleConstructor = new (options: AutomoduleOptions) => Automodule;
|
|
29
|
+
export interface AutomoduleOptions {
|
|
30
|
+
testSaveDir: string;
|
|
31
|
+
moduleSaveDir: string;
|
|
32
|
+
interfaceName: string;
|
|
33
|
+
implName: string;
|
|
34
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const promises_1 = require("fs/promises");
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const pathExists_1 = __importDefault(require("./pathExists"));
|
|
9
|
+
class NodeAutomodule {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
const { testSaveDir, moduleSaveDir, interfaceName, implName } = options;
|
|
12
|
+
this.testSaveDir = testSaveDir;
|
|
13
|
+
this.moduleSaveDir = moduleSaveDir;
|
|
14
|
+
this.interfaceName = interfaceName;
|
|
15
|
+
this.implName = implName;
|
|
16
|
+
}
|
|
17
|
+
static Create(options) {
|
|
18
|
+
return new (this.Class ?? this)(options);
|
|
19
|
+
}
|
|
20
|
+
async run() {
|
|
21
|
+
await this.throwIfTestDirDoesNotExist();
|
|
22
|
+
await this.throwIfModuleDirDoesNotExist();
|
|
23
|
+
await this.createTestFile();
|
|
24
|
+
await this.createModuleFile();
|
|
25
|
+
}
|
|
26
|
+
async throwIfTestDirDoesNotExist() {
|
|
27
|
+
const testDirExists = await this.pathExists(this.testSaveDir);
|
|
28
|
+
if (!testDirExists) {
|
|
29
|
+
throw new Error(`testSaveDir does not exist: ${this.testSaveDir}!`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async throwIfModuleDirDoesNotExist() {
|
|
33
|
+
const moduleDirExists = await this.pathExists(this.moduleSaveDir);
|
|
34
|
+
if (!moduleDirExists) {
|
|
35
|
+
throw new Error(`moduleSaveDir does not exist: ${this.moduleSaveDir}!`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async createTestFile() {
|
|
39
|
+
await this.writeFile(this.testFileName, this.testFilePattern);
|
|
40
|
+
}
|
|
41
|
+
get testFileName() {
|
|
42
|
+
return path_1.default.join(this.testSaveDir, `${this.implName}.test.ts`);
|
|
43
|
+
}
|
|
44
|
+
async createModuleFile() {
|
|
45
|
+
await this.writeFile(this.moduleFileName, this.moduleFilePattern);
|
|
46
|
+
}
|
|
47
|
+
get moduleFileName() {
|
|
48
|
+
return path_1.default.join(this.moduleSaveDir, `${this.implName}.ts`);
|
|
49
|
+
}
|
|
50
|
+
get pathExists() {
|
|
51
|
+
return NodeAutomodule.pathExists;
|
|
52
|
+
}
|
|
53
|
+
get writeFile() {
|
|
54
|
+
return NodeAutomodule.writeFile;
|
|
55
|
+
}
|
|
56
|
+
get testFilePattern() {
|
|
57
|
+
return `
|
|
58
|
+
import AbstractSpruceTest, { test, assert } from '@sprucelabs/test-utils'
|
|
59
|
+
import ${this.implName}, { ${this.interfaceName} } from '../../modules/${this.implName}'
|
|
60
|
+
|
|
61
|
+
export default class ${this.implName}Test extends AbstractSpruceTest {
|
|
62
|
+
private static instance: ${this.interfaceName}
|
|
63
|
+
|
|
64
|
+
protected static async beforeEach() {
|
|
65
|
+
await super.beforeEach()
|
|
66
|
+
|
|
67
|
+
this.instance = this.${this.implName}()
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@test()
|
|
71
|
+
protected static async createsInstance() {
|
|
72
|
+
assert.isTruthy(this.instance, 'Failed to create instance!')
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
private static ${this.implName}() {
|
|
76
|
+
return ${this.implName}.Create()
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
`;
|
|
80
|
+
}
|
|
81
|
+
get moduleFilePattern() {
|
|
82
|
+
return `
|
|
83
|
+
export default class ${this.implName} implements ${this.interfaceName} {
|
|
84
|
+
public static Class?: ${this.interfaceName}Constructor
|
|
85
|
+
|
|
86
|
+
protected constructor() {}
|
|
87
|
+
|
|
88
|
+
public static Create() {
|
|
89
|
+
return new (this.Class ?? this)()
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface ${this.interfaceName} {}
|
|
94
|
+
|
|
95
|
+
export type ${this.interfaceName}Constructor = new () => ${this.interfaceName}
|
|
96
|
+
`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
NodeAutomodule.pathExists = pathExists_1.default;
|
|
100
|
+
NodeAutomodule.writeFile = promises_1.writeFile;
|
|
101
|
+
exports.default = NodeAutomodule;
|
|
102
|
+
//# sourceMappingURL=NodeAutomodule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeAutomodule.js","sourceRoot":"","sources":["../../src/modules/NodeAutomodule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export default class PackageJsonUpdater implements JsonUpdater {
|
|
2
|
+
static Class?: JsonUpdateConstructor;
|
|
3
|
+
protected constructor();
|
|
4
|
+
static Create(): PackageJsonUpdater;
|
|
5
|
+
}
|
|
6
|
+
export interface JsonUpdater {
|
|
7
|
+
}
|
|
8
|
+
export type JsonUpdateConstructor = new () => JsonUpdater;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class PackageJsonUpdater {
|
|
4
|
+
constructor() { }
|
|
5
|
+
static Create() {
|
|
6
|
+
return new (this.Class ?? this)();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.default = PackageJsonUpdater;
|
|
10
|
+
//# sourceMappingURL=PackageJsonUpdater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageJsonUpdater.js","sourceRoot":"","sources":["../../src/modules/PackageJsonUpdater.ts"],"names":[],"mappings":";;AAAA,MAAqB,kBAAkB;IAGnC,gBAAyB,CAAC;IAEnB,MAAM,CAAC,MAAM;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAA;IACrC,CAAC;CACJ;AARD,qCAQC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function pathExists(path: string): Promise<boolean>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = pathExists;
|
|
4
|
+
const promises_1 = require("fs/promises");
|
|
5
|
+
async function pathExists(path) {
|
|
6
|
+
try {
|
|
7
|
+
await (0, promises_1.access)(path);
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=pathExists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathExists.js","sourceRoot":"","sources":["../../src/modules/pathExists.ts"],"names":[],"mappings":";;AAEA,6BAOC;AATD,0CAAoC;AAErB,KAAK,UAAU,UAAU,CAAC,IAAY;IACjD,IAAI,CAAC;QACD,MAAM,IAAA,iBAAM,EAAC,IAAI,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|