@vtex/api
Version:
VTEX I/O API client
17 lines (16 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logAvailableRoutes = exports.formatPublicRoute = exports.formatPrivateRoute = void 0;
const constants_1 = require("../../../../constants");
const formatPrivateRoute = ({ protocol = 'https', vendor, name, major, account, workspace, path }) => `${protocol}://app.io.vtex.com/${vendor}.${name}/v${major}/${account}/${workspace}${path || ''}`;
exports.formatPrivateRoute = formatPrivateRoute;
const formatPublicRoute = ({ workspace, account, endpoint, path }) => `https://${workspace}--${account}.${endpoint}${path}`;
exports.formatPublicRoute = formatPublicRoute;
const getPath = ({ public: publicRoute, path }) => publicRoute
? (0, exports.formatPublicRoute)({ workspace: constants_1.WORKSPACE, account: constants_1.ACCOUNT, endpoint: constants_1.PUBLIC_ENDPOINT, path })
: (0, exports.formatPrivateRoute)({ protocol: 'https', vendor: constants_1.APP.VENDOR, name: constants_1.APP.NAME, major: constants_1.APP.MAJOR, account: constants_1.ACCOUNT, workspace: constants_1.WORKSPACE, path });
const logAvailableRoutes = (service) => {
const available = Object.values(service.routes || {}).reduce((acc, route) => `${acc}\n${getPath(route)}`, 'Available service routes:');
console.info(available);
};
exports.logAvailableRoutes = logAvailableRoutes;