full site update
This commit is contained in:
83
node_modules/unstorage/drivers/uploadthing.cjs
generated
vendored
Normal file
83
node_modules/unstorage/drivers/uploadthing.cjs
generated
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _utils = require("./utils/index.cjs");
|
||||
var _server = require("uploadthing/server");
|
||||
const DRIVER_NAME = "uploadthing";
|
||||
module.exports = (0, _utils.defineDriver)((opts = {}) => {
|
||||
let client;
|
||||
const base = opts.base ? (0, _utils.normalizeKey)(opts.base) : "";
|
||||
const r = key => base ? `${base}:${key}` : key;
|
||||
const getClient = () => {
|
||||
return client ??= new _server.UTApi({
|
||||
...opts,
|
||||
defaultKeyType: "customId"
|
||||
});
|
||||
};
|
||||
const getKeys = async base2 => {
|
||||
const client2 = getClient();
|
||||
const {
|
||||
files
|
||||
} = await client2.listFiles({});
|
||||
return files.map(file => file.customId).filter(k => k && k.startsWith(base2));
|
||||
};
|
||||
const toFile = (key, value) => {
|
||||
return Object.assign(new Blob([value]), {
|
||||
name: key,
|
||||
customId: key
|
||||
});
|
||||
};
|
||||
return {
|
||||
name: DRIVER_NAME,
|
||||
getInstance() {
|
||||
return getClient();
|
||||
},
|
||||
getKeys(base2) {
|
||||
return getKeys(r(base2));
|
||||
},
|
||||
async hasItem(key) {
|
||||
const client2 = getClient();
|
||||
const res = await client2.getFileUrls(r(key));
|
||||
return res.data.length > 0;
|
||||
},
|
||||
async getItem(key) {
|
||||
const client2 = getClient();
|
||||
const url = await client2.getFileUrls(r(key)).then(res => res.data[0]?.url);
|
||||
if (!url) return null;
|
||||
return fetch(url).then(res => res.text());
|
||||
},
|
||||
async getItemRaw(key) {
|
||||
const client2 = getClient();
|
||||
const url = await client2.getFileUrls(r(key)).then(res => res.data[0]?.url);
|
||||
if (!url) return null;
|
||||
return fetch(url).then(res => res.arrayBuffer());
|
||||
},
|
||||
async setItem(key, value) {
|
||||
const client2 = getClient();
|
||||
await client2.uploadFiles(toFile(r(key), value));
|
||||
},
|
||||
async setItemRaw(key, value) {
|
||||
const client2 = getClient();
|
||||
await client2.uploadFiles(toFile(r(key), value));
|
||||
},
|
||||
async setItems(items) {
|
||||
const client2 = getClient();
|
||||
await client2.uploadFiles(items.map(item => toFile(r(item.key), item.value)));
|
||||
},
|
||||
async removeItem(key) {
|
||||
const client2 = getClient();
|
||||
await client2.deleteFiles([r(key)]);
|
||||
},
|
||||
async clear(base2) {
|
||||
const client2 = getClient();
|
||||
const keys = await getKeys(r(base2));
|
||||
await client2.deleteFiles(keys);
|
||||
}
|
||||
// getMeta(key, opts) {
|
||||
// // TODO: We don't currently have an endpoint to fetch metadata, but it does exist
|
||||
// },
|
||||
};
|
||||
});
|
Reference in New Issue
Block a user