@aws-amplify/amplify-category-predictions
Version:
amplify-cli predictions plugin
173 lines • 5.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const transcriptionOptions = [
{ name: 'British English', value: 'en-GB' },
{ name: 'US English', value: 'en-US' },
{ name: 'French', value: 'fr-FR' },
{ name: 'Canadian French', value: 'fr-CA' },
{ name: 'US Spanish', value: 'es-US' },
];
const translateOptions = [
{ name: 'Arabic', value: 'ar' },
{ name: 'Chinese (Simplified)', value: 'zh' },
{ name: 'Chinese (Traditional)', value: 'zh-TW' },
{ name: 'Czech', value: 'cs' },
{ name: 'Danish', value: 'da' },
{ name: 'Dutch', value: 'nl' },
{ name: 'English', value: 'en' },
{ name: 'Finnish', value: 'fi' },
{ name: 'French', value: 'fr' },
{ name: 'German', value: 'de' },
{ name: 'Greek', value: 'el' },
{ name: 'Hebrew', value: 'he' },
{ name: 'Hindi', value: 'hi' },
{ name: 'Hungarian', value: 'hu' },
{ name: 'Indonesian', value: 'id' },
{ name: 'Italian', value: 'it' },
{ name: 'Japanese', value: 'ja' },
{ name: 'Korean', value: 'ko' },
{ name: 'Malay', value: 'ms' },
{ name: 'Norwegian', value: 'no' },
{ name: 'Persian', value: 'fa' },
{ name: 'Polish', value: 'pl' },
{ name: 'Portuguese', value: 'pt' },
{ name: 'Romanian', value: 'ro' },
{ name: 'Russian', value: 'ru' },
{ name: 'Spanish', value: 'es' },
{ name: 'Swedish', value: 'sv' },
{ name: 'Thai', value: 'th' },
{ name: 'Turkish', value: 'tr' },
{ name: 'Ukrainian', value: 'uk' },
{ name: 'Urdu', value: 'ur' },
{ name: 'Vietnamese', value: 'vi' },
];
const deniedCombos = {
zh: ['zh-TW'],
'zh-Tw': ['zh'],
ko: ['he'],
no: ['ar', 'he'],
};
const convertAccess = {
prompt(options) {
return {
type: 'list',
name: 'access',
message: 'Who should have access?',
choices: [
{
name: 'Auth users only',
value: 'auth',
},
{
name: 'Auth and Guest users',
value: 'authAndGuest',
},
],
default: options.access ? options.access : 'auth',
};
},
};
const setup = {
type() {
return {
type: 'list',
name: 'convertType',
message: 'What would you like to convert?',
choices: [
{
name: 'Translate text into a different language',
value: 'translateText',
},
{
name: 'Generate speech audio from text',
value: 'speechGenerator',
},
{
name: 'Transcribe text from audio',
value: 'transcription',
},
],
};
},
name(defaultName) {
return {
name: 'resourceName',
message: 'Provide a friendly name for your resource',
validate: (value) => {
const regex = new RegExp('^[a-zA-Z0-9]+$');
return regex.test(value) ? true : 'Resource name should be alphanumeric!';
},
default: defaultName,
};
},
};
const translateText = {
questions(options) {
return {
type: 'list',
name: 'sourceLang',
message: 'What is the source language?',
choices: translateOptions,
default: options.sourceLang,
};
},
targetQuestion(targetOptions, options) {
return {
type: 'list',
name: 'targetLang',
message: 'What is the target language?',
choices: targetOptions,
default: options.targetLang,
};
},
service: 'Translate',
authAccess: convertAccess,
};
const speechGenerator = {
questions(options) {
return {
type: 'list',
name: 'language',
message: 'What is the source language?',
choices: options.languages,
default: options.language,
};
},
voiceQuestion(langID, options) {
return {
type: 'list',
name: 'voice',
message: 'Select a speaker',
choices: options.voices[langID],
default: options.voice,
};
},
service: 'Polly',
authAccess: convertAccess,
};
const transcription = {
questions(options) {
return {
type: 'list',
name: 'language',
message: 'What is the source language?',
choices: transcriptionOptions,
default: options.language,
};
},
service: 'Transcribe',
authAccess: convertAccess,
};
const convertTypes = {
translateText,
speechGenerator,
transcription,
};
exports.default = {
setup,
convertTypes,
convertAccess,
translateOptions,
deniedCombos,
};
//# sourceMappingURL=convertQuestions.js.map