Compare commits

...

44 Commits

Author SHA1 Message Date
semantic-release-bot 7255ee7b86 chore(release): 0.0.2-develop.1 [skip ci]
## [0.0.2-develop.1](https://git.lumeweb.com/LumeWeb/kernel-ipfs-client/compare/v0.0.1...v0.0.2-develop.1) (2023-07-14)
2023-07-14 09:03:29 +00:00
Derrick Hammer 440fddda34
ci: setup 2023-07-14 05:02:13 -04:00
Derrick Hammer be8591985a
chore: update README.md 2023-07-14 05:01:03 -04:00
Derrick Hammer 7fc2375fa2
dep: update module hash 2023-07-14 04:58:45 -04:00
Derrick Hammer 2ee6531298
refactor: move to new build system and sdks 2023-07-14 04:55:44 -04:00
Derrick Hammer e6a84d280e
*Update dist 2023-04-17 02:10:57 -04:00
Derrick Hammer 020f02d958
*reset pipe before asking for next chunk 2023-04-17 02:10:43 -04:00
Derrick Hammer 68fdd4e0ce
*Update dist 2023-04-17 02:04:29 -04:00
Derrick Hammer 19d8e783fb
*refactor connectModuleGenerator to use a undefined value to signal the end of the stream 2023-04-17 02:04:10 -04:00
Derrick Hammer 27dce710a6
*update dist 2023-04-16 22:45:58 -04:00
Derrick Hammer b2c57a2ea7
*update module hash 2023-04-16 22:45:45 -04:00
Derrick Hammer ca22b4e753
*update dist 2023-04-16 20:55:54 -04:00
Derrick Hammer 9bcf4a14b6
*update hash 2023-04-16 20:55:34 -04:00
Derrick Hammer ea92a2541d
*Update dist 2023-04-09 17:17:02 -04:00
Derrick Hammer 21486473c4
*Update module hash 2023-04-09 17:16:53 -04:00
Derrick Hammer dbe399c477
*Bug fix done 2023-04-09 17:15:13 -04:00
Derrick Hammer b23289b8eb
*Update dist 2023-04-09 16:20:01 -04:00
Derrick Hammer 73c94f03b4
*refactor async iteration 2023-04-09 16:19:41 -04:00
Derrick Hammer d3e4577943
*Missing args to api call in stat method 2023-04-09 14:59:14 -04:00
Derrick Hammer d813e271f0
*Missing args to api call in stat method 2023-04-09 14:58:46 -04:00
Derrick Hammer 21a59cb49e
*Update dist 2023-04-09 14:54:00 -04:00
Derrick Hammer 4b9c648e44
*Missing args to api call in ipns method 2023-04-09 14:53:44 -04:00
Derrick Hammer cac70c39f4
*update dist 2023-04-09 13:09:12 -04:00
Derrick Hammer cbdd19a202
*update module hash 2023-04-09 13:08:40 -04:00
Derrick Hammer a731d066d6
*update dist 2023-04-05 16:06:36 -04:00
Derrick Hammer de3daf7530
*update module hash 2023-04-05 16:06:10 -04:00
Derrick Hammer e2bfe2e7fe
*update dist 2023-04-04 11:35:42 -04:00
Derrick Hammer bf0919393d
*update module hash 2023-04-04 11:35:19 -04:00
Derrick Hammer 1af416ef3a
*update dist 2023-04-04 08:18:25 -04:00
Derrick Hammer 99b28db224
*update module hash 2023-04-04 08:18:11 -04:00
Derrick Hammer 256c29adc2
*update dist 2023-04-04 07:26:42 -04:00
Derrick Hammer fd7dba32e3
*update module hash 2023-04-04 07:26:19 -04:00
Derrick Hammer dd7cfcbfab
*update dist 2023-04-04 06:34:02 -04:00
Derrick Hammer 9d7cefd703
*update module hash 2023-04-04 06:33:41 -04:00
Derrick Hammer fe9045cf82
*update dist 2023-04-01 13:40:08 -04:00
Derrick Hammer aad02e4901
*add options to api methods 2023-04-01 13:39:22 -04:00
Derrick Hammer bda0af49fa
*Update dist 2023-03-31 12:37:44 -04:00
Derrick Hammer 19d6940a7e
*Rewrite to use kernel client library
*Use new IPFS API
2023-03-31 12:37:18 -04:00
Derrick Hammer db5f00241d
*Update dist 2022-08-05 19:10:28 -04:00
Derrick Hammer 1a31398647
*Fix typo 2022-08-05 19:10:10 -04:00
Derrick Hammer a4990e99ef
*update dist 2022-08-05 09:51:18 -04:00
Derrick Hammer 80f6103180
*headers not needed 2022-08-05 09:50:59 -04:00
Derrick Hammer bd27bf47f1
*Add dist 2022-08-05 09:35:28 -04:00
Derrick Hammer 0ecd526fa0
*Initial version 2022-08-05 09:34:50 -04:00
8 changed files with 19622 additions and 1 deletions

