moved services in proper services
This commit is contained in:
1 parent
bbd705ee3b
commit
d12600348f
7 files changed
+61
-48
No files matched your search
@@ -0,0 +1,5 @@
|
|||||||
|
export { Buffer, StringReader } from "https://deno.land/std@0.191.0/io/mod.ts";
|
||||||
|
export { readAll, readerFromIterable, readableStreamFromReader, readerFromStreamReader, iterateReader, TextLineStream } from "https://deno.land/std@0.191.0/streams/mod.ts";
|
||||||
|
export { Application, Context, Router } from 'https://deno.land/x/oak/mod.ts';
|
||||||
|
|
||||||
|
|
||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
import { Context, Router } from "https://deno.land/x/oak/mod.ts";
|
import { Context, Router } from "./deps.ts";
|
||||||
import { FileService } from "./fileservice.ts";
|
import { FileService } from "./services/mod.ts";
|
||||||
import { readerFromStreamReader, readableStreamFromReader, TextLineStream } from "https://deno.land/std@0.191.0/streams/mod.ts";
|
import { readerFromStreamReader } from "./deps.ts";
|
||||||
import { asyncIterableToArray } from "./utils.ts";
|
import { asyncIterableToArray } from "./utils.ts";
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
import { Application, Router } from 'https://deno.land/x/oak/mod.ts';
|
import { Application, Router } from './deps.ts';
|
||||||
import { buildAPI } from './restapi.ts';
|
import { buildAPI } from './restapi.ts';
|
||||||
import { DenoKVFileService } from "./fileservice.ts";
|
import { DenoKVFileService } from "./services/mod.ts";
|
||||||
|
|
||||||
async function main(){
|
async function main(){
|
||||||
const app = new Application();
|
const app = new Application();
|
||||||
|
|||||||
@@ -1,42 +1,10 @@
|
|||||||
import { readAll } from "https://deno.land/std@0.191.0/streams/read_all.ts";
|
import { readAll, readerFromIterable, iterateReader } from "../deps.ts";
|
||||||
import { readerFromIterable, iterateReader } from "https://deno.land/std@0.191.0/streams/mod.ts";
|
import { Buffer, StringReader } from "../deps.ts";
|
||||||
import { Buffer } from "https://deno.land/std@0.191.0/io/buffer.ts";
|
import {FileService, FileMetaData, BlobService} from './interfaces.ts';
|
||||||
|
|
||||||
import { StringReader } from "https://deno.land/std@0.191.0/io/string_reader.ts";
|
|
||||||
|
|
||||||
|
|
||||||
import { readerFromStreamReader, readableStreamFromReader } from "https://deno.land/std@0.191.0/streams/mod.ts";
|
import { readerFromStreamReader, readableStreamFromReader } from "https://deno.land/std@0.191.0/streams/mod.ts";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export interface FileService {
|
|
||||||
|
|
||||||
list(): AsyncIterable<FileMetaData>;
|
|
||||||
|
|
||||||
createFromFullContent(
|
|
||||||
path: string,
|
|
||||||
content: string | Uint8Array,
|
|
||||||
): Promise<FileMetaData>;
|
|
||||||
|
|
||||||
createFromReader(path: string, content: Deno.Reader): Promise<FileMetaData>;
|
|
||||||
|
|
||||||
getRawContentByPath(path: string): Promise<Uint8Array | null>;
|
|
||||||
|
|
||||||
getContentAsReader(path: string): Promise<Deno.Reader | null>;
|
|
||||||
|
|
||||||
getMetaDataByID(id: string): Promise<FileMetaData | null>;
|
|
||||||
|
|
||||||
renameById(id: string, newPath: string): Promise<FileMetaData | null>;
|
|
||||||
|
|
||||||
renameByPath(
|
|
||||||
originalPath: string,
|
|
||||||
newPath: string,
|
|
||||||
): Promise<FileMetaData | null>;
|
|
||||||
|
|
||||||
deleteByPath(path: string): Promise<boolean>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface SerializedFile {
|
interface SerializedFile {
|
||||||
id: string;
|
id: string;
|
||||||
path: string;
|
path: string;
|
||||||
@@ -44,17 +12,12 @@ interface SerializedFile {
|
|||||||
compression: string;
|
compression: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FileMetaData {
|
|
||||||
path: string;
|
|
||||||
id: string;
|
|
||||||
contentSize: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface SerializedFilePathIndex {
|
interface SerializedFilePathIndex {
|
||||||
fileId: string;
|
fileId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class DenoKVBlobService {
|
export class DenoKVBlobService implements BlobService {
|
||||||
private readonly kv: Deno.Kv;
|
private readonly kv: Deno.Kv;
|
||||||
private readonly blobSize: number;
|
private readonly blobSize: number;
|
||||||
|
|
||||||
@@ -172,7 +135,7 @@ export class DenoKVBlobService {
|
|||||||
|
|
||||||
export class DenoKVFileService implements FileService {
|
export class DenoKVFileService implements FileService {
|
||||||
private readonly kv: Deno.Kv;
|
private readonly kv: Deno.Kv;
|
||||||
private readonly blobService: DenoKVBlobService;
|
private readonly blobService: BlobService;
|
||||||
|
|
||||||
constructor(kv: Deno.Kv) {
|
constructor(kv: Deno.Kv) {
|
||||||
this.kv = kv;
|
this.kv = kv;
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
export interface FileMetaData {
|
||||||
|
path: string;
|
||||||
|
id: string;
|
||||||
|
contentSize: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export interface FileService {
|
||||||
|
|
||||||
|
list(): AsyncIterable<FileMetaData>;
|
||||||
|
|
||||||
|
createFromFullContent(
|
||||||
|
path: string,
|
||||||
|
content: string | Uint8Array,
|
||||||
|
): Promise<FileMetaData>;
|
||||||
|
|
||||||
|
createFromReader(path: string, content: Deno.Reader): Promise<FileMetaData>;
|
||||||
|
|
||||||
|
getRawContentByPath(path: string): Promise<Uint8Array | null>;
|
||||||
|
|
||||||
|
getContentAsReader(path: string): Promise<Deno.Reader | null>;
|
||||||
|
|
||||||
|
getMetaDataByID(id: string): Promise<FileMetaData | null>;
|
||||||
|
|
||||||
|
renameById(id: string, newPath: string): Promise<FileMetaData | null>;
|
||||||
|
|
||||||
|
renameByPath(
|
||||||
|
originalPath: string,
|
||||||
|
newPath: string,
|
||||||
|
): Promise<FileMetaData | null>;
|
||||||
|
|
||||||
|
deleteByPath(path: string): Promise<boolean>;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export interface BlobService {
|
||||||
|
persistBlob(index: string, content: Uint8Array): Promise<number>;
|
||||||
|
persistReader(index: string, content: Deno.Reader): Promise<number>;
|
||||||
|
readAllBlob(index: string): Promise<Uint8Array>;
|
||||||
|
getBlob(index: string): Deno.Reader;
|
||||||
|
getNumberOfBlobs(index: string): Promise<number>;
|
||||||
|
streamBlob(index: string): Deno.Reader;
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
export * from './interfaces.ts';
|
||||||
|
export {DenoKVBlobService, DenoKVFileService} from './denokv.ts';
|
||||||
@@ -5,7 +5,7 @@ import {
|
|||||||
DenoKVFileService,
|
DenoKVFileService,
|
||||||
FileMetaData,
|
FileMetaData,
|
||||||
FileService,
|
FileService,
|
||||||
} from "../src/fileservice.ts";
|
} from "../src/services/mod.ts";
|
||||||
import { asyncIterableToArray } from "../src/utils.ts";
|
import { asyncIterableToArray } from "../src/utils.ts";
|
||||||
import { generateLargeText } from "./utils.ts";
|
import { generateLargeText } from "./utils.ts";
|
||||||
import { StringReader } from "https://deno.land/std@0.191.0/io/mod.ts";
|
import { StringReader } from "https://deno.land/std@0.191.0/io/mod.ts";
|
||||||
|
|||||||
Reference in new issue
Block a user