@verdaccio/local-storage
Version:
Local storage implementation
44 lines (43 loc) • 1.81 kB
TypeScript
import { VerdaccioError } from '@verdaccio/core';
import { ReadTarball, UploadTarball } from '@verdaccio/streams';
import { Callback, Logger, Package } from '@verdaccio/types';
export declare const fileExist = "EEXISTS";
export declare const noSuchFile = "ENOENT";
export declare const resourceNotAvailable = "EAGAIN";
export declare const pkgFileName = "package.json";
export declare const fSError: (message: string, code?: number) => VerdaccioError;
export default class LocalFS {
path: string;
logger: Logger;
constructor(path: string, logger: Logger);
/**
* This function allows to update the package thread-safely
Algorithm:
1. lock package.json for writing
2. read package.json
3. updateFn(pkg, cb), and wait for cb
4. write package.json.tmp
5. move package.json.tmp package.json
6. callback(err?)
* @param {*} name
* @param {*} updateHandler
* @param {*} onWrite
* @param {*} transformPackage
* @param {*} onEnd
*/
updatePackage(name: string, updateHandler: Callback, onWrite: Callback, transformPackage: Function, onEnd: Callback): void;
deletePackage(packageName: string, callback: (err: NodeJS.ErrnoException | null) => void): void;
removePackage(callback: (err: NodeJS.ErrnoException | null) => void): void;
createPackage(name: string, value: Package, cb: Callback): void;
savePackage(name: string, value: Package, cb: Callback): void;
readPackage(name: string, cb: Callback): void;
writeTarball(name: string): UploadTarball;
readTarball(name: string): ReadTarball;
private _createFile;
private _readStorageFile;
private _convertToString;
private _getStorage;
private _writeFile;
private _lockAndReadJSON;
private _unlockJSON;
}