"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getChildResourceNameFromPath = exports.getResourceNameFromPath = void 0;
const codegen_1 = require("@azure-tools/codegen");
const pluralizationService = new codegen_1.EnglishPluralizationService();
pluralizationService.addWord('Database', 'Databases');
pluralizationService.addWord('database', 'databases');
pluralizationService.addWord('Premise', 'Premises');
pluralizationService.addWord('premise', 'premises');
//for sliced path: "/parentName/{name}/chileName", the second splited element is the parent name, and the fourth element is the child name 
function slicePath(path, name, index) {
    return path.slice(path.search(new RegExp(`/[^/]*/{${name}}`))).split('/')[index];
}
function get(path, name, singularize = false, index) {
    const resourceName = path ? slicePath(path, name, index) : undefined;
    return resourceName && !isResourceNameVariable(resourceName) ? (singularize ? pluralizationService.singularize(resourceName) : resourceName) : undefined;
}
function getResourceNameFromPath(path, name, singularize = false) {
    return get(path, name, singularize, 1);
}
exports.getResourceNameFromPath = getResourceNameFromPath;
function getChildResourceNameFromPath(path, parent, singularize = false) {
    return get(path, parent, singularize, 3);
}
exports.getChildResourceNameFromPath = getChildResourceNameFromPath;
function isResourceNameVariable(name) {
    return /^{.*}$/g.test(name);
}
//# sourceMappingURL=resourceName.js.map