Ring buffer
import { Ring } from "@eunchurn/ring-ts";
const ring = new Ring(100);
ring.push(1);
console.log(ring.toArray());
// [1]
const { isEmpty, count, isFull, size } = testRing;
console.log({ isEmpty, count, isFull, size });
// { isEmpty: false, count: 1, isFull: false, size: 100 }
ring.dequeue();
console.log(ring.toArray());
// []
console.log({ isEmpty, count, isFull, size });
// { isEmpty: true, count: 0, isFull: false, size: 100 }
TypeScript Project initialize
Project init script for TypeScript, ESLint, Prettier
npx @eunchurn/init
Eunchurn ESLint configuration
Code lint with TypeScript and Prettier
yarn add -D @eunchurn/eslint-config
add .eslintrc.json
{
"extends": ["@eunchurn/eslint-config"],
"rules": {
// your rules
}
}
This configuration follow
module.exports = {
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint"],
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"],
parserOptions: {
ecmaVersion: 2018,
createDefaultProgram: true,
},
rules: {
"prettier/prettier": ["error"],
"no-console": ["off"],
"import/no-extraneous-dependencies": ["off"],
"no-return-await": ["off"],
"import/extensions": ["off"],
"import/no-unresolved": ["off"],
"class-methods-use-this": ["off"],
"no-unused-vars": ["off"],
"no-useless-escape": ["off"],
"import/prefer-default-export": ["off"],
"@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-explicit-any": ["warn"],
},
};
Standard Prettier configuration for Danbi team projects.
yarn add -D @eunchurn/prettier-config
In your package.json
{
"prettier": "@eunchurn/prettier-config"
}
If you wish you extend these settings then in your .prettierrc.js
module.exports = {
...require("@eunchurn/prettier-config"),
};
Getting public IP address
yarn add @eunchurn/ipaddress
실제 물리적 네트워크 인터페이스의 IP주소를 가져옴 (sync)
import { getIPAddresses } from "@eunchurn/ipaddress";
const ipAddress = getIPAddresses(); // IP Address
www.google.com
을 연결하는 인터페이스의 IP주소를 가져옴: 이더넷 혹은 Wi-Fi 연결을 동시에 사용하거나, 여러 네트워크 인터페이스가 열려있는 경우 실제 네트워크 주소를 가져옴.
import { getNetworkIP } from "@eunchurn/ipaddress";
getNetworkIP((error, data) => {
console.log(data); // IP Address
});
npm config set access public