import type { Nullable } from "@libs/typing"
import { type _MimeType, type _MimeTypeArray, illegal, Indexable, internal, unimplemented } from "./_.ts"
export class MimeTypeArray extends Indexable<MimeType> implements _MimeTypeArray {
item(index: number): Nullable<MimeType> {
return this[index] ?? null
}
namedItem(name: string): Nullable<MimeType> {
return this[internal].find((mimeType) => mimeType.type === name) ?? null
}
}
export class MimeType implements _MimeType {
constructor({ type, description, suffixes } = {} as { [internal]?: boolean; type?: string; description?: string; suffixes?: string }) {
illegal(arguments)
this.#type = type!
this.#description = description!
this.#suffixes = suffixes!
}
get type(): string {
return this.#type
}
set type(_: string) {
return
}
readonly #type
get description(): string {
return this.#description
}
set description(_: string) {
return
}
readonly #description
get suffixes(): string {
return this.#suffixes
}
set suffixes(_: string) {
return
}
readonly #suffixes
get enabledPlugin(): Plugin {
return unimplemented.getter<"immutable">()
}
}
|