Commit 5e305893 by Andrey Golubov

Добавил зависимости

Signed-off-by: Golubov Andrey <a.golubov@taxi-master.com>
parent 47a09359
...@@ -94,11 +94,11 @@ export class JsonApiBase<A> { ...@@ -94,11 +94,11 @@ export class JsonApiBase<A> {
} }
case 'WithDefault': { case 'WithDefault': {
go(acc, path, ty, key, field.child); go(acc, path, ty, key, field.child);
return; return;
} }
case 'WithName': { case 'WithName': {
go(acc, path, ty, field.name, field.child); go(acc, path, ty, field.name, field.child);
return; return;
} }
} }
} }
......
{ {
"name": "common", "name": "common",
"version": "0.1.0", "version": "0.1.1",
"main": "index.js", "main": "index.js",
"repository": "ssh://g@git.bitmaster.ru:34022/npm/common.git", "repository": "ssh://g@git.bitmaster.ru:34022/npm/common.git",
"author": "Vladislav Lagunov <lagunov.v@bitmaster.ru>", "author": "Vladislav Lagunov <lagunov.v@bitmaster.ru>",
"license": "MIT" "license": "MIT",
"dependencies": {
"aes-js": "^3.1.2",
"jed": "^1.1.1",
"lodash": "^4.17.11",
"memoize-one": "^5.0.0",
"rxjs": "^6.4.0"
}
} }
...@@ -22,7 +22,7 @@ export type Err = ...@@ -22,7 +22,7 @@ export type Err =
/** persistent cache */ /** persistent cache */
export class Cache<A> { export class Cache<A> {
readonly _A: A; readonly _A: A;
constructor( constructor(
public name: string, // should be unique public name: string, // should be unique
public decoder: Decoder<A>, public decoder: Decoder<A>,
...@@ -36,18 +36,18 @@ export class Cache<A> { ...@@ -36,18 +36,18 @@ export class Cache<A> {
const version = this.options.version || null; const version = this.options.version || null;
let stringContent = JSON.stringify({ updatedAt, createdAt, version, payload }); let stringContent = JSON.stringify({ updatedAt, createdAt, version, payload });
if (this.options.key) { if (this.options.key) {
const enc = new aesjs.ModeOfOperation.ctr(this.options.key); const enc = new aesjs.ModeOfOperation.ctr(this.options.key);
const bytes = aesjs.utils.utf8.toBytes(stringContent); const bytes = aesjs.utils.utf8.toBytes(stringContent);
stringContent = aesjs.utils.hex.fromBytes(enc.encrypt(bytes)); stringContent = aesjs.utils.hex.fromBytes(enc.encrypt(bytes));
} }
localStorage.setItem(this.name, stringContent); localStorage.setItem(this.name, stringContent);
} catch(e) { } catch(e) {
return failure({ tag: 'SizeLimitExeeded' } as Err); return failure({ tag: 'SizeLimitExeeded' } as Err);
} }
return success(null); return success(null);
} }
save(payload: A): Eff<Err,null> { save(payload: A): Eff<Err,null> {
return eff.lazy(() => this.saveSync(payload)); return eff.lazy(() => this.saveSync(payload));
} }
...@@ -59,7 +59,7 @@ export class Cache<A> { ...@@ -59,7 +59,7 @@ export class Cache<A> {
const bytes = aesjs.utils.hex.toBytes(stringContent) const bytes = aesjs.utils.hex.toBytes(stringContent)
stringContent = aesjs.utils.utf8.fromBytes(enc.decrypt(bytes)); stringContent = aesjs.utils.utf8.fromBytes(enc.decrypt(bytes));
} }
if (stringContent === null) return failure({ tag: 'NoItem' } as Err); if (stringContent === null) return failure({ tag: 'NoItem' } as Err);
try { try {
const json = JSON.parse(stringContent); const json = JSON.parse(stringContent);
...@@ -76,7 +76,7 @@ export class Cache<A> { ...@@ -76,7 +76,7 @@ export class Cache<A> {
return failure({ tag: 'InvalidPayload', problem: e.message } as Err); return failure({ tag: 'InvalidPayload', problem: e.message } as Err);
} }
} }
read(): Eff<Err,A> { read(): Eff<Err,A> {
return eff.lazy(() => this.readSync()); return eff.lazy(() => this.readSync());
} }
...@@ -86,7 +86,7 @@ export class Cache<A> { ...@@ -86,7 +86,7 @@ export class Cache<A> {
} }
clear(): Eff<never, null> { clear(): Eff<never, null> {
return eff.lazy(() => (this.clearSync(), success(null))); return eff.lazy(() => (this.clearSync(), success(null)));
} }
modifySync(f: (a: A) => A): Either<Err, null> { modifySync(f: (a: A) => A): Either<Err, null> {
......
export * from '../persistent'; export * from '../persistent';
';
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
aes-js@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a"
integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==
jed@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz#7a549bbd9ffe1585b0cd0a191e203055bee574b4"
integrity sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ=
lodash@^4.17.11:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
memoize-one@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.0.0.tgz#d55007dffefb8de7546659a1722a5d42e128286e"
integrity sha512-7g0+ejkOaI9w5x6LvQwmj68kUj6rxROywPSCqmclG/HBacmFnZqhVscQ8kovkn9FBCNJmOz6SY42+jnvZzDWdw==
rxjs@^6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504"
integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==
dependencies:
tslib "^1.9.0"
tslib@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment