UNPKG

2.59 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const jovo_cli_platform_alexa_1 = require("jovo-cli-platform-alexa");
4const jovo_cli_platform_google_1 = require("jovo-cli-platform-google");
5const jovo_cli_core_1 = require("jovo-cli-core");
6const project = jovo_cli_core_1.getProject();
7const instances = {};
8const AVAILABLE_PLATFORMS = [
9 jovo_cli_platform_alexa_1.JovoCliPlatformAlexa,
10 jovo_cli_platform_google_1.JovoCliPlatformGoogle,
11];
12function createPlatformInstance(name) {
13 name = name.toString();
14 for (let i = 0; i < AVAILABLE_PLATFORMS.length; i++) {
15 if (AVAILABLE_PLATFORMS[i].PLATFORM_KEY === name) {
16 return new AVAILABLE_PLATFORMS[i]();
17 }
18 }
19 throw (new Error(`The platform "${name}" is not supported!`));
20}
21function getAllAvailable() {
22 const platformNames = [];
23 AVAILABLE_PLATFORMS.forEach((platform) => {
24 platformNames.push(platform.PLATFORM_KEY);
25 });
26 return platformNames;
27}
28exports.getAllAvailable = getAllAvailable;
29function getAll(platform, stage) {
30 if (platform) {
31 return [platform];
32 }
33 const projectPlatforms = [];
34 const config = project.getConfig(stage);
35 let platformInstance;
36 getAllAvailable().forEach((platformName) => {
37 platformInstance = get(platformName);
38 try {
39 if (config.hasOwnProperty(platformName)) {
40 projectPlatforms.push(platformName);
41 }
42 }
43 catch (error) {
44 if (platformInstance.hasPlatform()) {
45 projectPlatforms.push(platformName);
46 }
47 }
48 });
49 return projectPlatforms;
50}
51exports.getAll = getAll;
52function get(name) {
53 if (!instances.hasOwnProperty(name)) {
54 instances[name] = createPlatformInstance(name);
55 }
56 return instances[name];
57}
58exports.get = get;
59function addCliOptions(command, vorpalCommand) {
60 let platformInstance;
61 getAllAvailable().forEach((platformName) => {
62 platformInstance = get(platformName);
63 platformInstance.getAdditionalCliOptions(command, vorpalCommand);
64 });
65}
66exports.addCliOptions = addCliOptions;
67function validateCliOptions(command, args) {
68 let platformInstance;
69 const allPlatforms = getAllAvailable();
70 for (let i = 0; i < allPlatforms.length; i++) {
71 platformInstance = get(allPlatforms[i]);
72 if (!platformInstance.validateAdditionalCliOptions(command, args)) {
73 return false;
74 }
75 }
76 return true;
77}
78exports.validateCliOptions = validateCliOptions;
79//# sourceMappingURL=Platforms.js.map
\No newline at end of file