diff --git a/packages/blockstore-s3/src/index.ts b/packages/blockstore-s3/src/index.ts index 4f561641..9446e0e1 100644 --- a/packages/blockstore-s3/src/index.ts +++ b/packages/blockstore-s3/src/index.ts @@ -146,7 +146,6 @@ export class S3Blockstore extends BaseBlockstore { return new Uint8Array(buf, 0, buf.byteLength) } - // @ts-expect-error s3 types define their own Blob as an empty interface return await toBuffer(data.Body) } catch (err: any) { if (err.statusCode === 404) { diff --git a/packages/datastore-core/test/mount.spec.ts b/packages/datastore-core/test/mount.spec.ts index da42feaa..10072d1a 100644 --- a/packages/datastore-core/test/mount.spec.ts +++ b/packages/datastore-core/test/mount.spec.ts @@ -129,6 +129,9 @@ describe('MountDatastore', () => { }, { prefix: new Key('/q'), datastore: new MemoryDatastore() + }, { + prefix: new Key('/dht/provider/third'), + datastore: new MemoryDatastore() }]) }, teardown () { } diff --git a/packages/datastore-fs/src/index.ts b/packages/datastore-fs/src/index.ts index f24181b9..9e8cbb00 100644 --- a/packages/datastore-fs/src/index.ts +++ b/packages/datastore-fs/src/index.ts @@ -243,7 +243,7 @@ export class FsDatastore extends BaseDatastore { // strip leading slashes prefix = prefix.replace(/^\/+/, '') - const pattern = `${prefix}/*${this.extension}` + const pattern = `${prefix}/**/*${this.extension}` .split(path.sep) .join('/') const files = glob(this.path, pattern, { @@ -278,7 +278,7 @@ export class FsDatastore extends BaseDatastore { // strip leading slashes prefix = prefix.replace(/^\/+/, '') - const pattern = `${prefix}/*${this.extension}` + const pattern = `${prefix}/**/*${this.extension}` .split(path.sep) .join('/') const files = glob(this.path, pattern, { diff --git a/packages/datastore-s3/src/index.ts b/packages/datastore-s3/src/index.ts index b43875b5..8a158730 100644 --- a/packages/datastore-s3/src/index.ts +++ b/packages/datastore-s3/src/index.ts @@ -158,7 +158,6 @@ export class S3Datastore extends BaseDatastore { return new Uint8Array(buf, 0, buf.byteLength) } - // @ts-expect-error s3 types define their own Blob as an empty interface return await toBuffer(data.Body) } catch (err: any) { if (err.statusCode === 404) { diff --git a/packages/interface-datastore-tests/src/index.ts b/packages/interface-datastore-tests/src/index.ts index d72a6387..ec2418b8 100644 --- a/packages/interface-datastore-tests/src/index.ts +++ b/packages/interface-datastore-tests/src/index.ts @@ -411,6 +411,7 @@ export function interfaceDatastoreTests (test: const hello = { key: new Key('/q/1hello'), value: uint8ArrayFromString('1') } const world = { key: new Key('/z/2world'), value: uint8ArrayFromString('2') } const hello2 = { key: new Key('/z/3hello2'), value: uint8ArrayFromString('3') } + const many = { key: new Key('/dht/provider/third/bafyyyyy'), value: uint8ArrayFromString('4') } const filter1: QueryFilter = entry => !entry.key.toString().endsWith('hello') const filter2: QueryFilter = entry => entry.key.toString().endsWith('hello2') @@ -432,14 +433,15 @@ export function interfaceDatastoreTests (test: } const tests: Array<[string, any, any[] | number]> = [ - ['empty', {}, [hello, world, hello2]], + ['empty', {}, [hello, world, hello2, many]], ['prefix', { prefix: '/z' }, [world, hello2]], - ['1 filter', { filters: [filter1] }, [world, hello2]], + ['prefix-three-slashes', { prefix: '/dht/provider' }, [many]], + ['1 filter', { filters: [filter1] }, [world, hello2, many]], ['2 filters', { filters: [filter1, filter2] }, [hello2]], ['limit', { limit: 1 }, 1], - ['offset', { offset: 1 }, 2], - ['1 order (1)', { orders: [order1] }, [hello, world, hello2]], - ['1 order (reverse 1)', { orders: [order2] }, [hello2, world, hello]] + ['offset', { offset: 1 }, 3], + ['1 order (1)', { orders: [order1] }, [hello, world, hello2, many]], + ['1 order (reverse 1)', { orders: [order2] }, [many, hello2, world, hello]] ] before(async () => { @@ -450,6 +452,7 @@ export function interfaceDatastoreTests (test: b.put(hello.key, hello.value) b.put(world.key, world.value) b.put(hello2.key, hello2.value) + b.put(many.key, many.value) await b.commit() }) @@ -511,7 +514,8 @@ export function interfaceDatastoreTests (test: expect(results.map(result => result.key)).to.have.deep.members([ hello.key, world.key, - hello3.key + hello3.key, + many.key ]) })