#![forbid(unsafe_code)]
#![doc = include_str!("../README.md")]
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub enum NuxtVersionFamily {
Nuxt2,
Nuxt3,
Nuxt4,
}
impl NuxtVersionFamily {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Nuxt2 => "nuxt2",
Self::Nuxt3 => "nuxt3",
Self::Nuxt4 => "nuxt4",
}
}
}
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub enum NuxtDirectoryKind {
Pages,
Components,
Composables,
Layouts,
Middleware,
Plugins,
Server,
Content,
Assets,
Public,
}
impl NuxtDirectoryKind {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Pages => "pages",
Self::Components => "components",
Self::Composables => "composables",
Self::Layouts => "layouts",
Self::Middleware => "middleware",
Self::Plugins => "plugins",
Self::Server => "server",
Self::Content => "content",
Self::Assets => "assets",
Self::Public => "public",
}
}
}
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub enum NuxtRenderingMode {
Ssr,
Spa,
Static,
Hybrid,
}
impl NuxtRenderingMode {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Ssr => "ssr",
Self::Spa => "spa",
Self::Static => "static",
Self::Hybrid => "hybrid",
}
}
}
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub enum NuxtConfigFile {
JavaScript,
TypeScript,
Mjs,
Mts,
}
impl NuxtConfigFile {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::JavaScript => "nuxt.config.js",
Self::TypeScript => "nuxt.config.ts",
Self::Mjs => "nuxt.config.mjs",
Self::Mts => "nuxt.config.mts",
}
}
}
#[cfg(test)]
mod tests {
use super::{NuxtConfigFile, NuxtDirectoryKind, NuxtRenderingMode, NuxtVersionFamily};
#[test]
fn exposes_nuxt_labels() {
assert_eq!(NuxtVersionFamily::Nuxt3.as_str(), "nuxt3");
assert_eq!(NuxtDirectoryKind::Composables.as_str(), "composables");
assert_eq!(NuxtRenderingMode::Ssr.as_str(), "ssr");
assert_eq!(NuxtConfigFile::TypeScript.as_str(), "nuxt.config.ts");
}
}