use js::prelude::Async;

use super::{fut, run};
use crate::fnc::script::modules::impl_module_def;

pub struct Package;

impl_module_def!(
	Package,
	"type",
	"array" => run,
	"bool" => run,
	"bytes" => run,
	"datetime" => run,
	"decimal" => run,
	"duration" => run,
	"field" => fut Async,
	"fields" => fut Async,
	"file" => run,
	"float" => run,
	"int" => run,
	"number" => run,
	"of" => run,
	"point" => run,
	"regex" => run,
	"string" => run,
	"string_lossy" => run,
	"table" => run,
	"thing" => run,
	"range" => run,
	"record" => run,
	"set" => run,
	"uuid" => run,
	"geometry" => run,
	"of" => run,
	"is_array" => run,
	"is_bool" => run,
	"is_bytes" => run,
	"is_collection" => run,
	"is_datetime" => run,
	"is_decimal" => run,
	"is_duration" => run,
	"is_float" => run,
	"is_geometry" => run,
	"is_int" => run,
	"is_line" => run,
	"is_none" => run,
	"is_null" => run,
	"is_multiline" => run,
	"is_multipoint" => run,
	"is_multipolygon" => run,
	"is_number" => run,
	"is_object" => run,
	"is_point" => run,
	"is_polygon" => run,
	"is_range" => run,
	"is_record" => run,
	"is_set" => run,
	"is_string" => run,
	"is_uuid" => run
);
