Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add originalFileName to EmittedAsset #2046

Merged
merged 1 commit into from
Aug 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ impl<'a> GenerateStage<'a> {
outputs.push(Output::Asset(Box::new(OutputAsset {
filename: map_filename.clone(),
source: source.into(),
original_file_name: None,
name: None,
})));
code.push_str(&format!("\n//# sourceMappingURL={map_filename}"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,17 @@ use super::binding_asset_source::BindingAssetSource;
pub struct BindingEmittedAsset {
pub name: Option<String>,
pub file_name: Option<String>,
pub original_file_name: Option<String>,
pub source: BindingAssetSource,
}

impl From<BindingEmittedAsset> for rolldown_common::EmittedAsset {
fn from(value: BindingEmittedAsset) -> Self {
Self { name: value.name, file_name: value.file_name, source: value.source.into() }
Self {
name: value.name,
file_name: value.file_name,
source: value.source.into(),
original_file_name: value.original_file_name,
}
}
}
5 changes: 5 additions & 0 deletions crates/rolldown_binding/src/types/binding_output_asset.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ impl BindingOutputAsset {
self.inner.filename.clone()
}

#[napi(getter)]
pub fn original_file_name(&self) -> Option<String> {
self.inner.original_file_name.clone()
}

#[napi(getter)]
pub fn source(&self) -> BindingAssetSource {
self.inner.source.clone().into()
Expand Down
2 changes: 2 additions & 0 deletions crates/rolldown_common/src/file_emitter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ use std::sync::Arc;
#[derive(Debug)]
pub struct EmittedAsset {
pub name: Option<String>,
pub original_file_name: Option<String>,
pub file_name: Option<String>,
pub source: AssetSource,
}
Expand Down Expand Up @@ -88,6 +89,7 @@ impl FileEmitter {
filename: value.file_name.clone().expect("should have file name"),
source: value.source.clone(),
name: value.name.clone(),
original_file_name: value.original_file_name.clone(),
})));
}
}
Expand Down
1 change: 1 addition & 0 deletions crates/rolldown_common/src/types/output.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use crate::{AssetSource, OutputChunk};
#[derive(Debug)]
pub struct OutputAsset {
pub name: Option<String>,
pub original_file_name: Option<String>,
pub filename: String,
pub source: AssetSource,
}
Expand Down
1 change: 1 addition & 0 deletions crates/rolldown_plugin_manifest/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ impl Plugin for ManifestPlugin {
ctx.emit_file(EmittedAsset {
file_name: Some(self.config.out_path.clone()),
name: None,
original_file_name: None,
source: (serde_json::to_string_pretty(&manifest).unwrap()).into(),
});
// }
Expand Down
1 change: 1 addition & 0 deletions crates/rolldown_plugin_wasm_helper/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ impl Plugin for WasmHelperPlugin {
let file_path = Path::new(&id);
let reference_id = ctx.emit_file(EmittedAsset {
name: file_path.file_name().map(|x| x.to_string_lossy().to_string()),
original_file_name: None,
source: AssetSource::Buffer(fs::read(file_path)?),
file_name: None,
});
Expand Down
2 changes: 2 additions & 0 deletions packages/rolldown/src/binding.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export declare class BindingModuleInfo {

export declare class BindingOutputAsset {
get fileName(): string
get originalFileName(): string | null
get source(): BindingAssetSource
set source(source: BindingAssetSource)
get name(): string | null
Expand Down Expand Up @@ -135,6 +136,7 @@ export declare enum BindingBuiltinPluginName {
export interface BindingEmittedAsset {
name?: string
fileName?: string
originalFileName?: string
source: BindingAssetSource
}

Expand Down
2 changes: 2 additions & 0 deletions packages/rolldown/src/plugin/plugin-context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export interface EmittedAsset {
type: 'asset'
name?: string
fileName?: string
originalFileName?: string | null
source: AssetSource
}

Expand Down Expand Up @@ -113,6 +114,7 @@ export class PluginContext {
}
return context.emitFile({
...file,
originalFileName: file.originalFileName || undefined,
source: bindingAssetSource(file.source),
})
}
Expand Down
24 changes: 12 additions & 12 deletions packages/rolldown/src/rolldown-binding.wasi-browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,18 +114,18 @@ function __napi_rs_initialize_modules(__napiInstance) {
__napiInstance.exports['__napi_register__BindingModuleInfo_struct_54']?.()
__napiInstance.exports['__napi_register__BindingModuleInfo_impl_56']?.()
__napiInstance.exports['__napi_register__BindingOutputAsset_struct_57']?.()
__napiInstance.exports['__napi_register__BindingOutputAsset_impl_62']?.()
__napiInstance.exports['__napi_register__BindingOutputChunk_struct_63']?.()
__napiInstance.exports['__napi_register__BindingOutputChunk_impl_81']?.()
__napiInstance.exports['__napi_register__BindingOutputs_struct_82']?.()
__napiInstance.exports['__napi_register__BindingOutputs_impl_86']?.()
__napiInstance.exports['__napi_register__FinalBindingOutputs_struct_87']?.()
__napiInstance.exports['__napi_register__FinalBindingOutputs_impl_90']?.()
__napiInstance.exports['__napi_register__RenderedChunk_struct_91']?.()
__napiInstance.exports['__napi_register__BindingRenderedModule_struct_92']?.()
__napiInstance.exports['__napi_register__AliasItem_struct_93']?.()
__napiInstance.exports['__napi_register__BindingSourcemap_struct_94']?.()
__napiInstance.exports['__napi_register__BindingJsonSourcemap_struct_95']?.()
__napiInstance.exports['__napi_register__BindingOutputAsset_impl_63']?.()
__napiInstance.exports['__napi_register__BindingOutputChunk_struct_64']?.()
__napiInstance.exports['__napi_register__BindingOutputChunk_impl_82']?.()
__napiInstance.exports['__napi_register__BindingOutputs_struct_83']?.()
__napiInstance.exports['__napi_register__BindingOutputs_impl_87']?.()
__napiInstance.exports['__napi_register__FinalBindingOutputs_struct_88']?.()
__napiInstance.exports['__napi_register__FinalBindingOutputs_impl_91']?.()
__napiInstance.exports['__napi_register__RenderedChunk_struct_92']?.()
__napiInstance.exports['__napi_register__BindingRenderedModule_struct_93']?.()
__napiInstance.exports['__napi_register__AliasItem_struct_94']?.()
__napiInstance.exports['__napi_register__BindingSourcemap_struct_95']?.()
__napiInstance.exports['__napi_register__BindingJsonSourcemap_struct_96']?.()
}
export const BindingLog = __napiModule.exports.BindingLog
export const BindingModuleInfo = __napiModule.exports.BindingModuleInfo
Expand Down
24 changes: 12 additions & 12 deletions packages/rolldown/src/rolldown-binding.wasi.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -138,18 +138,18 @@ function __napi_rs_initialize_modules(__napiInstance) {
__napiInstance.exports['__napi_register__BindingModuleInfo_struct_54']?.()
__napiInstance.exports['__napi_register__BindingModuleInfo_impl_56']?.()
__napiInstance.exports['__napi_register__BindingOutputAsset_struct_57']?.()
__napiInstance.exports['__napi_register__BindingOutputAsset_impl_62']?.()
__napiInstance.exports['__napi_register__BindingOutputChunk_struct_63']?.()
__napiInstance.exports['__napi_register__BindingOutputChunk_impl_81']?.()
__napiInstance.exports['__napi_register__BindingOutputs_struct_82']?.()
__napiInstance.exports['__napi_register__BindingOutputs_impl_86']?.()
__napiInstance.exports['__napi_register__FinalBindingOutputs_struct_87']?.()
__napiInstance.exports['__napi_register__FinalBindingOutputs_impl_90']?.()
__napiInstance.exports['__napi_register__RenderedChunk_struct_91']?.()
__napiInstance.exports['__napi_register__BindingRenderedModule_struct_92']?.()
__napiInstance.exports['__napi_register__AliasItem_struct_93']?.()
__napiInstance.exports['__napi_register__BindingSourcemap_struct_94']?.()
__napiInstance.exports['__napi_register__BindingJsonSourcemap_struct_95']?.()
__napiInstance.exports['__napi_register__BindingOutputAsset_impl_63']?.()
__napiInstance.exports['__napi_register__BindingOutputChunk_struct_64']?.()
__napiInstance.exports['__napi_register__BindingOutputChunk_impl_82']?.()
__napiInstance.exports['__napi_register__BindingOutputs_struct_83']?.()
__napiInstance.exports['__napi_register__BindingOutputs_impl_87']?.()
__napiInstance.exports['__napi_register__FinalBindingOutputs_struct_88']?.()
__napiInstance.exports['__napi_register__FinalBindingOutputs_impl_91']?.()
__napiInstance.exports['__napi_register__RenderedChunk_struct_92']?.()
__napiInstance.exports['__napi_register__BindingRenderedModule_struct_93']?.()
__napiInstance.exports['__napi_register__AliasItem_struct_94']?.()
__napiInstance.exports['__napi_register__BindingSourcemap_struct_95']?.()
__napiInstance.exports['__napi_register__BindingJsonSourcemap_struct_96']?.()
}
module.exports.BindingLog = __napiModule.exports.BindingLog
module.exports.BindingModuleInfo = __napiModule.exports.BindingModuleInfo
Expand Down
1 change: 1 addition & 0 deletions packages/rolldown/src/rollup.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -907,6 +907,7 @@ export interface SerializedTimings {

export interface PreRenderedAsset {
name: string | undefined
originalFileName: string | null
source: string | Uint8Array
type: 'asset'
}
Expand Down
1 change: 1 addition & 0 deletions packages/rolldown/src/types/rolldown-output.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import type { RenderedModule } from './rendered-module'
export interface RolldownOutputAsset {
type: 'asset'
fileName: string
originalFileName: string | null
source: AssetSource
name: string | undefined
}
Expand Down
1 change: 1 addition & 0 deletions packages/rolldown/src/utils/transform-to-rollup-output.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ function transformToRollupOutputAsset(
return {
type: 'asset',
fileName: asset.fileName,
originalFileName: asset.originalFileName || null,
get source(): AssetSource {
return transformAssetSource(asset.source)
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import path from 'node:path'

let referenceId: string

const ORIGINAL_FILE_NAME = 'original.txt'

export default defineTest({
config: {
output: {
Expand All @@ -21,6 +23,7 @@ export default defineTest({
type: 'asset',
name: '+emitted.txt',
source: 'emitted',
originalFileName: ORIGINAL_FILE_NAME,
})
},
generateBundle() {
Expand All @@ -45,6 +48,7 @@ export default defineTest({
expect(asset.fileName).toMatchInlineSnapshot(
`"_emitted-umwR9Fta.txt"`,
)
expect(asset.originalFileName).toBe(ORIGINAL_FILE_NAME)
break

case 'icon.png':
Expand Down
Loading