mirror of
https://github.com/lingble/safe-redis-leader.git
synced 2025-10-29 19:52:33 +00:00
fix: build
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
node_modules
|
node_modules
|
||||||
.vscode
|
.vscode
|
||||||
**/.DS_Store
|
**/.DS_Store
|
||||||
|
dist
|
||||||
25
package-lock.json
generated
25
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ts-safe-redis-leader",
|
"name": "ts-safe-redis-leader",
|
||||||
"version": "0.0.1",
|
"version": "0.0.3",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ts-safe-redis-leader",
|
"name": "ts-safe-redis-leader",
|
||||||
"version": "0.0.1",
|
"version": "0.0.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ioredis": "^4.27.6"
|
"ioredis": "^4.27.6"
|
||||||
@@ -27,7 +27,8 @@
|
|||||||
"jest": "^27.0.6",
|
"jest": "^27.0.6",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"ts-jest": "^27.0.3",
|
"ts-jest": "^27.0.3",
|
||||||
"typescript": "^4.3.5"
|
"typescript": "^4.3.5",
|
||||||
|
"uglify-js": "^3.13.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/code-frame": {
|
"node_modules/@babel/code-frame": {
|
||||||
@@ -6090,6 +6091,18 @@
|
|||||||
"node": ">=4.2.0"
|
"node": ">=4.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/uglify-js": {
|
||||||
|
"version": "3.13.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.10.tgz",
|
||||||
|
"integrity": "sha512-57H3ACYFXeo1IaZ1w02sfA71wI60MGco/IQFjOqK+WtKoprh7Go2/yvd2HPtoJILO2Or84ncLccI4xoHMTSbGg==",
|
||||||
|
"dev": true,
|
||||||
|
"bin": {
|
||||||
|
"uglifyjs": "bin/uglifyjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/unbox-primitive": {
|
"node_modules/unbox-primitive": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
|
||||||
@@ -10985,6 +10998,12 @@
|
|||||||
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
|
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"uglify-js": {
|
||||||
|
"version": "3.13.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.10.tgz",
|
||||||
|
"integrity": "sha512-57H3ACYFXeo1IaZ1w02sfA71wI60MGco/IQFjOqK+WtKoprh7Go2/yvd2HPtoJILO2Or84ncLccI4xoHMTSbGg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"unbox-primitive": {
|
"unbox-primitive": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
|
||||||
|
|||||||
@@ -2,12 +2,13 @@
|
|||||||
"name": "ts-safe-redis-leader",
|
"name": "ts-safe-redis-leader",
|
||||||
"version": "0.0.3",
|
"version": "0.0.3",
|
||||||
"description": "Redis leader election implementation that does not have any race conditions in Typescript",
|
"description": "Redis leader election implementation that does not have any race conditions in Typescript",
|
||||||
"main": "src/index.js",
|
"main": "dist/safeRedisLeader.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"eslint": "eslint '{src,apps,libs,test}/**/*.ts' --fix",
|
"eslint": "eslint '{src,apps,libs,test}/**/*.ts' --fix",
|
||||||
"test:debug": "node --inspect=0.0.0.0:9229 node_modules/.bin/jest --config ./test/jest-e2e.json --runInBand",
|
"test:debug": "node --inspect=0.0.0.0:9229 node_modules/.bin/jest --config ./test/jest-e2e.json --runInBand",
|
||||||
"test": "node_modules/.bin/jest --config ./test/jest-e2e.json",
|
"test": "node_modules/.bin/jest --config ./test/jest-e2e.json",
|
||||||
"prepublish": "npm run eslint && npm run test"
|
"prepublishOnly": "npm run eslint && npm run test && npm run build",
|
||||||
|
"build": "tsc"
|
||||||
},
|
},
|
||||||
"author": "Marc Gagnon",
|
"author": "Marc Gagnon",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
"jest": "^27.0.6",
|
"jest": "^27.0.6",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"ts-jest": "^27.0.3",
|
"ts-jest": "^27.0.3",
|
||||||
"typescript": "^4.3.5"
|
"typescript": "^4.3.5",
|
||||||
|
"uglify-js": "^3.13.10"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export async function atomicGetIsEqualDelete(
|
|||||||
id: string,
|
id: string,
|
||||||
): Promise<boolean> {
|
): Promise<boolean> {
|
||||||
if (!asyncRedis.getIsEqualDelete) {
|
if (!asyncRedis.getIsEqualDelete) {
|
||||||
const file = await readFile(`${__dirname}/index.lua`, "utf8");
|
const file = await readFile(`${__dirname}/../luas/atomicGetIsEqualDelete.lua`, "utf8");
|
||||||
|
|
||||||
asyncRedis.defineCommand("getIsEqualDelete", {
|
asyncRedis.defineCommand("getIsEqualDelete", {
|
||||||
numberOfKeys: 1,
|
numberOfKeys: 1,
|
||||||
@@ -15,7 +15,7 @@ export async function atomicGetIsEqualSetPExpire(
|
|||||||
ms: number,
|
ms: number,
|
||||||
): Promise<boolean> {
|
): Promise<boolean> {
|
||||||
if (!asyncRedis.getIsEqualSetPExpire) {
|
if (!asyncRedis.getIsEqualSetPExpire) {
|
||||||
const file = await readFile(`${__dirname}/index.lua`, "utf8");
|
const file = await readFile(`${__dirname}/../luas/atomicGetIsEqualSetPExpire.lua`, "utf8");
|
||||||
|
|
||||||
asyncRedis.defineCommand("getIsEqualSetPExpire", {
|
asyncRedis.defineCommand("getIsEqualSetPExpire", {
|
||||||
numberOfKeys: 1,
|
numberOfKeys: 1,
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
/* eslint-disable no-async-promise-executor */
|
import { EmitterEnum, SafeRedisLeader } from "../src/safeRedisLeader";
|
||||||
import { EmitterEnum, SafeRedisLeader } from "../src";
|
|
||||||
|
|
||||||
|
/* eslint-disable no-async-promise-executor */
|
||||||
export async function waitForElection(safeLeader: SafeRedisLeader): Promise<boolean> {
|
export async function waitForElection(safeLeader: SafeRedisLeader): Promise<boolean> {
|
||||||
return new Promise<boolean>(async (resolve) => {
|
return new Promise<boolean>(async (resolve) => {
|
||||||
safeLeader.on(EmitterEnum.ELECTED, async () => {
|
safeLeader.on(EmitterEnum.ELECTED, async () => {
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import * as Redis from "ioredis";
|
import Redis from "ioredis";
|
||||||
|
|
||||||
import { SafeRedisLeader } from "../src";
|
import { SafeRedisLeader } from "../src/safeRedisLeader";
|
||||||
import { getLeaderIndex, sleep, waitForElection } from "./helper";
|
import { getLeaderIndex, sleep, waitForElection } from "./helper";
|
||||||
|
|
||||||
/* eslint-disable no-await-in-loop */
|
/* eslint-disable no-await-in-loop */
|
||||||
jest.setTimeout(1000 * 15);
|
|
||||||
|
|
||||||
describe("SafeRedisLeader", () => {
|
describe("SafeRedisLeader", () => {
|
||||||
let redisClients: Redis.Redis[] = [];
|
let redisClients: Redis.Redis[] = [];
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"module": "commonjs",
|
|
||||||
"declaration": true,
|
"declaration": true,
|
||||||
"removeComments": true,
|
"target": "es5",
|
||||||
"emitDecoratorMetadata": true,
|
"module": "commonjs",
|
||||||
"experimentalDecorators": true,
|
"moduleResolution": "node",
|
||||||
"allowSyntheticDefaultImports": true,
|
|
||||||
"target": "es2017",
|
|
||||||
"sourceMap": true,
|
|
||||||
"outDir": "./dist",
|
"outDir": "./dist",
|
||||||
"baseUrl": "./",
|
"lib": ["ES6", "DOM"],
|
||||||
"incremental": true,
|
"typeRoots": ["node_modules/@types"],
|
||||||
"skipLibCheck": true
|
"esModuleInterop": true
|
||||||
}
|
},
|
||||||
|
"exclude": ["./node_modules", "./dist", "./test"],
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user