add cli asking for missing vars
This commit is contained in:
parent
c6bc044058
commit
6334eb4d0f
6
dist/smartscaf.classes.smartscaf.d.ts
vendored
6
dist/smartscaf.classes.smartscaf.d.ts
vendored
@ -20,6 +20,10 @@ export declare class ScafTemplate {
|
|||||||
* @param variablesArg
|
* @param variablesArg
|
||||||
*/
|
*/
|
||||||
supplyVariables(variablesArg: any): Promise<void>;
|
supplyVariables(variablesArg: any): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Will ask for the missing variables by cli interaction
|
||||||
|
*/
|
||||||
|
askCliForMissingVariables(): Promise<void>;
|
||||||
/**
|
/**
|
||||||
* finds all variables in a Template
|
* finds all variables in a Template
|
||||||
*/
|
*/
|
||||||
@ -27,5 +31,5 @@ export declare class ScafTemplate {
|
|||||||
/**
|
/**
|
||||||
* checks if supplied Variables satisfy the template
|
* checks if supplied Variables satisfy the template
|
||||||
*/
|
*/
|
||||||
private _checkSuppliedVariables(variablesArg);
|
private _checkSuppliedVariables();
|
||||||
}
|
}
|
||||||
|
27
dist/smartscaf.classes.smartscaf.js
vendored
27
dist/smartscaf.classes.smartscaf.js
vendored
@ -30,7 +30,25 @@ class ScafTemplate {
|
|||||||
supplyVariables(variablesArg) {
|
supplyVariables(variablesArg) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
this.suppliedVariables = variablesArg;
|
this.suppliedVariables = variablesArg;
|
||||||
this.missingVariables = yield this._checkSuppliedVariables(variablesArg);
|
this.missingVariables = yield this._checkSuppliedVariables();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Will ask for the missing variables by cli interaction
|
||||||
|
*/
|
||||||
|
askCliForMissingVariables() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
this.missingVariables = yield this._checkSuppliedVariables();
|
||||||
|
let localSmartInteract = new plugins.smartinteract.SmartInteract();
|
||||||
|
for (let missingVariable of this.missingVariables) {
|
||||||
|
localSmartInteract.addQuestions([{
|
||||||
|
name: missingVariable,
|
||||||
|
type: 'input',
|
||||||
|
default: `undefined ${missingVariable}`,
|
||||||
|
message: `What is the value of ${missingVariable}?`
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
let answers = yield localSmartInteract.runQueue();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -45,16 +63,17 @@ class ScafTemplate {
|
|||||||
/**
|
/**
|
||||||
* checks if supplied Variables satisfy the template
|
* checks if supplied Variables satisfy the template
|
||||||
*/
|
*/
|
||||||
_checkSuppliedVariables(variablesArg) {
|
_checkSuppliedVariables() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
let missingVars = [];
|
let missingVars = [];
|
||||||
for (let templateSmartFile of this.templateSmartfileArray) {
|
for (let templateSmartFile of this.templateSmartfileArray) {
|
||||||
let localMissingVars = yield plugins.smarthbs.checkVarsSatisfaction(templateSmartFile.contents.toString(), variablesArg);
|
let localMissingVars = yield plugins.smarthbs.checkVarsSatisfaction(templateSmartFile.contents.toString(), this.suppliedVariables);
|
||||||
missingVars = plugins.lodash.concat(missingVars, localMissingVars);
|
missingVars = plugins.lodash.concat(missingVars, localMissingVars);
|
||||||
|
missingVars = plugins.lodash.uniq(missingVars);
|
||||||
}
|
}
|
||||||
return missingVars;
|
return missingVars;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.ScafTemplate = ScafTemplate;
|
exports.ScafTemplate = ScafTemplate;
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzY2FmLmNsYXNzZXMuc21hcnRzY2FmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzY2FmLmNsYXNzZXMuc21hcnRzY2FmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwrQ0FBOEM7QUFXOUM7SUFBQTtRQU1FLHFCQUFnQixHQUFhLEVBQUUsQ0FBQTtJQTRDakMsQ0FBQztJQTFDQzs7T0FFRztJQUNHLG1CQUFtQixDQUFFLFVBQWtCOztZQUMzQyxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUM5QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDMUYsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUE7UUFDakMsQ0FBQztLQUFBO0lBRUQ7OztPQUdHO0lBQ0csZUFBZSxDQUFFLFlBQVk7O1lBQ2pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxZQUFZLENBQUE7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzFFLENBQUM7S0FBQTtJQUVEOztPQUVHO0lBQ1csd0JBQXdCOztZQUNwQyxHQUFHLENBQUMsQ0FBQyxJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1lBRXpELENBQUM7UUFDSCxDQUFDO0tBQUE7SUFFRDs7T0FFRztJQUNXLHVCQUF1QixDQUFDLFlBQVk7O1lBQ2hELElBQUksV0FBVyxHQUFhLEVBQUUsQ0FBQTtZQUM5QixHQUFHLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQUksZ0JBQWdCLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUNqRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQ3JDLFlBQVksQ0FDYixDQUFBO2dCQUNELFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtZQUNwRSxDQUFDO1lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQTtRQUNwQixDQUFDO0tBQUE7Q0FDRjtBQWxERCxvQ0FrREMifQ==
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzY2FmLmNsYXNzZXMuc21hcnRzY2FmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzY2FmLmNsYXNzZXMuc21hcnRzY2FmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwrQ0FBOEM7QUFXOUM7SUFBQTtRQU1FLHFCQUFnQixHQUFhLEVBQUUsQ0FBQTtJQTZEakMsQ0FBQztJQTNEQzs7T0FFRztJQUNHLG1CQUFtQixDQUFFLFVBQWtCOztZQUMzQyxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUM5QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDMUYsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUE7UUFDakMsQ0FBQztLQUFBO0lBRUQ7OztPQUdHO0lBQ0csZUFBZSxDQUFFLFlBQVk7O1lBQ2pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxZQUFZLENBQUE7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUE7UUFDOUQsQ0FBQztLQUFBO0lBRUQ7O09BRUc7SUFDRyx5QkFBeUI7O1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO1lBQzVELElBQUksa0JBQWtCLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFBO1lBQ2xFLEdBQUcsQ0FBQyxDQUFDLElBQUksZUFBZSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUMvQixJQUFJLEVBQUUsZUFBZTt3QkFDckIsSUFBSSxFQUFFLE9BQU87d0JBQ2IsT0FBTyxFQUFFLGFBQWEsZUFBZSxFQUFFO3dCQUN2QyxPQUFPLEVBQUUsd0JBQXdCLGVBQWUsR0FBRztxQkFDcEQsQ0FBQyxDQUFDLENBQUE7WUFDTCxDQUFDO1lBQ0QsSUFBSSxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNuRCxDQUFDO0tBQUE7SUFFRDs7T0FFRztJQUNXLHdCQUF3Qjs7WUFDcEMsR0FBRyxDQUFDLENBQUMsSUFBSSxjQUFjLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztZQUV6RCxDQUFDO1FBQ0gsQ0FBQztLQUFBO0lBRUQ7O09BRUc7SUFDVyx1QkFBdUI7O1lBQ25DLElBQUksV0FBVyxHQUFhLEVBQUUsQ0FBQTtZQUM5QixHQUFHLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQUksZ0JBQWdCLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUNqRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQTtnQkFDRCxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUE7Z0JBQ2xFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNoRCxDQUFDO1lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQTtRQUNwQixDQUFDO0tBQUE7Q0FDRjtBQW5FRCxvQ0FtRUMifQ==
|
2
dist/smartscaf.helpers.js
vendored
2
dist/smartscaf.helpers.js
vendored
@ -1 +1,3 @@
|
|||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzY2FmLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHNjYWYuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzY2FmLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHNjYWYuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
3
dist/smartscaf.plugins.d.ts
vendored
3
dist/smartscaf.plugins.d.ts
vendored
@ -3,5 +3,6 @@ import * as lodash from 'lodash';
|
|||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as smartfile from 'smartfile';
|
import * as smartfile from 'smartfile';
|
||||||
import * as smarthbs from 'smarthbs';
|
import * as smarthbs from 'smarthbs';
|
||||||
|
import * as smartinteract from 'smartinteract';
|
||||||
import * as smartq from 'smartq';
|
import * as smartq from 'smartq';
|
||||||
export { lodash, path, smartfile, smarthbs, smartq };
|
export { lodash, path, smartfile, smarthbs, smartinteract, smartq };
|
||||||
|
4
dist/smartscaf.plugins.js
vendored
4
dist/smartscaf.plugins.js
vendored
@ -9,6 +9,8 @@ const smartfile = require("smartfile");
|
|||||||
exports.smartfile = smartfile;
|
exports.smartfile = smartfile;
|
||||||
const smarthbs = require("smarthbs");
|
const smarthbs = require("smarthbs");
|
||||||
exports.smarthbs = smarthbs;
|
exports.smarthbs = smarthbs;
|
||||||
|
const smartinteract = require("smartinteract");
|
||||||
|
exports.smartinteract = smartinteract;
|
||||||
const smartq = require("smartq");
|
const smartq = require("smartq");
|
||||||
exports.smartq = smartq;
|
exports.smartq = smartq;
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzY2FmLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHNjYWYucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBCQUF1QjtBQUN2QixpQ0FBZ0M7QUFPOUIsd0JBQU07QUFOUiw2QkFBNEI7QUFPMUIsb0JBQUk7QUFOTix1Q0FBc0M7QUFPcEMsOEJBQVM7QUFOWCxxQ0FBb0M7QUFPbEMsNEJBQVE7QUFOVixpQ0FBZ0M7QUFPOUIsd0JBQU0ifQ==
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzY2FmLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHNjYWYucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBCQUF1QjtBQUN2QixpQ0FBZ0M7QUFROUIsd0JBQU07QUFQUiw2QkFBNEI7QUFRMUIsb0JBQUk7QUFQTix1Q0FBc0M7QUFRcEMsOEJBQVM7QUFQWCxxQ0FBb0M7QUFRbEMsNEJBQVE7QUFQViwrQ0FBOEM7QUFRNUMsc0NBQWE7QUFQZixpQ0FBZ0M7QUFROUIsd0JBQU0ifQ==
|
@ -19,4 +19,8 @@ tap.test('smartfile -> should accept variables', async () => {
|
|||||||
console.log(testScafTemplate.missingVariables)
|
console.log(testScafTemplate.missingVariables)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
tap.test('ask cli', async () => {
|
||||||
|
await testScafTemplate.askCliForMissingVariables()
|
||||||
|
})
|
||||||
|
|
||||||
tap.start()
|
tap.start()
|
||||||
|
@ -32,15 +32,24 @@ export class ScafTemplate {
|
|||||||
*/
|
*/
|
||||||
async supplyVariables (variablesArg) {
|
async supplyVariables (variablesArg) {
|
||||||
this.suppliedVariables = variablesArg
|
this.suppliedVariables = variablesArg
|
||||||
this.missingVariables = await this._checkSuppliedVariables(variablesArg)
|
this.missingVariables = await this._checkSuppliedVariables()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Will ask for the missing variables by cli interaction
|
* Will ask for the missing variables by cli interaction
|
||||||
*/
|
*/
|
||||||
async askForMissingVariables () {
|
async askCliForMissingVariables () {
|
||||||
this.missingVariables = await this._checkSuppliedVariables(variablesArg)
|
this.missingVariables = await this._checkSuppliedVariables()
|
||||||
|
let localSmartInteract = new plugins.smartinteract.SmartInteract()
|
||||||
|
for (let missingVariable of this.missingVariables) {
|
||||||
|
localSmartInteract.addQuestions([{
|
||||||
|
name: missingVariable,
|
||||||
|
type: 'input',
|
||||||
|
default: `undefined ${missingVariable}`,
|
||||||
|
message: `What is the value of ${missingVariable}?`
|
||||||
|
}])
|
||||||
|
}
|
||||||
|
let answers = await localSmartInteract.runQueue()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -55,16 +64,16 @@ export class ScafTemplate {
|
|||||||
/**
|
/**
|
||||||
* checks if supplied Variables satisfy the template
|
* checks if supplied Variables satisfy the template
|
||||||
*/
|
*/
|
||||||
private async _checkSuppliedVariables(variablesArg) {
|
private async _checkSuppliedVariables() {
|
||||||
let missingVars: string[] = []
|
let missingVars: string[] = []
|
||||||
for (let templateSmartFile of this.templateSmartfileArray) {
|
for (let templateSmartFile of this.templateSmartfileArray) {
|
||||||
let localMissingVars = await plugins.smarthbs.checkVarsSatisfaction(
|
let localMissingVars = await plugins.smarthbs.checkVarsSatisfaction(
|
||||||
templateSmartFile.contents.toString(),
|
templateSmartFile.contents.toString(),
|
||||||
variablesArg
|
this.suppliedVariables
|
||||||
)
|
)
|
||||||
missingVars = plugins.lodash.concat(missingVars, localMissingVars)
|
missingVars = plugins.lodash.concat(missingVars, localMissingVars)
|
||||||
|
missingVars = plugins.lodash.uniq(missingVars)
|
||||||
}
|
}
|
||||||
|
|
||||||
return missingVars
|
return missingVars
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,11 +44,7 @@
|
|||||||
version "2.0.29"
|
version "2.0.29"
|
||||||
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a"
|
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a"
|
||||||
|
|
||||||
"@types/node@*":
|
"@types/node@*", "@types/node@^6.0.48":
|
||||||
version "7.0.15"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.15.tgz#628429289604c5f7e56c13f3a0422f3e59df1a17"
|
|
||||||
|
|
||||||
"@types/node@^6.0.48":
|
|
||||||
version "6.0.72"
|
version "6.0.72"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.72.tgz#0f19de38555f3c33d733d678991347f7d0eefaff"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.72.tgz#0f19de38555f3c33d733d678991347f7d0eefaff"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user