Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
ry committed Jan 21, 2020
1 parent ca40c71 commit ffad8d2
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 20 deletions.
13 changes: 13 additions & 0 deletions cli/js.rs
Expand Up @@ -16,6 +16,19 @@ pub static COMPILER_SNAPSHOT_MAP: &[u8] =
pub static COMPILER_SNAPSHOT_DTS: &[u8] =
include_bytes!(concat!(env!("OUT_DIR"), "/COMPILER_SNAPSHOT.d.ts"));

static DENO_RUNTIME: &str = include_str!("js/lib.deno_runtime.d.ts");

/// Same as deno_typescript::get_asset but also has lib.deno_runtime.d.ts
pub fn get_asset(name: &str) -> Option<&'static str> {
// WARNING: The design looks unnessary but has a purpose. deno_typescript
// cannot include lib.deno_runtime.d.ts because is not within the
// deno_typescript crate.
match name {
"lib.deno_runtime.d.ts" => Some(DENO_RUNTIME),
_ => deno_typescript::get_asset(name),
}
}

#[test]
fn cli_snapshot() {
let mut isolate = deno_core::Isolate::new(
Expand Down
2 changes: 1 addition & 1 deletion cli/lib.rs
Expand Up @@ -146,7 +146,7 @@ fn create_worker_and_state(
}

fn types_command() {
let content = include_str!("./js/lib.deno_runtime.d.ts");
let content = crate::js::get_asset("lib.deno_runtime.d.ts").unwrap();
println!("{}", content);
}

Expand Down
22 changes: 22 additions & 0 deletions cli/ops/compiler.rs
Expand Up @@ -17,6 +17,10 @@ pub fn init(i: &mut Isolate, s: &ThreadSafeState) {
"fetch_source_files",
s.core_op(json_op(s.stateful_op(op_fetch_source_files))),
);
i.register_op(
"fetch_asset",
s.core_op(json_op(s.stateful_op(op_fetch_asset))),
);
}

#[derive(Deserialize)]
Expand Down Expand Up @@ -145,3 +149,21 @@ fn op_fetch_source_files(

Ok(JsonOp::Async(future))
}

#[derive(Deserialize)]
struct FetchAssetArgs {
name: String,
}

fn op_fetch_asset(
_state: &ThreadSafeState,
args: Value,
_zero_copy: Option<PinnedBuf>,
) -> Result<JsonOp, ErrBox> {
let args: FetchAssetArgs = serde_json::from_value(args)?;
if let Some(source_code) = crate::js::get_asset(&args.name) {
Ok(JsonOp::Sync(json!(source_code)))
} else {
panic!("op_fetch_asset bad asset {}", args.name)
}
}
4 changes: 0 additions & 4 deletions deno_typescript/lib.rs
Expand Up @@ -203,10 +203,6 @@ pub fn mksnapshot_bundle_ts(
state: Arc<Mutex<TSState>>,
) -> Result<(), ErrBox> {
let runtime_isolate = &mut Isolate::new(StartupData::None, true);
runtime_isolate.register_op(
"fetch_asset",
compiler_op(state.clone(), ops::json_op(ops::fetch_asset)),
);
let source_code_vec = std::fs::read(bundle)?;
let source_code = std::str::from_utf8(&source_code_vec)?;

Expand Down
15 changes: 0 additions & 15 deletions deno_typescript/ops.rs
Expand Up @@ -110,21 +110,6 @@ pub fn resolve_module_names(
Ok(json!(resolved))
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct FetchAssetArgs {
name: String,
}

pub fn fetch_asset(_s: &mut TSState, v: Value) -> Result<Value, ErrBox> {
let args: FetchAssetArgs = serde_json::from_value(v)?;
if let Some(source_code) = crate::get_asset(&args.name) {
Ok(json!(source_code))
} else {
panic!("op_fetch_asset bad asset {}", args.name)
}
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct Exit {
Expand Down

0 comments on commit ffad8d2

Please sign in to comment.