UNPKG

@lipagas/ember-core

Version:

Provides all the core services, decorators and utilities for building a Fleetbase extension for the Console.

46 lines (36 loc) 1.19 kB
import { get } from '@ember/object'; import { isArray } from '@ember/array'; import { isBlank } from '@ember/utils'; import { w, capitalize } from '@ember/string'; import isModel from './is-model'; import humanize from './humanize'; export default function getModelName(model, fallback = null, options = {}) { let modelName; if (isArray(fallback)) { for (let i = 0; i < fallback.length; i++) { const defaultValue = fallback.objectAt(i); if (!isBlank(defaultValue)) { modelName = defaultValue; break; } } } else { modelName = fallback; } if (isModel(model)) { modelName = get(model, 'constructor.modelName') ?? get(model, '_internalModel.modelName') ?? fallback; } if (options.humanize === true) { modelName = humanize(modelName); } if (options.lowercase === true) { modelName = modelName.toLowerCase(); } if (options.capitalize === true) { modelName = capitalize(modelName); } if (options.capitalizeWords === true) { modelName = w(modelName).map(capitalize).join(' '); } return modelName; }