There should be away to export binary files to deep.json or a folder near it.
This should be a universal solution that will work with all package managers and all programming languages. NPM, NuGet and so on.
At the moment, the best guess is to use base64 as the value of AsyncFile links.
Later, we can support paths relative to deep.json or deep.xml instead of base64 in value filed of the link. It should start with . to distinguish it from base64, for example ./assets/6F9619FF-8B86-D011-B42D-00CF4FC964FF.jpg. 6F9619FF-8B86-D011-B42D-00CF4FC964FF is an GUID of AsyncFile link (it may be extracted from files table or just regenerated on the fly). The extension .jpg and so on can be extract from the name of the file in files table or from the meme type. GUID is best to ensure AsyncFile with the same upload names will not overlap in assets folder.
assets folder itself is not mandatory, but optional, and it can be chosen by the user of Packager class.
We should start the MVP from only base64 support, if this becomes a problem we can add support for relative paths, or may be even https links to static file storage on the internet.
Note that NPM may not like that packages are used as file store.
There should be away to export binary files to deep.json or a folder near it.
This should be a universal solution that will work with all package managers and all programming languages. NPM, NuGet and so on.
At the moment, the best guess is to use
base64
as the value ofAsyncFile
links.Later, we can support paths relative to
deep.json
ordeep.xml
instead ofbase64
invalue
filed of the link. It should start with.
to distinguish it frombase64
, for example./assets/6F9619FF-8B86-D011-B42D-00CF4FC964FF.jpg
.6F9619FF-8B86-D011-B42D-00CF4FC964FF
is an GUID ofAsyncFile
link (it may be extracted from files table or just regenerated on the fly). The extension.jpg
and so on can be extract from the name of the file infiles
table or from the meme type. GUID is best to ensureAsyncFile
with the same upload names will not overlap inassets
folder.assets
folder itself is not mandatory, but optional, and it can be chosen by the user ofPackager
class.We should start the MVP from only
base64
support, if this becomes a problem we can add support for relative paths, or may be evenhttps
links to static file storage on the internet.Note that NPM may not like that packages are used as file store.