devlink-core
v1.0.6
Published
Package that can create symbolic links and unlinks more robust way with possibility revert it.
Downloads
24
Maintainers
Readme
devlink-core
What is it?
Devlink is a simple tool, that can create symbolic link in your system from source to destination file. Usage is really simple and there are more ways how to use this api. It's implemented as functional, promise, throwable and with callbacks. Devlink keeps original file, so you can always revert link operation by unlink operation, that's return previous file.
functional API
function link(on: string, to: string): Either<LinkError, LinkResult>
This is a functional alternative of link
method. This method take 2 parameters and return
Either monad, that contains LinkError
if method fail or LinkResults
if everything is
done correctly. This method create link from on
file to to
file.
Parameters:
on
- path to file when we need to create link, file must existto
- path to file where link will be pointing, file must exist
Returns:
Either<LinkError, LinkResult>
Example:
import { functional } from "devlink-core";
const { link } = functional;
const result = link("/data/sources/source.txt", "/data/links/link.txt");
function unlink(on: string): Either<UnlinkError, UnlinkResult>
This is a functional alternative of unlink
method. This method take 1 parameter and return
Either monad, that contains UnlinkError
if method fail or UnlinkResult
if everything is
done correctly. This method remove link created by link
method on on
file.
Parameters:
on
- path to file where link is created, file must exist
Returns:
Either<UnlinkError, UnlinkResult>
Example:
import { functional } from "devlink-core";
const { unlink } = functional;
const result = unlink("/data/sources/source.txt");
function linked(on: string): E.Either<never, LinkedResult>
This is a functional alternative of linked
method. This method take 1 parameter and return
Either monad, that contains LinkedResult
if everything is done correctly. This method never fail.
This method is used to check if on
file exists link, that is created by link
function.
Parameters:
on
- path to file where we want to check if link is created
Returns:
Either<never, LinkedResult>
Example:
import { functional } from "devlink-core";
const { linked } = functional;
const result = linked("/data/sources/source.txt");
promise API
function link(on: string, to: string): Promise<LinkResult>
This is a promise alternative of link
method. This method take 2 parameters and return
promise, that return LinkResults
if everything is done correctly and catch LinkError
if fails.
This method create link from on
file to to
file.
Parameters:
on
- path to file when we need to create link, file must existto
- path to file where link will be pointing, file must exist
Returns:
Promise<LinkResult>
Catch:
LinkError
Example:
import { promise } from "devlink-core";
const { link } = promise;
link("/data/sources/source.txt", "/data/links/link.txt")
.then((result) => {})
.catch((err) => {});
function unlink(on: string): Promise<UnlinkResult>
This is a promise alternative of unlink
method. This method take 1 parameter and return
promise, that return UnlinkResult
if everything is done correctly and catch LinkError
if fails.
This method remove link created by link
method on on
file.
Parameters:
on
- path to file where link is created, file must exist
Returns:
Promise<UnlinkResult>
Catch:
LinkError
Example:
import { promise } from "devlink-core";
const { unlink } = promise;
unlink("/data/sources/source.txt")
.then((result) => {})
.catch((err) => {});
function linked(on: string): Promise<LinkedResult | null>
This is a promise alternative of linked
method. This method take 1 parameter and return
promise, that contains LinkedResult
if everything is done correctly. This method never fail.
This method is used to check if on
file exists link, that is created by link
function.
Parameters:
on
- path to file where we want to check if link is created
Returns:
Promise<LinkedResult | null>
Example:
import { promise } from "devlink-core";
const { linked } = promise;
linked("/data/sources/source.txt").then((result) => {});
throwable API
function link(on: string, to: string): LinkResult
This is a throwable alternative of link
method. This method take 2 parameters and return
result LinkResults
if everything is done correctly and throw LinkThrow
if fails.
This method create link from on
file to to
file.
Parameters:
on
- path to file when we need to create link, file must existto
- path to file where link will be pointing, file must exist
Returns:
LinkResult
Throw:
LinkThrow
Example:
import { throwable } from "devlink-core";
const { link } = throwable;
try {
const results = link("/data/sources/source.txt", "/data/links/link.txt");
} catch (err) {
// handle error
}
function unlink(on: string): Promise<UnlinkResult>
This is a throwable alternative of unlink
method. This method take 1 parameter and
return UnlinkResult
if everything is done correctly and throw LinkThrow
if fails.
This method remove link created by link
method on on
file.
Parameters:
on
- path to file where link is created, file must exist
Returns:
UnlinkResult
Throw:
LinkThrow
Example:
import { throwable } from "devlink-core";
const { unlink } = throwable;
try {
const results = unlink("/data/sources/source.txt");
} catch (err) {
// handle error
}
function linked(on: string): Promise<LinkedResult | null>
This is a throwable alternative of linked
method. This method take 1 parameter and return
LinkedResult
if everything is done correctly or null
if there is some error. This method never fail.
This method is used to check if on
file exists link, that is created by link
function.
Parameters:
on
- path to file where we want to check if link is created
Returns:
LinkedResult | null
Example:
import { throwable } from "devlink-core";
const { linked } = throwable;
const result = linked("/data/sources/source.txt");
callback API
function link(on: string, to: string, onDone: (err: LinkThrow | null, res: LinkResult | null) => void): void
This is a callback alternative of link
method. This method take 3 parameters and return void.
Last parameter is callback function with error LinkThrow
and result LinkResults
. If something failed
result parameter is null
, is everything is ok, err parameter is null
.
This method create link from on
file to to
file.
Parameters:
on
- path to file when we need to create link, file must existto
- path to file where link will be pointing, file must existonDone
- callback function with err and result
Example:
import { callback } from "devlink-core";
const { link } = callback;
link("/data/sources/source.txt", "/data/links/link.txt", (err, result) => {
if (result) {
// handle result
}
if (err) {
// handle error
}
});
function unlink(on: string, onDone: (err: LinkThrow | null, res: UnlinkResult | null) => void): void
This is a callback alternative of unlink
method. This method take 2 parameters and return void.
Last parameter is callback function with error LinkThrow
and result UnlinkResult
. If something failed
result parameter is null
, is everything is ok, err parameter is null
.
This method remove link created by link
method on on
file.
Parameters:
on
- path to file where link is created, file must existonDone
- callback function with err and result
Example:
import { callback } from "devlink-core";
const { unlink } = callback;
unlink("/data/sources/source.txt", (err, result) => {
if (result) {
// handle result
}
if (err) {
// handle error
}
});
function linked(on: string): Promise<LinkedResult | null>
This is a callback alternative of linked
method. This method take 2 parameters and return void.
Last parameter is callback function with result UnlinkResult
or null
. If something failed
result parameter is null
.
This method is used to check if on
file exists link, that is created by link
function.
Parameters:
on
- path to file where we want to check if link is createdonDone
- callback function with err and result
Example:
import { callback } from "devlink-core";
const { linked } = callback;
linked("/data/sources/source.txt", (result) => {
if (result) {
// handle result
} else {
// handle error
}
});
Donate me
| QR | Paypal | | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | |