mod common_js_export_require_dependency;
mod common_js_exports_dependency;
mod common_js_full_require_dependency;
mod common_js_require_dependency;
mod common_js_self_reference_dependency;
mod module_decorator_dependency;
mod require_ensure_dependency;
mod require_ensure_item_dependency;
mod require_header_dependency;
mod require_main_dependency;
mod require_resolve_dependency;
mod require_resolve_header_dependency;
pub use common_js_export_require_dependency::{
CommonJsExportRequireDependency, CommonJsExportRequireDependencyTemplate,
};
pub use common_js_exports_dependency::{
CommonJsExportsDependency, CommonJsExportsDependencyTemplate, ExportsBase,
};
pub use common_js_full_require_dependency::{
CommonJsFullRequireDependency, CommonJsFullRequireDependencyTemplate,
};
pub use common_js_require_dependency::{
CommonJsRequireDependency, CommonJsRequireDependencyTemplate,
};
pub use common_js_self_reference_dependency::{
CommonJsSelfReferenceDependency, CommonJsSelfReferenceDependencyTemplate,
};
pub use module_decorator_dependency::{
ModuleDecoratorDependency, ModuleDecoratorDependencyTemplate,
};
pub use require_ensure_dependency::{RequireEnsureDependency, RequireEnsureDependencyTemplate};
pub use require_ensure_item_dependency::RequireEnsureItemDependency;
pub use require_header_dependency::{RequireHeaderDependency, RequireHeaderDependencyTemplate};
pub use require_main_dependency::{RequireMainDependency, RequireMainDependencyTemplate};
pub use require_resolve_dependency::{RequireResolveDependency, RequireResolveDependencyTemplate};
pub use require_resolve_header_dependency::{
RequireResolveHeaderDependency, RequireResolveHeaderDependencyTemplate,
};
use rspack_core::Context;
pub(super) fn create_resource_identifier_for_contextual_commonjs_dependency(
dep_type: &str,
context: &Context,
request: &str,
) -> String {
let mut identifier = String::with_capacity(dep_type.len() + context.len() + request.len() + 2);
identifier.push_str(dep_type);
identifier.push('|');
identifier.push_str(context);
identifier.push('|');
identifier.push_str(request);
identifier
}
static OBJECT_PROTOTYPE_METHODS: &[&str] = &[
"constructor",
"__defineGetter__",
"__defineSetter__",
"hasOwnProperty",
"__lookupGetter__",
"__lookupSetter__",
"isPrototypeOf",
"propertyIsEnumerable",
"toString",
"valueOf",
"__proto__",
"toLocaleString",
];