UNPKG

boats

Version:

Beautiful Open / Async Template System - Write less yaml with BOATS and Nunjucks.

55 lines (54 loc) 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const upath_1 = tslib_1.__importDefault(require("upath")); const UniqueOperationIds_1 = tslib_1.__importDefault(require("./UniqueOperationIds")); const MethodAliasPosition_1 = require("./enums/MethodAliasPosition"); const ucFirst_1 = tslib_1.__importDefault(require("./ucFirst")); // eslint-disable-next-line @typescript-eslint/no-require-imports const packageJson = require(upath_1.default.join(process.cwd(), 'package.json')); const defaultPrefix = { get: 'read', post: 'create', put: 'update', patch: 'update', delete: 'delete' }; exports.default = (boatsrc, filePath, stripValue, prefix = '', tail = '', removeMethod) => { var _a, _b, _c; const permissionConfig = (boatsrc && boatsrc.permissionConfig) || {}; const methodAlias = permissionConfig.methodAlias || {}; const prefixConfig = Object.assign(defaultPrefix, methodAlias); const mainPrefixes = []; const usePackageName = typeof permissionConfig.globalPrefix === 'undefined' || permissionConfig.globalPrefix === true; if (usePackageName) { mainPrefixes.push(packageJson.name); } else if (typeof permissionConfig.globalPrefix === 'string') { mainPrefixes.push(permissionConfig.globalPrefix); } if (prefix !== '') { mainPrefixes.push(prefix); } const method = upath_1.default.basename(filePath).replace(/\..*/, '').toLowerCase(); const calculatedPrefix = prefixConfig[method] || method; const tails = []; if (tail) { tails.push(tail); } if (((_a = boatsrc === null || boatsrc === void 0 ? void 0 : boatsrc.permissionConfig) === null || _a === void 0 ? void 0 : _a.methodAliasPosition) === MethodAliasPosition_1.MethodAliasPosition.EndOfPermissionString) { tails.push((0, ucFirst_1.default)(calculatedPrefix)); } else { mainPrefixes.push(calculatedPrefix); } return UniqueOperationIds_1.default.getUniqueOperationIdFromPath({ filePath, stripValue, tails, removeMethod, style: (_b = boatsrc === null || boatsrc === void 0 ? void 0 : boatsrc.permissionConfig) === null || _b === void 0 ? void 0 : _b.permissionStyle, segmentStyle: (_c = boatsrc === null || boatsrc === void 0 ? void 0 : boatsrc.permissionConfig) === null || _c === void 0 ? void 0 : _c.permissionSegmentStyle, prefixes: mainPrefixes }); };