create-piral-instance
Version:
The NPM initializer to scaffold a new Piral instance.
110 lines • 3.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const piral_cli_1 = require("piral-cli");
const utils_1 = require("piral-cli/utils");
const key = 'use-feed';
const options = {
empty: 'use default empty feed',
custom: 'use custom feed specified by URL',
createOfficial: 'create a new feed on feed.piral.cloud',
createCustom: 'create a new feed on a custom service',
};
const host = {
current: 'https://feed.piral.cloud',
};
const flags = [
{
name: key,
alias: [],
default: options.empty,
ignore: true,
describe: 'Sets the micro frontend feed to use for the new app.',
required: false,
type: 'string',
values: [options.empty, options.custom, options.createOfficial, options.createCustom],
},
{
name: 'vars',
alias: [],
default: 'https://feed.piral.cloud/api/v1/pilet/empty',
describe: 'The URL for the custom feed to use.',
required: false,
type: 'string',
convert(answer) {
return {
feedUrl: answer,
};
},
when(answers) {
return answers[key] === options.custom;
},
},
{
name: 'vars',
alias: [],
default: `awesome-feed-${~~(Math.random() * 100000)}`,
describe: 'The name for the custom feed to use.',
required: false,
type: 'string',
async validate(answer) {
const data = {
id: answer,
};
const result = await (0, utils_1.postData)(`https://feed.piral.cloud/api/v1/feed`, 'none', '', data, { 'content-type': 'application/json' }, undefined, false, true);
return result.success;
},
convert(answer) {
return {
feedUrl: `https://feed.piral.cloud/api/v1/pilet/${answer}`,
};
},
when(answers) {
return answers[key] === options.createOfficial;
},
},
{
name: 'custom-host',
alias: [],
default: host.current,
describe: 'The host for the custom feed service to use (e.g., https://feed.company.com).',
required: false,
ignore: true,
type: 'string',
validate(answer) {
host.current = answer;
return /^https?:\/\//.test(answer);
},
when(answers) {
return answers[key] === options.createCustom;
},
},
{
name: 'vars',
alias: [],
default: `awesome-feed-${~~(Math.random() * 100000)}`,
describe: 'The name for the custom feed to use.',
required: false,
type: 'string',
async validate(answer) {
const data = {
id: answer,
};
const result = await (0, utils_1.postData)(`${host.current}/api/v1/feed`, 'none', '', data, { 'content-type': 'application/json' }, undefined, true);
return result.success;
},
convert(answer) {
return {
feedUrl: `${host.current}/api/v1/pilet/${answer}`,
};
},
when(answers) {
return answers[key] === options.createCustom;
},
},
];
(0, piral_cli_1.runQuestionnaire)('new-piral', undefined, flags).then(() => process.exit(0), (err) => {
err && !err.logged && console.error(err.message);
console.log('Codes Reference: https://docs.piral.io/code/search');
process.exit(1);
});
//# sourceMappingURL=index.js.map