fix: build

This commit is contained in:
Marc G
2021-07-15 16:52:03 +00:00
parent f44a45ec04
commit 1f920e2d8d
11 changed files with 43 additions and 25 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,4 @@
node_modules node_modules
.vscode .vscode
**/.DS_Store **/.DS_Store
dist

25
package-lock.json generated
View File

@@ -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",

View File

@@ -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"
} }
} }

View File

@@ -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,

View File

@@ -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,

View File

@@ -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 () => {

View File

@@ -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[] = [];

View File

@@ -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"],
} }