@itentialopensource/adapter-db_postgresql 0.2.0 → 1.0.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/.eslintignore +1 -0
- package/.eslintrc.js +12 -12
- package/.jshintrc +0 -0
- package/AUTH.md +25 -0
- package/CALLS.md +40 -0
- package/CHANGELOG.md +16 -0
- package/CODE_OF_CONDUCT.md +12 -17
- package/CONTRIBUTING.md +3 -148
- package/ENHANCE.md +28 -0
- package/LICENSE +0 -0
- package/PROPERTIES.md +111 -0
- package/SUMMARY.md +9 -0
- package/SYSTEMINFO.md +11 -0
- package/TROUBLESHOOT.md +28 -0
- package/adapter.js +1 -1
- package/changelogs/changelog.md +40 -0
- package/error.json +12 -0
- package/metadata.json +49 -0
- package/package.json +21 -19
- package/propertiesDecorators.json +14 -0
- package/refs?service=git-upload-pack +0 -0
- package/report/adapterInfo.json +10 -0
- package/sampleProperties.json +3 -3
- package/test/.eslintrc.js +4 -4
- package/test/integration/adapterTestIntegration.js +11 -11
- package/test/unit/adapterTestUnit.js +31 -20
- package/utils/adapterInfo.js +206 -0
- package/utils/artifactize.js +10 -15
- package/utils/packModificationScript.js +2 -2
- package/utils/pre-commit.sh +0 -0
- package/utils/removeHooks.js +20 -0
- package/utils/setup.js +0 -0
- package/utils/testRunner.js +17 -17
- package/gl-code-quality-report.json +0 -1
- package/workflows/README.md +0 -3
- package/workflows/postgresql-test101.json +0 -1
package/metadata.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "adapter-db_postgresql",
|
|
3
|
+
"webName": "Adapter for Integration to PostgreSQL Database",
|
|
4
|
+
"vendor": "PostgreSQL",
|
|
5
|
+
"product": "PostgreSQL",
|
|
6
|
+
"osVersion": [],
|
|
7
|
+
"apiVersions": [],
|
|
8
|
+
"iapVersions": [
|
|
9
|
+
"2021.1.x",
|
|
10
|
+
"2021.2.x",
|
|
11
|
+
"2022.1.x",
|
|
12
|
+
"2023.1.x"
|
|
13
|
+
],
|
|
14
|
+
"method": "Library",
|
|
15
|
+
"type": "Adapter",
|
|
16
|
+
"domains": [
|
|
17
|
+
"Data Storage"
|
|
18
|
+
],
|
|
19
|
+
"tags": [],
|
|
20
|
+
"useCases": [],
|
|
21
|
+
"deprecated": {
|
|
22
|
+
"isDeprecated": false
|
|
23
|
+
},
|
|
24
|
+
"brokerSince": "",
|
|
25
|
+
"documentation": {
|
|
26
|
+
"storeLink": "",
|
|
27
|
+
"npmLink": "https://www.npmjs.com/package/@itentialopensource/adapter-db_postgresql",
|
|
28
|
+
"repoLink": "https://gitlab.com/itentialopensource/adapters/persistence/adapter-db_postgresql",
|
|
29
|
+
"docLink": "",
|
|
30
|
+
"demoLinks": [],
|
|
31
|
+
"trainingLinks": [],
|
|
32
|
+
"faqLink": "https://docs.itential.com/opensource/docs/troubleshooting-an-adapter",
|
|
33
|
+
"contributeLink": "https://gitlab.com/itentialopensource/adapters/contributing-guide",
|
|
34
|
+
"issueLink": "https://itential.atlassian.net/servicedesk/customer/portals",
|
|
35
|
+
"webLink": "https://www.itential.com/adapters/postgresql/",
|
|
36
|
+
"vendorLink": "",
|
|
37
|
+
"productLink": "",
|
|
38
|
+
"apiLinks": []
|
|
39
|
+
},
|
|
40
|
+
"assets": [],
|
|
41
|
+
"relatedItems": {
|
|
42
|
+
"adapters": [],
|
|
43
|
+
"integrations": [],
|
|
44
|
+
"ecosystemApplications": [],
|
|
45
|
+
"workflowProjects": [],
|
|
46
|
+
"transformationProjects": [],
|
|
47
|
+
"exampleProjects": []
|
|
48
|
+
}
|
|
49
|
+
}
|
package/package.json
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itentialopensource/adapter-db_postgresql",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Itential adapter to connect to postgresql",
|
|
5
5
|
"main": "adapter.js",
|
|
6
|
-
"wizardVersion": "2.
|
|
7
|
-
"engineVersion": "1.
|
|
6
|
+
"wizardVersion": "2.44.7",
|
|
7
|
+
"engineVersion": "1.67.14",
|
|
8
|
+
"adapterType": "http",
|
|
8
9
|
"scripts": {
|
|
9
10
|
"artifactize": "npm i && node utils/packModificationScript.js",
|
|
10
11
|
"preinstall": "node utils/setup.js",
|
|
11
|
-
"
|
|
12
|
+
"deinstall": "node utils/removeHooks.js",
|
|
13
|
+
"lint": "node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js",
|
|
14
|
+
"lint:errors": "node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js --quiet",
|
|
12
15
|
"test:unit": "mocha test/unit/adapterTestUnit.js --LOG=error",
|
|
13
16
|
"test:integration": "mocha test/integration/adapterTestIntegration.js --LOG=error",
|
|
14
17
|
"test:cover": "nyc --reporter html --reporter text mocha --reporter dot test/*",
|
|
15
18
|
"test": "npm run test:unit && npm run test:integration",
|
|
16
|
-
"deploy": "npm publish --registry=
|
|
19
|
+
"deploy": "npm publish --registry=https://registry.npmjs.org --access=public",
|
|
17
20
|
"build": "npm run deploy"
|
|
18
21
|
},
|
|
19
22
|
"keywords": [
|
|
@@ -38,23 +41,22 @@
|
|
|
38
41
|
"author": "Itential",
|
|
39
42
|
"homepage": "https://gitlab.com/itentialopensource/adapters/persistence/adapter-db_postgresql#readme",
|
|
40
43
|
"dependencies": {
|
|
41
|
-
"ajv": "^
|
|
42
|
-
"fs-extra": "^
|
|
43
|
-
"pg": "^
|
|
44
|
-
"
|
|
45
|
-
"readline-sync": "^1.4.9",
|
|
44
|
+
"ajv": "^8.12.0",
|
|
45
|
+
"fs-extra": "^11.1.1",
|
|
46
|
+
"pg": "^8.11.3",
|
|
47
|
+
"readline-sync": "^1.4.10",
|
|
46
48
|
"uuid": "^3.0.1"
|
|
47
49
|
},
|
|
48
50
|
"devDependencies": {
|
|
49
|
-
"chai": "^4.
|
|
50
|
-
"eslint": "^
|
|
51
|
-
"eslint-config-airbnb-base": "^
|
|
52
|
-
"eslint-plugin-import": "^2.
|
|
53
|
-
"eslint-plugin-json": "^1.
|
|
54
|
-
"mocha": "^
|
|
55
|
-
"nyc": "^
|
|
56
|
-
"testdouble": "^3.
|
|
57
|
-
"winston": "^
|
|
51
|
+
"chai": "^4.3.7",
|
|
52
|
+
"eslint": "^8.44.0",
|
|
53
|
+
"eslint-config-airbnb-base": "^15.0.0",
|
|
54
|
+
"eslint-plugin-import": "^2.27.5",
|
|
55
|
+
"eslint-plugin-json": "^3.1.0",
|
|
56
|
+
"mocha": "^9.2.2",
|
|
57
|
+
"nyc": "^15.1.0",
|
|
58
|
+
"testdouble": "^3.18.0",
|
|
59
|
+
"winston": "^3.8.1"
|
|
58
60
|
},
|
|
59
61
|
"private": false
|
|
60
62
|
}
|
|
Binary file
|
package/sampleProperties.json
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"host": "localhost",
|
|
7
7
|
"port": 5432,
|
|
8
8
|
"authentication": {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
"username": "your username",
|
|
10
|
+
"password": "your password"
|
|
11
11
|
},
|
|
12
12
|
"ssl": {
|
|
13
13
|
"enabled": false,
|
|
@@ -19,4 +19,4 @@
|
|
|
19
19
|
"brokers": [],
|
|
20
20
|
"logLevel": "none",
|
|
21
21
|
"timeout": 60000
|
|
22
|
-
}
|
|
22
|
+
}
|
package/test/.eslintrc.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
env: {
|
|
3
|
-
mocha: true
|
|
3
|
+
mocha: true
|
|
4
4
|
},
|
|
5
5
|
globals: {
|
|
6
6
|
// Pronghorn globals.
|
|
7
|
-
log: true
|
|
7
|
+
log: true
|
|
8
8
|
},
|
|
9
9
|
rules: {
|
|
10
10
|
// Mocha preference for describe context.
|
|
11
11
|
'prefer-arrow-callback': 'off',
|
|
12
12
|
'func-names': 'off',
|
|
13
13
|
// We want to isolate dependencies.
|
|
14
|
-
'global-require': 'off'
|
|
15
|
-
}
|
|
14
|
+
'global-require': 'off'
|
|
15
|
+
}
|
|
16
16
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* @copyright Itential, LLC 2019 (pre-modifications) */
|
|
2
2
|
|
|
3
3
|
// Set globals
|
|
4
|
-
/* global
|
|
4
|
+
/* global pronghornProps */
|
|
5
5
|
/* eslint no-unused-vars: warn */
|
|
6
6
|
/* eslint no-underscore-dangle: warn */
|
|
7
7
|
|
|
@@ -93,7 +93,7 @@ process.argv.forEach((val) => {
|
|
|
93
93
|
});
|
|
94
94
|
|
|
95
95
|
// need to set global logging
|
|
96
|
-
global.log =
|
|
96
|
+
global.log = winston.createLogger({
|
|
97
97
|
level: logLevel,
|
|
98
98
|
levels: myCustomLevels.levels,
|
|
99
99
|
transports: [
|
|
@@ -129,7 +129,7 @@ function runErrorAsserts(data, error, code, origin, displayStr) {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
// require the adapter that we are going to be using
|
|
132
|
-
const PostgreSQL = require('../../adapter
|
|
132
|
+
const PostgreSQL = require('../../adapter');
|
|
133
133
|
|
|
134
134
|
// begin the testing - these should be pretty well defined between the describe and the it!
|
|
135
135
|
describe('[integration] PostgreSQL Adapter Test', () => {
|
|
@@ -183,7 +183,7 @@ describe('[integration] PostgreSQL Adapter Test', () => {
|
|
|
183
183
|
}
|
|
184
184
|
});
|
|
185
185
|
|
|
186
|
-
describe('heatlhCheck should yield',
|
|
186
|
+
describe('heatlhCheck should yield', () => {
|
|
187
187
|
if (!stub) {
|
|
188
188
|
it('healthcheck should succeed', (done) => {
|
|
189
189
|
try {
|
|
@@ -216,7 +216,7 @@ describe('[integration] PostgreSQL Adapter Test', () => {
|
|
|
216
216
|
*/
|
|
217
217
|
|
|
218
218
|
const createSQL = 'CREATE TABLE Dogs (DogID int, Name varchar(255));';
|
|
219
|
-
describe('#create',
|
|
219
|
+
describe('#create', () => {
|
|
220
220
|
if (!stub) {
|
|
221
221
|
it('should create a table', (done) => {
|
|
222
222
|
try {
|
|
@@ -239,7 +239,7 @@ describe('[integration] PostgreSQL Adapter Test', () => {
|
|
|
239
239
|
});
|
|
240
240
|
|
|
241
241
|
const insertSQL = 'INSERT INTO Dogs (DogID, Name) VALUES (001, \'dog001\');';
|
|
242
|
-
describe('#insert',
|
|
242
|
+
describe('#insert', () => {
|
|
243
243
|
if (!stub) {
|
|
244
244
|
it('should insert a record', (done) => {
|
|
245
245
|
try {
|
|
@@ -262,7 +262,7 @@ describe('[integration] PostgreSQL Adapter Test', () => {
|
|
|
262
262
|
});
|
|
263
263
|
|
|
264
264
|
const selectSQL = 'SELECT Name FROM Dogs;';
|
|
265
|
-
describe('#select',
|
|
265
|
+
describe('#select', () => {
|
|
266
266
|
if (!stub) {
|
|
267
267
|
it('should select a record', (done) => {
|
|
268
268
|
try {
|
|
@@ -285,7 +285,7 @@ describe('[integration] PostgreSQL Adapter Test', () => {
|
|
|
285
285
|
});
|
|
286
286
|
|
|
287
287
|
const querySQL = 'SELECT Name FROM Dogs;';
|
|
288
|
-
describe('#query',
|
|
288
|
+
describe('#query', () => {
|
|
289
289
|
if (!stub) {
|
|
290
290
|
it('should query a record', (done) => {
|
|
291
291
|
try {
|
|
@@ -308,7 +308,7 @@ describe('[integration] PostgreSQL Adapter Test', () => {
|
|
|
308
308
|
});
|
|
309
309
|
|
|
310
310
|
const updateSQL = 'UPDATE Dogs SET Name=\'dogs001\' WHERE DogID=1;';
|
|
311
|
-
describe('#update',
|
|
311
|
+
describe('#update', () => {
|
|
312
312
|
if (!stub) {
|
|
313
313
|
it('should update a record', (done) => {
|
|
314
314
|
try {
|
|
@@ -331,7 +331,7 @@ describe('[integration] PostgreSQL Adapter Test', () => {
|
|
|
331
331
|
});
|
|
332
332
|
|
|
333
333
|
const deleteSQL = 'DELETE FROM Dogs WHERE DogID=1;';
|
|
334
|
-
describe('#delete',
|
|
334
|
+
describe('#delete', () => {
|
|
335
335
|
if (!stub) {
|
|
336
336
|
it('should delete a record', (done) => {
|
|
337
337
|
try {
|
|
@@ -354,7 +354,7 @@ describe('[integration] PostgreSQL Adapter Test', () => {
|
|
|
354
354
|
});
|
|
355
355
|
|
|
356
356
|
const dropSQL = 'DROP TABLE Dogs;';
|
|
357
|
-
describe('#drop',
|
|
357
|
+
describe('#drop', () => {
|
|
358
358
|
if (!stub) {
|
|
359
359
|
it('should drop a record', (done) => {
|
|
360
360
|
try {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* @copyright Itential, LLC 2019 (pre-modifications) */
|
|
2
2
|
|
|
3
3
|
// Set globals
|
|
4
|
-
/* global
|
|
4
|
+
/* global pronghornProps */
|
|
5
5
|
/* eslint global-require:warn */
|
|
6
6
|
/* eslint no-unused-vars: warn */
|
|
7
7
|
|
|
@@ -16,7 +16,9 @@ const execute = require('child_process').execSync;
|
|
|
16
16
|
const { expect } = require('chai');
|
|
17
17
|
const { use } = require('chai');
|
|
18
18
|
const td = require('testdouble');
|
|
19
|
+
const Ajv = require('ajv');
|
|
19
20
|
|
|
21
|
+
const ajv = new Ajv({ strictSchema: false, allErrors: true, allowUnionTypes: true });
|
|
20
22
|
const anything = td.matchers.anything();
|
|
21
23
|
|
|
22
24
|
// stub and attemptTimeout are used throughout the code so set them here
|
|
@@ -97,7 +99,7 @@ process.argv.forEach((val) => {
|
|
|
97
99
|
});
|
|
98
100
|
|
|
99
101
|
// need to set global logging
|
|
100
|
-
global.log =
|
|
102
|
+
global.log = winston.createLogger({
|
|
101
103
|
level: logLevel,
|
|
102
104
|
levels: myCustomLevels.levels,
|
|
103
105
|
transports: [
|
|
@@ -121,9 +123,8 @@ function runErrorAsserts(data, error, code, origin, displayStr) {
|
|
|
121
123
|
assert.equal(displayStr, error.IAPerror.displayString);
|
|
122
124
|
}
|
|
123
125
|
|
|
124
|
-
|
|
125
126
|
// require the adapter that we are going to be using
|
|
126
|
-
const PostgreSQL = require('../../adapter
|
|
127
|
+
const PostgreSQL = require('../../adapter');
|
|
127
128
|
|
|
128
129
|
// delete the .DS_Store directory in entities -- otherwise this will cause errors
|
|
129
130
|
const dirPath = path.join(__dirname, '../../entities/.DS_Store');
|
|
@@ -187,23 +188,33 @@ describe('[unit] PostgreSQL Adapter Test', () => {
|
|
|
187
188
|
});
|
|
188
189
|
});
|
|
189
190
|
it('package.json should be validated', (done) => {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
191
|
+
try {
|
|
192
|
+
const packageDotJson = require('../../package.json');
|
|
193
|
+
// Define the JSON schema for package.json
|
|
194
|
+
const packageJsonSchema = {
|
|
195
|
+
type: 'object',
|
|
196
|
+
properties: {
|
|
197
|
+
name: { type: 'string' },
|
|
198
|
+
version: { type: 'string' }
|
|
199
|
+
// May need to add more properties as needed
|
|
200
|
+
},
|
|
201
|
+
required: ['name', 'version']
|
|
202
|
+
};
|
|
203
|
+
const validate = ajv.compile(packageJsonSchema);
|
|
204
|
+
const isValid = validate(packageDotJson);
|
|
205
|
+
|
|
206
|
+
if (isValid === false) {
|
|
207
|
+
log.error('The package.json contains errors');
|
|
208
|
+
assert.equal(true, isValid);
|
|
209
|
+
} else {
|
|
210
|
+
assert.equal(true, isValid);
|
|
211
|
+
}
|
|
205
212
|
|
|
206
|
-
|
|
213
|
+
done();
|
|
214
|
+
} catch (error) {
|
|
215
|
+
log.error(`Test Failure: ${error}`);
|
|
216
|
+
done(error);
|
|
217
|
+
}
|
|
207
218
|
});
|
|
208
219
|
it('package.json should be customized', (done) => {
|
|
209
220
|
const packageDotJson = require('../../package.json');
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/* @copyright Itential, LLC 2019 */
|
|
3
|
+
/* eslint global-require:warn */
|
|
4
|
+
/* eslint import/no-dynamic-require:warn */
|
|
5
|
+
/* eslint prefer-destructuring:warn */
|
|
6
|
+
|
|
7
|
+
const path = require('path');
|
|
8
|
+
const fs = require('fs-extra');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* This script will determine the information about the adapter and store
|
|
12
|
+
* it into a file in the adapter.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* get adapter information
|
|
17
|
+
*/
|
|
18
|
+
function adapterInfo() {
|
|
19
|
+
// set the base pase of the adapter - tool shoud be one level up in utils
|
|
20
|
+
let adaptdir = __dirname;
|
|
21
|
+
const infoRes = {};
|
|
22
|
+
|
|
23
|
+
if (adaptdir.endsWith('/utils')) {
|
|
24
|
+
adaptdir = adaptdir.substring(0, adaptdir.length - 6);
|
|
25
|
+
}
|
|
26
|
+
const pack = require(`${adaptdir}/package.json`);
|
|
27
|
+
infoRes.version = pack.version;
|
|
28
|
+
|
|
29
|
+
let configCount = 0;
|
|
30
|
+
if (fs.existsSync(`${adaptdir}/pronghorn.json`)) {
|
|
31
|
+
const cFile = fs.readFileSync(`${adaptdir}/pronghorn.json`, 'utf8');
|
|
32
|
+
configCount += cFile.split('\n').length;
|
|
33
|
+
} else {
|
|
34
|
+
console.log('Missing - pronghorn.json');
|
|
35
|
+
}
|
|
36
|
+
if (fs.existsSync(`${adaptdir}/propertiesSchema.json`)) {
|
|
37
|
+
const cFile = fs.readFileSync(`${adaptdir}/propertiesSchema.json`, 'utf8');
|
|
38
|
+
configCount += cFile.split('\n').length;
|
|
39
|
+
} else {
|
|
40
|
+
console.log('Missing - propertiesSchema.json');
|
|
41
|
+
}
|
|
42
|
+
if (fs.existsSync(`${adaptdir}/error.json`)) {
|
|
43
|
+
const cFile = fs.readFileSync(`${adaptdir}/error.json`, 'utf8');
|
|
44
|
+
configCount += cFile.split('\n').length;
|
|
45
|
+
} else {
|
|
46
|
+
console.log('Missing - error.json');
|
|
47
|
+
}
|
|
48
|
+
const entitydir = path.join(adaptdir, '/entities');
|
|
49
|
+
if (fs.existsSync(entitydir) && fs.statSync(entitydir).isDirectory()) {
|
|
50
|
+
const entities = fs.readdirSync(entitydir);
|
|
51
|
+
// need to go through each entity in the entities directory
|
|
52
|
+
for (let e = 0; e < entities.length; e += 1) {
|
|
53
|
+
if (fs.statSync(`${entitydir}/${entities[e]}`).isDirectory()) {
|
|
54
|
+
const cfiles = fs.readdirSync(entitydir);
|
|
55
|
+
for (let c = 0; c < cfiles.length; c += 1) {
|
|
56
|
+
if (cfiles[c].endsWith('.json')) {
|
|
57
|
+
const ccFile = fs.readFileSync(`${entitydir}/${entities[e]}/${cfiles[c]}`, 'utf8');
|
|
58
|
+
configCount += ccFile.split('\n').length;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
} else {
|
|
64
|
+
console.log('Could not find the entities directory');
|
|
65
|
+
}
|
|
66
|
+
infoRes.configLines = configCount;
|
|
67
|
+
|
|
68
|
+
let scodeCount = 0;
|
|
69
|
+
if (fs.existsSync(`${adaptdir}/utils/artifactize.js`)) {
|
|
70
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/artifactize.js`, 'utf8');
|
|
71
|
+
scodeCount += sFile.split('\n').length;
|
|
72
|
+
} else {
|
|
73
|
+
console.log('Missing - utils/artifactize.js');
|
|
74
|
+
}
|
|
75
|
+
if (fs.existsSync(`${adaptdir}/utils/basicGet.js`)) {
|
|
76
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/basicGet.js`, 'utf8');
|
|
77
|
+
scodeCount += sFile.split('\n').length;
|
|
78
|
+
} else {
|
|
79
|
+
console.log('Missing - utils/basicGet.js');
|
|
80
|
+
}
|
|
81
|
+
if (fs.existsSync(`${adaptdir}/utils/checkMigrate.js`)) {
|
|
82
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/checkMigrate.js`, 'utf8');
|
|
83
|
+
scodeCount += sFile.split('\n').length;
|
|
84
|
+
} else {
|
|
85
|
+
console.log('Missing - utils/checkMigrate.js');
|
|
86
|
+
}
|
|
87
|
+
if (fs.existsSync(`${adaptdir}/utils/findPath.js`)) {
|
|
88
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/findPath.js`, 'utf8');
|
|
89
|
+
scodeCount += sFile.split('\n').length;
|
|
90
|
+
} else {
|
|
91
|
+
console.log('Missing - utils/findPath.js');
|
|
92
|
+
}
|
|
93
|
+
if (fs.existsSync(`${adaptdir}/utils/modify.js`)) {
|
|
94
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/modify.js`, 'utf8');
|
|
95
|
+
scodeCount += sFile.split('\n').length;
|
|
96
|
+
} else {
|
|
97
|
+
console.log('Missing - utils/modify.js');
|
|
98
|
+
}
|
|
99
|
+
if (fs.existsSync(`${adaptdir}/utils/packModificationScript.js`)) {
|
|
100
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/packModificationScript.js`, 'utf8');
|
|
101
|
+
scodeCount += sFile.split('\n').length;
|
|
102
|
+
} else {
|
|
103
|
+
console.log('Missing - utils/packModificationScript.js');
|
|
104
|
+
}
|
|
105
|
+
if (fs.existsSync(`${adaptdir}/utils/setup.js`)) {
|
|
106
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/setup.js`, 'utf8');
|
|
107
|
+
scodeCount += sFile.split('\n').length;
|
|
108
|
+
} else {
|
|
109
|
+
console.log('Missing - utils/setup.js');
|
|
110
|
+
}
|
|
111
|
+
if (fs.existsSync(`${adaptdir}/utils/tbScript.js`)) {
|
|
112
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/tbScript.js`, 'utf8');
|
|
113
|
+
scodeCount += sFile.split('\n').length;
|
|
114
|
+
} else {
|
|
115
|
+
console.log('Missing - utils/tbScript.js');
|
|
116
|
+
}
|
|
117
|
+
if (fs.existsSync(`${adaptdir}/utils/tbUtils.js`)) {
|
|
118
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/tbUtils.js`, 'utf8');
|
|
119
|
+
scodeCount += sFile.split('\n').length;
|
|
120
|
+
} else {
|
|
121
|
+
console.log('Missing - utils/tbUtils.js');
|
|
122
|
+
}
|
|
123
|
+
if (fs.existsSync(`${adaptdir}/utils/testRunner.js`)) {
|
|
124
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/testRunner.js`, 'utf8');
|
|
125
|
+
scodeCount += sFile.split('\n').length;
|
|
126
|
+
} else {
|
|
127
|
+
console.log('Missing - utils/testRunner.js');
|
|
128
|
+
}
|
|
129
|
+
if (fs.existsSync(`${adaptdir}/utils/troubleshootingAdapter.js`)) {
|
|
130
|
+
const sFile = fs.readFileSync(`${adaptdir}/utils/troubleshootingAdapter.js`, 'utf8');
|
|
131
|
+
scodeCount += sFile.split('\n').length;
|
|
132
|
+
} else {
|
|
133
|
+
console.log('Missing - utils/troubleshootingAdapter.js');
|
|
134
|
+
}
|
|
135
|
+
infoRes.scriptLines = scodeCount;
|
|
136
|
+
|
|
137
|
+
let codeCount = 0;
|
|
138
|
+
if (fs.existsSync(`${adaptdir}/adapter.js`)) {
|
|
139
|
+
const aFile = fs.readFileSync(`${adaptdir}/adapter.js`, 'utf8');
|
|
140
|
+
codeCount += aFile.split('\n').length;
|
|
141
|
+
} else {
|
|
142
|
+
console.log('Missing - utils/adapter.js');
|
|
143
|
+
}
|
|
144
|
+
if (fs.existsSync(`${adaptdir}/adapterBase.js`)) {
|
|
145
|
+
const aFile = fs.readFileSync(`${adaptdir}/adapterBase.js`, 'utf8');
|
|
146
|
+
codeCount += aFile.split('\n').length;
|
|
147
|
+
} else {
|
|
148
|
+
console.log('Missing - utils/adapterBase.js');
|
|
149
|
+
}
|
|
150
|
+
infoRes.codeLines = codeCount;
|
|
151
|
+
|
|
152
|
+
let tcodeCount = 0;
|
|
153
|
+
let ttestCount = 0;
|
|
154
|
+
if (fs.existsSync(`${adaptdir}/test/integration/adapterTestBasicGet.js`)) {
|
|
155
|
+
const tFile = fs.readFileSync(`${adaptdir}/test/integration/adapterTestBasicGet.js`, 'utf8');
|
|
156
|
+
tcodeCount += tFile.split('\n').length;
|
|
157
|
+
ttestCount += tFile.split('it(\'').length;
|
|
158
|
+
} else {
|
|
159
|
+
console.log('Missing - test/integration/adapterTestBasicGet.js');
|
|
160
|
+
}
|
|
161
|
+
if (fs.existsSync(`${adaptdir}/test/integration/adapterTestConnectivity.js`)) {
|
|
162
|
+
const tFile = fs.readFileSync(`${adaptdir}/test/integration/adapterTestConnectivity.js`, 'utf8');
|
|
163
|
+
tcodeCount += tFile.split('\n').length;
|
|
164
|
+
ttestCount += tFile.split('it(\'').length;
|
|
165
|
+
} else {
|
|
166
|
+
console.log('Missing - test/integration/adapterTestConnectivity.js');
|
|
167
|
+
}
|
|
168
|
+
if (fs.existsSync(`${adaptdir}/test/integration/adapterTestIntegration.js`)) {
|
|
169
|
+
const tFile = fs.readFileSync(`${adaptdir}/test/integration/adapterTestIntegration.js`, 'utf8');
|
|
170
|
+
tcodeCount += tFile.split('\n').length;
|
|
171
|
+
ttestCount += tFile.split('it(\'').length;
|
|
172
|
+
} else {
|
|
173
|
+
console.log('Missing - test/integration/adapterTestIntegration.js');
|
|
174
|
+
}
|
|
175
|
+
if (fs.existsSync(`${adaptdir}/test/unit/adapterBaseTestUnit.js`)) {
|
|
176
|
+
const tFile = fs.readFileSync(`${adaptdir}/test/unit/adapterBaseTestUnit.js`, 'utf8');
|
|
177
|
+
tcodeCount += tFile.split('\n').length;
|
|
178
|
+
ttestCount += tFile.split('it(\'').length;
|
|
179
|
+
} else {
|
|
180
|
+
console.log('Missing - test/unit/adapterBaseTestUnit.js');
|
|
181
|
+
}
|
|
182
|
+
if (fs.existsSync(`${adaptdir}/test/unit/adapterTestUnit.js`)) {
|
|
183
|
+
const tFile = fs.readFileSync(`${adaptdir}/test/unit/adapterTestUnit.js`, 'utf8');
|
|
184
|
+
tcodeCount += tFile.split('\n').length;
|
|
185
|
+
ttestCount += tFile.split('it(\'').length;
|
|
186
|
+
} else {
|
|
187
|
+
console.log('Missing - test/unit/adapterTestUnit.js');
|
|
188
|
+
}
|
|
189
|
+
infoRes.testLines = tcodeCount;
|
|
190
|
+
infoRes.testCases = ttestCount;
|
|
191
|
+
infoRes.totalCodeLines = scodeCount + codeCount + tcodeCount;
|
|
192
|
+
|
|
193
|
+
if (fs.existsSync(`${adaptdir}/pronghorn.json`)) {
|
|
194
|
+
// Read the entity schema from the file system
|
|
195
|
+
const phFile = path.join(adaptdir, '/pronghorn.json');
|
|
196
|
+
const prong = require(phFile);
|
|
197
|
+
infoRes.wfTasks = prong.methods.length;
|
|
198
|
+
} else {
|
|
199
|
+
console.log('Missing - pronghorn.json');
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
console.log(JSON.stringify(infoRes));
|
|
203
|
+
fs.writeFileSync(`${adaptdir}/report/adapterInfo.json`, JSON.stringify(infoRes, null, 2));
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
adapterInfo();
|
package/utils/artifactize.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/* @copyright Itential, LLC 2019 */
|
|
3
3
|
|
|
4
|
-
const fs = require('fs-extra');
|
|
5
4
|
const path = require('path');
|
|
5
|
+
const fs = require('fs-extra');
|
|
6
6
|
|
|
7
7
|
async function createBundle(adapterOldDir) {
|
|
8
8
|
// set directories
|
|
@@ -15,7 +15,6 @@ async function createBundle(adapterOldDir) {
|
|
|
15
15
|
const shortenedName = originalName.replace('adapter-', '');
|
|
16
16
|
const artifactName = originalName.replace('adapter', 'bundled-adapter');
|
|
17
17
|
|
|
18
|
-
|
|
19
18
|
const adapterNewDir = path.join(artifactDir, 'bundles', 'adapters', originalName);
|
|
20
19
|
fs.ensureDirSync(adapterNewDir);
|
|
21
20
|
|
|
@@ -121,7 +120,7 @@ async function createBundle(adapterOldDir) {
|
|
|
121
120
|
|
|
122
121
|
// Run the commands in parallel
|
|
123
122
|
try {
|
|
124
|
-
await Promise.all(ops.map(async op => op()));
|
|
123
|
+
await Promise.all(ops.map(async (op) => op()));
|
|
125
124
|
} catch (e) {
|
|
126
125
|
throw new Error(e);
|
|
127
126
|
}
|
|
@@ -134,18 +133,14 @@ async function createBundle(adapterOldDir) {
|
|
|
134
133
|
}
|
|
135
134
|
|
|
136
135
|
async function artifactize(entryPathToAdapter) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
return 'Bundle successfully created and old folder system removed';
|
|
146
|
-
} catch (e) {
|
|
147
|
-
throw e;
|
|
148
|
-
}
|
|
136
|
+
const truePath = path.resolve(entryPathToAdapter);
|
|
137
|
+
const packagePath = path.join(truePath, 'package');
|
|
138
|
+
// remove adapter from package and move bundle in
|
|
139
|
+
const pathObj = await createBundle(packagePath);
|
|
140
|
+
const { bundlePath } = pathObj;
|
|
141
|
+
fs.removeSync(packagePath);
|
|
142
|
+
fs.moveSync(bundlePath, packagePath);
|
|
143
|
+
return 'Bundle successfully created and old folder system removed';
|
|
149
144
|
}
|
|
150
145
|
|
|
151
146
|
module.exports = { createBundle, artifactize };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/* @copyright Itential, LLC 2019 */
|
|
3
3
|
|
|
4
|
-
const fs = require('fs-extra');
|
|
5
4
|
const path = require('path');
|
|
6
5
|
const { spawnSync } = require('child_process');
|
|
7
|
-
const
|
|
6
|
+
const fs = require('fs-extra');
|
|
7
|
+
const { createBundle } = require('./artifactize');
|
|
8
8
|
|
|
9
9
|
const nodeEntryPath = path.resolve('.');
|
|
10
10
|
createBundle(nodeEntryPath).then((pathObj) => {
|
package/utils/pre-commit.sh
CHANGED
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This script will uninstall pre-commit or pre-push hooks in case there's ever a need to
|
|
5
|
+
* commit/push something that has issues
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const precommitPath = '.git/hooks/pre-commit';
|
|
9
|
+
const prepushPath = '.git/hooks/pre-push';
|
|
10
|
+
fs.unlink(precommitPath, (err) => {
|
|
11
|
+
if (err && err.code !== 'ENOENT') {
|
|
12
|
+
console.log(`${err.message}`);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
fs.unlink(prepushPath, (err) => {
|
|
17
|
+
if (err && err.code !== 'ENOENT') {
|
|
18
|
+
console.log(`${err.message}`);
|
|
19
|
+
}
|
|
20
|
+
});
|
package/utils/setup.js
CHANGED
|
File without changes
|