Skip to content

Commit 663fd93

Browse files
authored
HCK-9614: adapt FE to work in the browser (#16)
* HCK-9614: adapt FE to work in the browser * HCK-9614: small fixes * HCK-9614: fix legacy dep
1 parent 2fe780b commit 663fd93

10 files changed

Lines changed: 213 additions & 47 deletions

File tree

api/fe.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const { generateContainerScript } = require('../forward_engineering/generateContainerScript');
2+
3+
module.exports = {
4+
generateContainerScript,
5+
};

esbuild.package.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const fs = require('fs');
22
const path = require('path');
33
const esbuild = require('esbuild');
44
const { clean } = require('esbuild-plugin-clean');
5+
const { copy } = require('esbuild-plugin-copy');
56
const { copyFolderFiles, addReleaseFlag } = require('@hackolade/hck-esbuild-plugins-pack');
67
const { EXCLUDED_EXTENSIONS, EXCLUDED_FILES, DEFAULT_RELEASE_FOLDER_PATH } = require('./buildConstants');
78

@@ -11,6 +12,7 @@ const RELEASE_FOLDER_PATH = path.join(DEFAULT_RELEASE_FOLDER_PATH, `${packageDat
1112
esbuild
1213
.build({
1314
entryPoints: [
15+
path.resolve(__dirname, 'api', 'fe.js'),
1416
path.resolve(__dirname, 'forward_engineering', 'api.js'),
1517
path.resolve(__dirname, 'reverse_engineering', 'api.js'),
1618
],
@@ -21,10 +23,17 @@ esbuild
2123
outdir: RELEASE_FOLDER_PATH,
2224
minify: true,
2325
logLevel: 'info',
26+
external: ['lodash'],
2427
plugins: [
2528
clean({
2629
patterns: [DEFAULT_RELEASE_FOLDER_PATH],
2730
}),
31+
copy({
32+
assets: {
33+
from: [path.join('node_modules', 'lodash', '**', '*')],
34+
to: [path.join('node_modules', 'lodash')],
35+
},
36+
}),
2837
copyFolderFiles({
2938
fromPath: __dirname,
3039
targetFolderPath: RELEASE_FOLDER_PATH,

forward_engineering/api.js

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,10 @@
11
const { generateGremlinDataSamples } = require('./helpers/sampleDataHelper');
22
const { generateJanusGraphSchema } = require('./helpers/schemaHelper');
33
const gremlinHelper = require('../reverse_engineering/gremlinHelper');
4+
const { generateContainerScript } = require('./generateContainerScript');
45

56
module.exports = {
6-
generateContainerScript(data, logger, cb, app) {
7-
try {
8-
logger.clear();
9-
10-
const insertSamplesOption =
11-
(data.options?.additionalOptions || []).find(option => option.id === 'INCLUDE_SAMPLES') || {};
12-
const withSamples = data.options.origin !== 'ui';
13-
14-
const schemaScript = generateJanusGraphSchema({ ...data, app });
15-
const sampleScript = generateGremlinDataSamples({ ...data, app });
16-
17-
if (withSamples || !insertSamplesOption.value) {
18-
return cb(null, `${schemaScript}\n\n${sampleScript}`);
19-
}
20-
21-
cb(null, [
22-
{ title: 'JanusGraph schema', script: schemaScript },
23-
{
24-
title: 'Sample data',
25-
script: sampleScript,
26-
},
27-
]);
28-
} catch (e) {
29-
logger.log('error', { message: e.message, stack: e.stack }, 'Forward-Engineering Error');
30-
31-
setTimeout(() => cb({ message: e.message, stack: e.stack }), 150);
32-
}
33-
},
7+
generateContainerScript,
348

359
applyToInstance(connectionInfo, logger, callback, app) {
3610
const sshService = app.require('@hackolade/ssh-service');
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
const { generateGremlinDataSamples } = require('./helpers/sampleDataHelper');
2+
const { generateJanusGraphSchema } = require('./helpers/schemaHelper');
3+
4+
function generateContainerScript(data, logger, cb, app) {
5+
try {
6+
logger.clear();
7+
8+
const insertSamplesOption =
9+
(data.options?.additionalOptions || []).find(option => option.id === 'INCLUDE_SAMPLES') || {};
10+
const withSamples = data.options.origin !== 'ui';
11+
12+
const schemaScript = generateJanusGraphSchema({ ...data, app });
13+
const sampleScript = generateGremlinDataSamples({ ...data, app });
14+
15+
if (withSamples || !insertSamplesOption.value) {
16+
return cb(null, `${schemaScript}\n\n${sampleScript}`);
17+
}
18+
19+
cb(null, [
20+
{ title: 'JanusGraph schema', script: schemaScript },
21+
{
22+
title: 'Sample data',
23+
script: sampleScript,
24+
},
25+
]);
26+
} catch (e) {
27+
logger.log('error', { message: e.message, stack: e.stack }, 'Forward-Engineering Error');
28+
29+
setTimeout(() => cb({ message: e.message, stack: e.stack }), 150);
30+
}
31+
}
32+
33+
module.exports = {
34+
generateContainerScript,
35+
};

forward_engineering/helpers/geoshapeHelper.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1+
const _ = require('lodash');
12
const { DEFAULT_INDENT, NEW_LINE_DOUBLE_INDENT } = require('./common');
23

3-
let _ = null;
4-
const setDependencies = dependencies => (_ = dependencies.lodash);
5-
64
const getGeoshapeSample = (field, dependencies) => {
7-
setDependencies(dependencies);
85
switch (field.subType) {
96
case 'point':
107
return getPoint(field);

forward_engineering/helpers/sampleDataHelper.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,13 @@ const getChoices = item => {
139139
return choices;
140140
}
141141

142-
return Object.assign({}, choices, {
142+
return {
143+
...choices,
143144
[choiceType]: {
144145
choice: _.get(item, choiceType, []),
145146
meta: _.get(item, `${choiceType}_meta`, {}),
146147
},
147-
});
148+
};
148149
}, {});
149150

150151
if (_.isEmpty(choices)) {
@@ -210,19 +211,22 @@ const resolveChoices = (choices, properties) => {
210211
}
211212

212213
if (_.isUndefined(choicePropertiesIndex) || Object.keys(sortedProperties).length <= choicePropertiesIndex) {
213-
return Object.assign({}, sortedProperties, choiceProperties);
214+
return { ...sortedProperties, ...choiceProperties };
214215
}
215216

216217
return Object.keys(sortedProperties).reduce((result, propertyKey, index) => {
217218
if (index !== choicePropertiesIndex) {
218-
return Object.assign({}, result, {
219+
return {
220+
...result,
219221
[propertyKey]: sortedProperties[propertyKey],
220-
});
222+
};
221223
}
222224

223-
return Object.assign({}, result, choiceProperties, {
225+
return {
226+
...result,
227+
...choiceProperties,
224228
[propertyKey]: sortedProperties[propertyKey],
225-
});
229+
};
226230
}, {});
227231
}, properties || {});
228232
};

package-lock.json

Lines changed: 141 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)