summaryrefslogtreecommitdiff
path: root/core/extensions.rs
diff options
context:
space:
mode:
authorLeo Kettmeir <crowlkats@toaxl.com>2023-02-07 22:09:50 +0100
committerGitHub <noreply@github.com>2023-02-07 21:09:50 +0000
commit49af1ab18da02f09e65506c873526c40d005c4ed (patch)
tree0d8f6028e98907096019500a7e1c717408eeb4e2 /core/extensions.rs
parentb4aa1530970f7b9cc4e6f2f27e077852c4e178d3 (diff)
refactor: remove prefix from include_js_files & use extension name (#17683)
Diffstat (limited to 'core/extensions.rs')
-rw-r--r--core/extensions.rs27
1 files changed, 20 insertions, 7 deletions
diff --git a/core/extensions.rs b/core/extensions.rs
index b981e6da2..ba7bdb18a 100644
--- a/core/extensions.rs
+++ b/core/extensions.rs
@@ -6,7 +6,7 @@ use std::rc::Rc;
use std::task::Context;
use v8::fast_api::FastFunction;
-pub type SourcePair = (&'static str, &'static str);
+pub type SourcePair = (String, &'static str);
pub type OpFnRef = v8::FunctionCallback;
pub type OpMiddlewareFn = dyn Fn(OpDecl) -> OpDecl;
pub type OpStateFn = dyn Fn(&mut OpState) -> Result<(), Error>;
@@ -168,13 +168,27 @@ impl ExtensionBuilder {
self
}
- pub fn js(&mut self, js_files: Vec<SourcePair>) -> &mut Self {
+ pub fn js(
+ &mut self,
+ js_files: Vec<(&'static str, &'static str)>,
+ ) -> &mut Self {
+ let js_files = js_files.into_iter().map(|source_pair| {
+ let name = format!("internal:{}/{}", self.name, source_pair.0);
+ (name, source_pair.1)
+ });
self.js.extend(js_files);
self
}
- pub fn esm(&mut self, js_files: Vec<SourcePair>) -> &mut Self {
- self.esm.extend(js_files);
+ pub fn esm(
+ &mut self,
+ esm_files: Vec<(&'static str, &'static str)>,
+ ) -> &mut Self {
+ let esm_files = esm_files.into_iter().map(|source_pair| {
+ let name = format!("internal:{}/{}", self.name, source_pair.0);
+ (name, source_pair.1)
+ });
+ self.esm.extend(esm_files);
self
}
@@ -232,17 +246,16 @@ impl ExtensionBuilder {
/// Example:
/// ```ignore
/// include_js_files!(
-/// prefix "internal:extensions/hello",
/// "01_hello.js",
/// "02_goodbye.js",
/// )
/// ```
#[macro_export]
macro_rules! include_js_files {
- (prefix $prefix:literal, $($file:literal,)+) => {
+ ($($file:literal,)+) => {
vec![
$((
- concat!($prefix, "/", $file),
+ $file,
include_str!($file),
),)+
]