From 5817b048a903cb155bc90158c143f6ae5f74ba35 Mon Sep 17 00:00:00 2001 From: Yan Chen <48968912+chenyan-dfinity@users.noreply.github.com> Date: Thu, 12 Sep 2024 21:17:21 -0700 Subject: [PATCH 1/2] add headers to StoreArgs --- packages/assets/src/canisters/assets_idl.js | 1 + packages/assets/src/canisters/assets_service.ts | 1 + packages/assets/src/index.ts | 8 +++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/assets/src/canisters/assets_idl.js b/packages/assets/src/canisters/assets_idl.js index 4bf539156..49e770174 100644 --- a/packages/assets/src/canisters/assets_idl.js +++ b/packages/assets/src/canisters/assets_idl.js @@ -5,6 +5,7 @@ export const idlFactory = ({ IDL }) => { const CreateAssetArguments = IDL.Record({ key: Key, content_type: IDL.Text, + headers: IDL.Opt(IDL.Vec(HeaderField)), }); const UnsetAssetContentArguments = IDL.Record({ key: Key, diff --git a/packages/assets/src/canisters/assets_service.ts b/packages/assets/src/canisters/assets_service.ts index c3cbc9bbd..ee5aee405 100644 --- a/packages/assets/src/canisters/assets_service.ts +++ b/packages/assets/src/canisters/assets_service.ts @@ -13,6 +13,7 @@ export type ClearArguments = Record; export interface CreateAssetArguments { key: Key; content_type: string; + headers: [] | [Array]; } export interface DeleteAssetArguments { diff --git a/packages/assets/src/index.ts b/packages/assets/src/index.ts index 73e6fd273..a2a2579de 100644 --- a/packages/assets/src/index.ts +++ b/packages/assets/src/index.ts @@ -60,6 +60,11 @@ export interface StoreConfig { * @default File/Blob object type or type from file name extension */ contentType?: string; + /** + * Custom headers to be sent with the asset + * @default [] + */ + headers?: Array<[string, string]>; /** * Content encoding * @default 'identity' @@ -330,9 +335,10 @@ class AssetManagerBatch { }), ); await readable.close(); + const headers: [] | [[string,string][]] = config?.headers ? [config.headers] : []; return [ { - CreateAsset: { key, content_type: config?.contentType ?? readable.contentType }, + CreateAsset: { key, content_type: config?.contentType ?? readable.contentType, headers }, }, { SetAssetContent: { From 04084cd399a92567543894d0b21ce5f21670fa0a Mon Sep 17 00:00:00 2001 From: Yan Chen <48968912+chenyan-dfinity@users.noreply.github.com> Date: Thu, 12 Sep 2024 21:27:47 -0700 Subject: [PATCH 2/2] fix --- packages/assets/src/canisters/assets_idl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/assets/src/canisters/assets_idl.js b/packages/assets/src/canisters/assets_idl.js index 49e770174..e27f3a7d9 100644 --- a/packages/assets/src/canisters/assets_idl.js +++ b/packages/assets/src/canisters/assets_idl.js @@ -2,6 +2,7 @@ export const idlFactory = ({ IDL }) => { const ClearArguments = IDL.Record({}); const BatchId = IDL.Nat; const Key = IDL.Text; + const HeaderField = IDL.Tuple(IDL.Text, IDL.Text); const CreateAssetArguments = IDL.Record({ key: Key, content_type: IDL.Text, @@ -26,7 +27,6 @@ export const idlFactory = ({ IDL }) => { SetAssetContent: SetAssetContentArguments, Clear: ClearArguments, }); - const HeaderField = IDL.Tuple(IDL.Text, IDL.Text); const HttpRequest = IDL.Record({ url: IDL.Text, method: IDL.Text,