13
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,13 @@
name: Build/Publish
on:
push:
branches:
- master
- develop
- develop-*
jobs:
main:
uses: lumeweb/github-node-deploy-workflow/.github/workflows/main.yml@master
secrets: inherit

5
.presetterrc.json Normal file
View File

@ -0,0 +1,5 @@
{
"preset": [
"@lumeweb/node-library-preset"
]
}

1
CHANGELOG.md Normal file
View File

@ -0,0 +1 @@
## [0.0.2-develop.1](https://git.lumeweb.com/LumeWeb/kernel-ipfs-client/compare/v0.0.1...v0.0.2-develop.1) (2023-07-14)

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 Derrick Hammer
Copyright (c) 2022 Hammer Technologies LLC
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

2
README.md Normal file
View File

@ -0,0 +1,2 @@
# kernel-ipfs-client
IPFS client interface to @lumeweb/kernel-ipfs module

19480
npm-shrinkwrap.json generated Normal file

File diff suppressed because it is too large Load Diff

31
package.json Normal file
View File

@ -0,0 +1,31 @@
{
"name": "@lumeweb/kernel-ipfs-client",
"version": "0.0.2-develop.1",
"type": "module",
"main": "lib/index.js",
"repository": {
"type": "git",
"url": "gitea@git.lumeweb.com:LumeWeb/kernel-ipfs-client.git"
},
"devDependencies": {
"@helia/unixfs": "^1.4.0",
"@lumeweb/node-library-preset": "^0.2.7",
"presetter": "*"
},
"readme": "ERROR: No README data found!",
"scripts": {
"prepare": "presetter bootstrap",
"build": "run build",
"semantic-release": "semantic-release"
},
"dependencies": {
"@lumeweb/libkernel": "^0.1.0-develop.16",
"p-defer": "^4.0.0"
},
"files": [
"lib"
],
"publishConfig": {
"access": "public"
}
}

89
src/index.ts Normal file
View File

@ -0,0 +1,89 @@
import { Client, factory } from "@lumeweb/libkernel/module";
import defer from "p-defer";
import { CatOptions, LsOptions, StatOptions } from "@helia/unixfs";
interface AbortableGenerator {
abort: () => void;
iterable: () => AsyncIterable<Uint8Array>;
}
export const MODULE =
"zduTW8neeep7BcgyJyysyH5pSNPcLfS1EgTxVf3zncYbrJJQLxu9wjvzZM";
export class IPFSClient extends Client {
public async ready() {
return this.callModuleReturn("ready");
}
public async stat(cid: string, options?: Partial<StatOptions>) {
return this.callModuleReturn("stat", { cid, options });
}
public ls(cid: string, options?: Partial<LsOptions>): AbortableGenerator {
return this.connectModuleGenerator("ls", { cid, options });
}
public cat(cid: string, options?: Partial<CatOptions>): AbortableGenerator {
return this.connectModuleGenerator("cat", { cid, options });
}
public async ipns(cid: string): Promise<string> {
return this.callModuleReturn("ipnsResolve", { cid });
}
public async activePeers(): Promise<number> {
return this.callModuleReturn("getActivePeers");
}
private connectModuleGenerator(
method: string,
data: any,
): AbortableGenerator {
let pipe = defer<Uint8Array>();
const [update, result] = this.connectModule(method, data, (item: any) => {
pipe.resolve(item);
});
(async () => {
const ret = await result;
this.handleError(ret);
pipe.resolve(undefined);
})();
return {
abort() {
update("abort");
},
iterable(): AsyncIterable<Uint8Array> {
return {
[Symbol.asyncIterator]() {
return {
async next(): Promise<IteratorResult<Uint8Array>> {
const chunk = await pipe.promise;
if (chunk === undefined) {
return {
value: new Uint8Array(),
done: true,
};
}
pipe = defer();
update("next");
return {
value: chunk,
done: false,
};
},
};
},
};
},
};
}
}
export const createClient = factory<IPFSClient>(IPFSClient, MODULE);