1 |
|
2 | import { ReadTarball } from '@verdaccio/streams';
|
3 | import { Callback, Logger, Package, ILocalPackageManager, IUploadTarball } from '@verdaccio/types';
|
4 | import { VerdaccioError } from '@verdaccio/commons-api/lib';
|
5 | export declare const fileExist = "EEXISTS";
|
6 | export declare const noSuchFile = "ENOENT";
|
7 | export declare const resourceNotAvailable = "EAGAIN";
|
8 | export declare const pkgFileName = "package.json";
|
9 | export declare const fSError: (message: string, code?: number) => VerdaccioError;
|
10 | export declare type ILocalFSPackageManager = ILocalPackageManager & {
|
11 | path: string;
|
12 | };
|
13 | export default class LocalFS implements ILocalFSPackageManager {
|
14 | path: string;
|
15 | logger: Logger;
|
16 | constructor(path: string, logger: Logger);
|
17 | /**
|
18 | * This function allows to update the package thread-safely
|
19 | Algorithm:
|
20 | 1. lock package.json for writing
|
21 | 2. read package.json
|
22 | 3. updateFn(pkg, cb), and wait for cb
|
23 | 4. write package.json.tmp
|
24 | 5. move package.json.tmp package.json
|
25 | 6. callback(err?)
|
26 | * @param {*} name
|
27 | * @param {*} updateHandler
|
28 | * @param {*} onWrite
|
29 | * @param {*} transformPackage
|
30 | * @param {*} onEnd
|
31 | */
|
32 | updatePackage(name: string, updateHandler: Callback, onWrite: Callback, transformPackage: Function, onEnd: Callback): void;
|
33 | deletePackage(packageName: string, callback: (err: NodeJS.ErrnoException | null) => void): void;
|
34 | removePackage(callback: (err: NodeJS.ErrnoException | null) => void): void;
|
35 | createPackage(name: string, value: Package, cb: Callback): void;
|
36 | savePackage(name: string, value: Package, cb: Callback): void;
|
37 | readPackage(name: string, cb: Callback): void;
|
38 | writeTarball(name: string): IUploadTarball;
|
39 | readTarball(name: string): ReadTarball;
|
40 | private _createFile;
|
41 | private _readStorageFile;
|
42 | private _convertToString;
|
43 | private _getStorage;
|
44 | private _writeFile;
|
45 | private _lockAndReadJSON;
|
46 | private _unlockJSON;
|
47 | }
|