Compare commits

..

4 Commits

Author SHA1 Message Date
semantic-release-bot be82577783 chore(release): 0.1.0-develop.1 [skip ci]
# [0.1.0-develop.1](https://git.lumeweb.com/LumeWeb/resolver-module-cid/compare/v0.0.1...v0.1.0-develop.1) (2023-07-31)

### Features

* initial version ([6d8e0c3](6d8e0c3aad))
2023-07-31 16:49:06 +00:00
Derrick Hammer ecf512bbf4
ci: add npm-shrinkwrap.json 2023-07-31 12:31:19 -04:00
Derrick Hammer da7583b809
ci: setup 2023-07-31 10:28:46 -04:00
Derrick Hammer 6d8e0c3aad
feat: initial version 2023-07-31 10:28:16 -04:00
7 changed files with 19730 additions and 0 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

8
.presetterrc.json Normal file
View File

@ -0,0 +1,8 @@
{
"preset": [
"@lumeweb/presetter-kernel-module-preset"
],
"config": {
"official": true
}
}

6
CHANGELOG.md Normal file
View File

@ -0,0 +1,6 @@
# [0.1.0-develop.1](https://git.lumeweb.com/LumeWeb/resolver-module-cid/compare/v0.0.1...v0.1.0-develop.1) (2023-07-31)
### Features
* initial version ([6d8e0c3](https://git.lumeweb.com/LumeWeb/resolver-module-cid/commit/6d8e0c3aadbedfbdf2a2764d8d85ebce41348f13))

19618
npm-shrinkwrap.json generated Normal file

File diff suppressed because it is too large Load Diff

21
package.json Normal file
View File

@ -0,0 +1,21 @@
{
"name": "@lumeweb/resolver-module-cid",
"version": "0.1.0-develop.1",
"type": "module",
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "gitea@git.lumeweb.com:LumeWeb/resolver-module-cid.git"
},
"scripts": {
"prepare": "presetter bootstrap",
"build": "run build",
"semantic-release": "semantic-release"
},
"dependencies": {
"@lumeweb/kernel-libresolver": "^0.1.0-develop.6"
},
"devDependencies": {
"@lumeweb/presetter-kernel-module-preset": "^0.1.0-develop.44"
}
}

6
src/index.ts Normal file
View File

@ -0,0 +1,6 @@
import { setup } from "@lumeweb/kernel-libresolver";
import CID from "./resolver.js";
// @ts-ignore
setup(new CID());

58
src/resolver.ts Normal file
View File

@ -0,0 +1,58 @@
import {
AbstractResolverModule,
DNS_RECORD_TYPE,
DNSResult,
resolverEmptyResponse,
ResolverOptions,
resolveSuccess,
} from "@lumeweb/kernel-libresolver";
const NETWORK_MAP = new Map(
Object.entries({
IPFS: "ipfs://",
IPNS: "ipns://",
}),
);
const NAMESPACE = "lume";
export default class CID extends AbstractResolverModule {
ready(): Promise<void> {
return Promise.resolve(true) as any;
}
async resolve(
domain: string,
options: ResolverOptions,
bypassCache: boolean,
): Promise<DNSResult> {
if (!domain.includes(".")) {
return resolverEmptyResponse();
}
const domainParts = domain.split(".");
const last = domainParts.slice()?.pop();
if (last !== NAMESPACE) {
return resolverEmptyResponse();
}
const network = domainParts.slice(1).shift()?.toUpperCase() as string;
if (!NETWORK_MAP.has(network)) {
return resolverEmptyResponse();
}
const cid = domainParts.slice()?.shift();
if (!cid) {
return resolverEmptyResponse();
}
return resolveSuccess([
{
type: DNS_RECORD_TYPE.CONTENT,
value: NETWORK_MAP.get(network) + cid,
},
]);
}
}