fix(cli-sense): apply default when using javascript api (#633)

This commit is contained in:
Tobias Linsefors
2021-07-01 14:41:45 +02:00
committed by GitHub
parent bd9bdf9e36
commit 8eded3055e
5 changed files with 67 additions and 43 deletions

View File

@@ -1,51 +1,13 @@
const buildLegacy = require('./lib/build-legacy');
const build = require('./lib/build');
const init = require('./lib/init-config');
const sense = require('./lib/sense');
module.exports = {
command: 'sense',
desc: 'Build a nebula visualization as a Qlik Sense extension',
builder(yargs) {
yargs.option('ext', {
type: 'string',
required: false,
desc: 'Extension definition',
});
yargs.option('meta', {
type: 'string',
required: false,
desc: 'Extension meta information',
});
yargs.option('output', {
type: 'string',
required: false,
default: '<name>-ext',
desc: 'Destination directory',
});
yargs.option('minify', {
type: 'boolean',
required: false,
default: true,
desc: 'Minify and uglify code',
});
yargs.option('sourcemap', {
type: 'boolean',
required: false,
default: false,
desc: 'Generate sourcemaps',
});
yargs.option('partial', {
type: 'boolean',
required: false,
default: false,
desc: 'Generate partial extension',
hidden: true,
});
init(yargs);
},
handler(argv) {
if (argv.partial) {
build(argv);
} else {
buildLegacy(argv);
}
sense(argv);
},
};

View File

@@ -0,0 +1,11 @@
const extend = require('extend');
const yargs = require('yargs');
const initConfig = require('./init-config');
const sense = require('./sense');
module.exports = (argv) => {
// not runnning via command line, run the config to inject default values
const defaultBuildConfig = initConfig(yargs([])).argv;
const senseConfig = extend(true, {}, defaultBuildConfig, argv);
sense(senseConfig);
};

View File

@@ -0,0 +1,39 @@
const options = {
ext: {
type: 'string',
required: false,
desc: 'Extension definition',
},
meta: {
type: 'string',
required: false,
desc: 'Extension meta information',
},
output: {
type: 'string',
required: false,
default: '<name>-ext',
desc: 'Destination directory',
},
minify: {
type: 'boolean',
required: false,
default: true,
desc: 'Minify and uglify code',
},
sourcemap: {
type: 'boolean',
required: false,
default: false,
desc: 'Generate sourcemaps',
},
partial: {
type: 'boolean',
required: false,
default: false,
desc: 'Generate partial extension',
hidden: true,
},
};
module.exports = (yargs) => yargs.options(options);

View File

@@ -0,0 +1,11 @@
const buildLegacy = require('./build-legacy');
const build = require('./build');
function sense(argv) {
if (argv.partial) {
build(argv);
} else {
buildLegacy(argv);
}
}
module.exports = sense;

View File

@@ -17,7 +17,7 @@
"type": "git",
"url": "https://github.com/qlik-oss/nebula.js.git"
},
"main": "lib/build.js",
"main": "lib/api-entry.js",
"files": [
"command.js",
"lib",
@@ -34,6 +34,7 @@
"@rollup/plugin-commonjs": "19.0.0",
"@rollup/plugin-node-resolve": "13.0.0",
"@rollup/plugin-replace": "2.4.2",
"extend": "3.0.2",
"fs-extra": "10.0.0",
"node-event-emitter": "0.0.1",
"rollup": "2.50.6",