Commit Graph

17 Commits

Author SHA1 Message Date
OJ Kwon
ac5ab607c9
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 07:05:39 +00:00
OJ Kwon
bba1fad35c
feat(plugin): Add versioned wrapper struct (#7382) 2023-05-15 03:17:31 +00:00
Donny/강동윤
8cdc28cdfa
feat(css/plugin): Prepare Wasm plugins (#6567) 2022-12-02 10:14:46 +00:00
Donny/강동윤
20d071bdc7
test(es/plugin): Add a noop plugin (#5892)
**Description:**

The plugin is used for benchmark and verification of rkyv.
2022-09-18 09:54:06 +00:00
Donny/강동윤
2bbc9bd73b
refactor(es/plugin): Fix lints (#5801) 2022-09-10 12:50:54 +09:00
OJ Kwon
6f19f8902f
refactor(swc_core): enable bytechecked flag (#5792)
**Description:**

Another update to enable bytecheck rkyv feature flag.

Our dep tree is quite tangled with implicit enable (plugin -> rkyv). PR tries to detach some of it while trying to preserve existing behavior as much as it can.
2022-09-09 08:05:51 +00:00
Donny/강동윤
83fec33359
feat(es/generator): Use new generator implementation (#5627) 2022-08-25 16:10:47 +00:00
Donny/강동윤
927ae7e8d3
fix(es/compat): Revert generator reimplementation (#5624) 2022-08-25 17:58:37 +09:00
Donny/강동윤
2aa009018f
feat(es/generator): Replace generator implementation with one from tsc (#5173) 2022-08-25 04:50:00 +00:00
OJ Kwon
d36e48efbf
build(plugin): Downgrade rkyv (#5459) 2022-08-12 14:04:05 +00:00
OJ Kwon
5a164bd137
feat(plugin): Make metadata api lazy (#5310) 2022-07-27 13:16:44 +09:00
OJ Kwon
43eeeb35a5
feat(es/plugin): Pass experimental metadata from host (#5261) 2022-07-21 05:34:48 +00:00
OJ Kwon
92c0153cb5
feat(plugin): Pass unresolved_mark to plugins (#5212) 2022-07-15 01:11:17 +00:00
OJ Kwon
e8214babf5
refactor(plugin): Refactor transform executor (#5147) 2022-07-08 06:02:42 +00:00
OJ Kwon
82fbe15a57
feat(plugin): Wrap serialized struct with a version (#5128) 2022-07-07 07:46:49 +00:00
OJ Kwon
2ba8b39fa0
refactor(common): Bikeshed plugin apis (#5120) 2022-07-06 04:42:00 +00:00
Donny/강동윤
60efb7e9c7
chore(plugin): Add a benchmark (#4397) 2022-04-22 14:52:55 +09:00