static load(luFile: string, targetFileName: string, dialogPath: string, luisSettings: Settings, existingRecognizer: any, schema?: string): Recognizer { if (existingRecognizer) { let recognizer = new Recognizer(luFile, targetFileName, schema) recognizer.dialogPath = dialogPath Object.assign(recognizer, existingRecognizer) recognizer.setAppId(luisSettings.luis[path.basename(luFile).split('.').join('_')]) return recognizer } let recognizer = new Recognizer(luFile, targetFileName, schema) recognizer.dialogPath = dialogPath return recognizer }
/* * Helper to traverse up directories from a start point */ const traverseUp = file => _(_.range(path.dirname(file).split(path.sep).length)) .map(end => _.dropRight(path.dirname(file).split(path.sep), end).join(path.sep)) .map(dir => path.join(dir, path.basename(file))) .value()
/* * Helper to parse a command into useful metadataz */ const parseCmd = meta => _.merge({}, meta, { bin: _.trimEnd(path.basename(_.first(meta._), '"')), cmd: meta._[1], args: _.drop(meta._, 2), })
// Copy _.forEach(buildCopy, item => { _.forEach(item.src, dir => { const dest = (item.direct) ? item.dest : path.join(item.dest, path.basename(dir)); fs.copySync(dir, dest, {overwrite: true}); log.info('Copied source from %s to %s', dir, dest); }); });
process(src, filename) { return `module.exports = ${JSON.stringify(path.basename(filename))};`; }
/* * Helper to return the engine task runner */ const engineRunner = (config, command) => (argv, lando) => { const AsyncEvents = require('./events'); // Build a minimal app const app = lando.cache.get(path.basename(config.composeCache)); app.config = config; app.events = new AsyncEvents(lando.log); // Load only what we need so we don't pay the appinit penalty const utils = require('./../plugins/lando-tooling/lib/utils'); const buildTask = require('./../plugins/lando-tooling/lib/build'); require('./../plugins/lando-events/app')(app, lando); app.config.tooling = utils.getToolingTasks(app.config.tooling, app); // Final event to modify and then load and run return lando.events.emit('pre-engine-runner', app) .then(() => lando.events.emit('pre-command-runner', app)) .then(() => buildTask(_.find(app.config.tooling, task => task.name === command), lando).run(argv)); }
let zipExe = async function(dists) { return Promise.all(_.map(dists, (dist) => { let name = basename(dist); return spawn('zip', [`${PATHS.DIST}/${name}.zip`, '-r', `${PATHS.DIST}/${name}`]); })); }
if (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') {
/** * do qna cross training with lu files * @param {Map<string, LUResource>} qnaFileIdToResourceMap map of qna file id and resource * @param {Map<string, LUResource>} luFileIdToResourceMap map of lu file id and resource * @param {string} interruptionIntentName interruption intent name * @param {boolean} allLuEmpty indicate if all lu files are section empty * @throws {exception} throws errors */ const qnaCrossTrain = function (qnaFileIdToResourceMap, luFileIdToResourceMap, interruptionIntentName, allLuEmpty) { try { for (const qnaObjectId of Array.from(qnaFileIdToResourceMap.keys())) { let luObjectId = qnaObjectId.toLowerCase().replace(new RegExp(helpers.FileExtTypeEnum.QnAFile + '$'), helpers.FileExtTypeEnum.LUFile) let fileName = path.basename(qnaObjectId, path.extname(qnaObjectId)) const culture = fileHelper.getCultureFromPath(qnaObjectId) fileName = culture ? fileName.substring(0, fileName.length - culture.length - 1) : fileName luObjectId = Array.from(luFileIdToResourceMap.keys()).find(x => x.toLowerCase() === luObjectId) if (luObjectId) { const { luResource, qnaResource } = qnaCrossTrainCore(luFileIdToResourceMap.get(luObjectId), qnaFileIdToResourceMap.get(qnaObjectId), fileName, interruptionIntentName, allLuEmpty) luFileIdToResourceMap.set(luObjectId, luResource) qnaFileIdToResourceMap.set(qnaObjectId, qnaResource) } else { let qnaResource = qnaAddMetaData(qnaFileIdToResourceMap.get(qnaObjectId), fileName) qnaFileIdToResourceMap.set(qnaObjectId, qnaResource) } } } catch (err) { throw (err) } }
.each(task => { lando.tasks.push(require(task)(lando)); lando.log.debug('autoloaded task %s', path.basename(task, '.js')); })
let createRelease = async function(api) { let {url} = Config.repository; let owner = basename(dirname(url)); let repo = basename(url, extname(url)); let cb = (resolve, reject) => { api.releases.createRelease({ owner: owner, repo: repo, tag_name: `v${Config.version}`, body: argv.desc || '', name: argv.name || `v${Config.version}`, draft: argv.draft === 'yes' }, (err, result) => { if(err) { onError(err); return reject(err); } resolve(result); }); }; return new Promise(cb); }
const target = dialogs.find(dialog => path.basename(dialog.path, dialogExt) === dialogName)
let uploadAsset = async function(api, id, dists) { let {url} = Config.repository; let owner = basename(dirname(url)); let repo = basename(url, extname(url)); return Promise.all(_.map(dists, (dist) => { let name = `${basename(dist)}.zip`; let filePath = join(PATHS.DIST, name); return new Promise((resolve, reject) => { api.releases.uploadAsset({ owner: owner, repo: repo, id: id, name: name, filePath: filePath }, (err, result) => { if(err) { onError(err); return reject(err); } resolve(result); }); }); })); }
process(src, filename) { const assetFilename = JSON.stringify(path.basename(filename)); if (filename.match(/\.svg$/)) { // Based on how SVGR generates a component name: // https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6 const pascalCaseFileName = camelcase(path.parse(filename).name, { pascalCase: true, }); const componentName = `Svg${pascalCaseFileName}`; return `const React = require('react'); module.exports = { __esModule: true, default: ${assetFilename}, ReactComponent: React.forwardRef(function ${componentName}(props, ref) { return { $$typeof: Symbol.for('react.element'), type: 'svg', ref: ref, key: null, props: Object.assign({}, props, { children: ${assetFilename} }) }; }), };`; } return `module.exports = ${assetFilename};`; }
static load(qnaFile: string, targetFileName: string, dialogPath: string, qnaSettings: Settings, existingRecognizer: any, schema?: string): Recognizer { if (existingRecognizer) { let recognizer = new Recognizer(qnaFile, targetFileName, schema) recognizer.dialogPath = dialogPath Object.assign(recognizer, existingRecognizer) recognizer.setKBId(qnaSettings.qna[path.basename(qnaFile).split('.').join('_')]) return recognizer } let recognizer = new Recognizer(qnaFile, targetFileName, schema) recognizer.dialogPath = dialogPath return recognizer }