Cargo Features

[dependencies]
quickjs_runtime = { version = "0.12.1", default-features = false, features = ["tokio_full", "console", "setinterval", "setimmediate", "typescript"] }
default = console, setimmediate, setinterval, settimeout, typescript

These default features are set whenever quickjs_runtime is added without default-features = false somewhere in the dependency tree.

tokio_full

Enables full of tokio

tokio:

enable everything

console default

Affects features::console, features::init, quickjs_runtime::features

settimeout setinterval default

Affects features::set_timeout, features::init, quickjs_runtime::features

setimmediate default

Affects features::setimmediate, features::init, quickjs_runtime::features

typescript default = swc, swc_atoms, swc_cached, swc_common, swc_config, swc_config_macro, swc_ecma_ast, swc_ecma_codegen, swc_ecma_codegen_macros, swc_ecma_ext_transforms, swc_ecma_lints, swc_ecma_loader, swc_ecma_minifier, swc_ecma_parser, swc_ecma_preset_env, swc_ecma_transforms, swc_ecma_transforms_base, swc_ecma_transforms_classes, swc_ecma_transforms_compat, swc_ecma_transforms_macros, swc_ecma_transforms_module, swc_ecma_transforms_optimization, swc_ecma_transforms_proposal, swc_ecma_transforms_react, swc_ecma_transforms_typescript, swc_ecma_usage_analyzer, swc_ecma_utils, swc_ecma_visit, swc_eq_ignore_macros, swc_error_reporters, swc_fast_graph, swc_macros_common, swc_node_comments, swc_timer, swc_trace_macro, swc_visit, swc_visit_macros

Affects quickjs_runtime::typescript

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

swc typescript

Enables swc =0.236.21

swc like the good people at denoland said swc's version bumping is very buggy and there will often be patch versions published that break our build, so we pin all swc versions to prevent pulling in new versions of swc crates

before we can use a newer swc with stable rust we wait for swc_ecma_lint to no longer use box patterns see https://github.com/swc-project/swc/blob/main/crates/swc_ecma_lints/src/lib.rs could be a while a srust has no plans to stabilize box_patterns i gues thats one of the reaons deno does not use the swc dep as it allways loads swc_ecma_linter deno does not... see https://github.com/denoland/deno_ast/blob/main/Cargo.toml nb, just using the swc dep now gives us a lot of errors in macro's since swc upgraded to using syn v2 on june-21-2023

swc_atoms typescript

Enables swc_atoms =0.4.43

swc_cached typescript

Enables swc_cached =0.3.15

swc_common typescript

Enables swc_common =0.29.40

swc_macros_common typescript

Enables swc_macros_common =0.3.7

swc_eq_ignore_macros typescript

Enables swc_eq_ignore_macros =0.1.1

swc_visit typescript

Enables swc_visit =0.5.6

swc_visit_macros typescript

Enables swc_visit_macros =0.5.7

swc_config typescript

Enables swc_config =0.1.5

swc_config_macro typescript

Enables swc_config_macro =0.1.1

swc_ecma_codegen typescript

Enables swc_ecma_codegen =0.128.18

swc_ecma_ast typescript

Enables swc_ecma_ast =0.95.11

swc_ecma_codegen_macros typescript

Enables swc_ecma_codegen_macros =0.7.2

swc_ecma_ext_transforms typescript

Enables swc_ecma_ext_transforms =0.92.19

swc_ecma_utils typescript

Enables swc_ecma_utils =0.106.18

swc_ecma_visit typescript

Enables swc_ecma_visit =0.81.11

swc_ecma_lints typescript

Enables swc_ecma_lints =0.67.24

swc_ecma_loader typescript

Enables swc_ecma_loader =0.41.42

swc_ecma_minifier typescript

Enables swc_ecma_minifier =0.160.38

swc_ecma_parser typescript

Enables swc_ecma_parser =0.123.16

swc_error_reporters typescript

Enables swc_error_reporters =0.13.41

swc_fast_graph typescript

Enables swc_fast_graph =0.17.42

swc_ecma_usage_analyzer typescript

Enables swc_ecma_usage_analyzer =0.1.13

swc_timer typescript

Enables swc_timer =0.17.43

swc_ecma_preset_env typescript

Enables swc_ecma_preset_env =0.175.23

swc_ecma_transforms typescript

Enables swc_ecma_transforms =0.199.27

swc_ecma_transforms_base typescript

Enables swc_ecma_transforms_base =0.112.24

swc_ecma_transforms_compat typescript

Enables swc_ecma_transforms_compat =0.137.25

swc_ecma_transforms_classes typescript

Enables swc_ecma_transforms_classes =0.101.24

swc_ecma_transforms_module typescript

Enables swc_ecma_transforms_module =0.154.25

swc_ecma_transforms_optimization typescript

Enables swc_ecma_transforms_optimization =0.168.27

swc_ecma_transforms_proposal typescript

Enables swc_ecma_transforms_proposal =0.145.25

swc_ecma_transforms_macros typescript

Enables swc_ecma_transforms_macros =0.5.1

swc_ecma_transforms_react typescript

Enables swc_ecma_transforms_react =0.156.26

swc_ecma_transforms_typescript typescript

Enables swc_ecma_transforms_typescript =0.160.27

swc_node_comments typescript

Enables swc_node_comments =0.16.40

swc_trace_macro typescript

Enables swc_trace_macro =0.1.2