0.2.7 • Published 2 years ago

fs-dac-library v0.2.7

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

TypeScript library for the File System DAC

This library exposes a class that wraps the File System DAC.

Install

https://www.npmjs.com/package/fs-dac-library

Things to know

In the FS DAC, paths to directories and files are seperated with / and do not start with a leading slash.

If you skapp is hosted at example.hns.siasky.net, you only have read+write access to all local (owned by the currently logged-in user) paths starting with example.hns/ by default.

This DAC can be used without being logged in to MySky, but some methods might not work as expected.

Usage

import { MySky, SkynetClient } from "skynet-js";
import { FileSystemDAC } from "fs-dac-library";

(async () => {
  // create client
  const client = new SkynetClient(); // You might need to use SkynetClient("https://siasky.net") here if testing on localhost

  // Initialize the File System DAC library
  const fileSystemDAC = new FileSystemDAC();

  // Load MySky
  const mySky = await client.loadMySky("example.hns", {}); // Warning: You need to specify your app domain here, "localhost" if you are testing on localhost

  // Load the File System DAC
  await mySky.loadDacs(fileSystemDAC);

  // Check if the user is logged in
  const isLoggedIn = await mySky.checkLogin();

  // Create a new directory
  const res = await fileSystemDAC.createDirectory("example.hns", "Documents");

  // The result contains a "success" bool value indicating if the operation was successfull
  console.log(res.success);
  console.log(res);

  // Get a file or blob (for example from a file input field)
  const file = ...

  // Encrypt and upload a file
  const fileData = await fileSystemDAC.uploadFileData(file, file.name, (progress) => {
    console.log("onProgress", progress);
  });

  // Create a new file in the new "Documents" directory containing the just uploaded FileData
  const res = await fileSystemDAC.createFile(
    "example.hns/Documents",
    f.name,
    fileData
  );

  // List the contents of a specific directory (files and subdirectories)
  const index = await fileSystemDAC.getDirectoryIndex(
    "example.hns/Documents"
  );
  console.log(index);

  // Pick a file from the directory
  const dirFile =
      index.files["HelloWorld.pdf"]; // Adjust this to a filename you created in the directory

  // Download and decrypt this file
  const blob = await fileSystemDAC.downloadFileData(
    fileData,
    dirFile.mimeType ?? "application/octet-stream",
    (progress) => {
      console.log("onProgress", progress);
    }
  );
})();
0.2.7

2 years ago

0.2.6

2 years ago

0.2.3

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.9

3 years ago

0.2.2

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.2

3 years ago

0.1.3

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago