2020-05-22 14:36:39 +03:00
|
|
|
[package]
|
2020-08-30 09:29:42 +03:00
|
|
|
authors = ["강동윤 <kdy1997.dev@gmail.com>"]
|
2023-02-14 06:13:36 +03:00
|
|
|
build = "build.rs"
|
2021-12-30 12:59:18 +03:00
|
|
|
edition = "2021"
|
2020-08-30 09:29:42 +03:00
|
|
|
exclude = ["artifacts.json", "index.node"]
|
2021-12-19 08:14:12 +03:00
|
|
|
license = "Apache-2.0"
|
2023-02-14 06:13:36 +03:00
|
|
|
name = "binding_core_node"
|
2020-05-22 14:36:39 +03:00
|
|
|
publish = false
|
2020-08-30 09:29:42 +03:00
|
|
|
version = "0.1.0"
|
2020-05-22 14:36:39 +03:00
|
|
|
|
|
|
|
[lib]
|
2023-02-14 06:13:36 +03:00
|
|
|
bench = false
|
2020-05-22 14:36:39 +03:00
|
|
|
crate-type = ["cdylib"]
|
|
|
|
|
2021-12-12 16:52:58 +03:00
|
|
|
[features]
|
2022-08-05 08:11:40 +03:00
|
|
|
default = ["swc_v1", "plugin"]
|
refactor(plugin/runner): Revise cache, module loading (#7408)
**Description:**
One of the oversight around design of `TransformExecutor` is
encapsulating plugin module logic. It has access to the cache and do its
own loading & storing. This means consumer of plugin runner have tricky
challenge to control its caching system. First, there is no way to
escape how swc_plugin_runner controls cache and cannot synchronize into
their own, also depends on the usecases cannot control the features they
want to opt in: for example, there's no way one interface uses in-memory
cache, and another uses filesystem since it is compile time configured
singleton.
PR revisits overall design of TransformExecutor: now it accepts a tratir
`PluginModuleBytes`, which abstracts any kind of bytes we are dealing
with, such as raw file slice or serialized `wasmer::Module`. Cache
instantiation and managing is now bubbled up to the application level
(`swc` in here), so if someone wants non-singleton caching or integrate
into their own caching system it can be customized.
Lastly, deprecated `memory_cache` feature and only exposes
`filesystem_cache`. Cache implementation uses in-memory is always
available, and can opt in filesystem cache where it's supported.
**BREAKING CHANGE:**
This is clearly breaking changes for the consumers of swc_core. for the
@swc/core, this PR takes care of necessary changes. I'll work on
next-swc changes later once we have new @swc/core version with this
changes.
2023-05-18 10:05:39 +03:00
|
|
|
plugin = [
|
|
|
|
"swc_core/plugin_transform_host_native",
|
|
|
|
"swc_core/plugin_transform_host_native_filesystem_cache",
|
|
|
|
]
|
|
|
|
swc_v1 = ["swc_core/bundler_node_v1"]
|
|
|
|
swc_v2 = ["swc_core/bundler_node_v2"]
|
2022-08-05 08:11:40 +03:00
|
|
|
|
|
|
|
# Internal flag for testing purpose only.
|
|
|
|
__plugin_transform_vtest = [
|
|
|
|
# We know what we're doing - enable internal features for testing fixture setup.
|
|
|
|
"swc_core/__plugin_transform_host",
|
|
|
|
"swc_core/__plugin_transform_host_schema_vtest",
|
|
|
|
"swc_core/__plugin_transform_env_native",
|
2022-07-13 09:39:08 +03:00
|
|
|
]
|
2021-12-12 16:52:58 +03:00
|
|
|
|
2020-05-22 14:36:39 +03:00
|
|
|
[build-dependencies]
|
2023-02-14 06:13:36 +03:00
|
|
|
napi-build = { version = "2" }
|
2020-05-22 14:36:39 +03:00
|
|
|
|
|
|
|
[dependencies]
|
2022-11-02 07:53:22 +03:00
|
|
|
anyhow = "1.0.66"
|
2020-06-15 17:28:15 +03:00
|
|
|
backtrace = "0.3"
|
2023-02-14 06:13:36 +03:00
|
|
|
napi = { version = "2", default-features = false, features = [
|
2022-03-16 12:58:24 +03:00
|
|
|
"napi3",
|
|
|
|
"serde-json",
|
2023-02-14 06:13:36 +03:00
|
|
|
] }
|
|
|
|
napi-derive = { version = "2", default-features = false, features = [
|
2022-03-16 12:58:24 +03:00
|
|
|
"type-def",
|
2023-02-14 06:13:36 +03:00
|
|
|
] }
|
|
|
|
node_macro_deps = { path = "../node_macro_deps" }
|
2020-05-22 14:36:39 +03:00
|
|
|
path-clean = "0.1"
|
2023-02-14 06:13:36 +03:00
|
|
|
serde = { version = "1", features = ["derive"] }
|
|
|
|
serde_json = { version = "1", features = ["unbounded_depth"] }
|
|
|
|
tracing = { version = "0.1.37", features = ["release_max_level_info"] }
|
2022-03-31 10:11:31 +03:00
|
|
|
tracing-chrome = "0.5.0"
|
2022-02-25 07:06:45 +03:00
|
|
|
tracing-futures = "0.2.5"
|
2023-02-14 06:13:36 +03:00
|
|
|
tracing-subscriber = { version = "0.3.9", features = ["env-filter"] }
|
2022-08-05 08:11:40 +03:00
|
|
|
|
2023-05-30 08:40:44 +03:00
|
|
|
swc_core = { version = "0.76.37", features = [
|
2023-02-14 06:13:36 +03:00
|
|
|
"allocator_node",
|
2022-09-04 12:28:13 +03:00
|
|
|
"ecma_ast",
|
2023-03-27 07:28:42 +03:00
|
|
|
"ecma_ast_serde",
|
2022-08-05 08:11:40 +03:00
|
|
|
"common_concurrent",
|
|
|
|
"bundler",
|
2022-09-04 12:28:13 +03:00
|
|
|
"ecma_loader",
|
2022-10-11 14:49:30 +03:00
|
|
|
"ecma_transforms",
|
|
|
|
"ecma_visit",
|
2022-08-05 08:11:40 +03:00
|
|
|
"base_node",
|
|
|
|
"base_concurrent",
|
2023-02-14 06:13:36 +03:00
|
|
|
] }
|
2023-02-14 07:47:41 +03:00
|
|
|
swc_node_base = "0.5.8"
|