mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-03 09:20:08 +00:00
chore: seperate util
This commit is contained in:
@@ -7,6 +7,9 @@
|
||||
],
|
||||
"scripts": {
|
||||
"build": "turbo run build",
|
||||
"fmt": "turbo run fmt",
|
||||
"build-types": "turbo run fmt",
|
||||
"release-build": "turbo run release-build",
|
||||
"dev": "turbo run dev --parallel",
|
||||
"lint": "turbo run lint",
|
||||
"format": "prettier --write \"**/*.{ts,tsx,md}\""
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
"eslint-config-discordeno": "*",
|
||||
"tsconfig": "*",
|
||||
"typescript": "^4.5.2",
|
||||
"@discordeno/types": "18.0.0-alpha.1"
|
||||
"@discordeno/types": "18.0.0-alpha.1",
|
||||
"@discordeno/utils": "18.0.0-alpha.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/node": "^18.11.9"
|
||||
|
||||
31
packages/utils/.swcrc
Normal file
31
packages/utils/.swcrc
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"minify": true,
|
||||
"jsc": {
|
||||
"parser": {
|
||||
"syntax": "typescript",
|
||||
"decorators": true,
|
||||
"dynamicImport": true
|
||||
},
|
||||
"transform": {
|
||||
"legacyDecorator": true,
|
||||
"decoratorMetadata": true
|
||||
},
|
||||
"target": "es2022",
|
||||
"keepClassNames": true,
|
||||
"loose": true,
|
||||
"minify": {
|
||||
"compress": {
|
||||
"unused": true
|
||||
},
|
||||
"mangle": true
|
||||
}
|
||||
},
|
||||
"module": {
|
||||
"type": "es6",
|
||||
"strict": false,
|
||||
"strictMode": true,
|
||||
"lazy": false,
|
||||
"noInterop": false
|
||||
},
|
||||
"sourceMaps": "inline"
|
||||
}
|
||||
28
packages/utils/package.json
Normal file
28
packages/utils/package.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "@discordeno/utils",
|
||||
"version": "18.0.0-alpha.1",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"type": "module",
|
||||
"license": "Apache-2.0",
|
||||
"scripts": {
|
||||
"build": "swc src --out-dir dist",
|
||||
"build-types": "tsc --declaration --emitDeclarationOnly --declarationDir dist",
|
||||
"release-build": "yarn build && yarn build-types",
|
||||
"fmt": "prettier -w ./src",
|
||||
"lint": "eslint \"src/**/*.ts*\"",
|
||||
"test-types": "tsc --noEmit"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc/cli": "^0.1.57",
|
||||
"@swc/core": "^1.3.21",
|
||||
"eslint": "^8.0.1",
|
||||
"eslint-config-discordeno": "*",
|
||||
"tsconfig": "*",
|
||||
"@discordeno/types": "18.0.0-alpha.1",
|
||||
"typescript": "^4.5.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/node": "^18.11.9"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { PickPartial } from '../types/shared.js'
|
||||
import { PickPartial } from '@discordeno/types'
|
||||
import { delay } from './utils.js'
|
||||
|
||||
/** A Leaky Bucket.
|
||||
@@ -165,7 +165,7 @@ async function acquire (bucket: LeakyBucket, amount: number, highPriority = fals
|
||||
|
||||
// In order to not subtract too much from the tokens,
|
||||
// calculate what is actually needed to subtract.
|
||||
const toSubtract = (amount % bucket.refillAmount) || amount
|
||||
const toSubtract = amount % bucket.refillAmount ?? amount
|
||||
bucket.tokensState -= toSubtract
|
||||
|
||||
// Allow the next acquire to happen.
|
||||
@@ -1,17 +1,17 @@
|
||||
import { BitwisePermissionFlags, PermissionStrings } from '../types/shared.js'
|
||||
import { BitwisePermissionFlags, PermissionStrings } from '@discordeno/types'
|
||||
|
||||
/** This function converts a bitwise string to permission strings */
|
||||
export function calculatePermissions (permissionBits: bigint) {
|
||||
export function calculatePermissions (permissionBits: bigint): PermissionStrings[] {
|
||||
return Object.keys(BitwisePermissionFlags).filter((permission) => {
|
||||
// Since Object.keys() not only returns the permission names but also the bit values we need to return false if it is a Number
|
||||
if (Number(permission)) return false
|
||||
if (typeof permission === 'number') return false
|
||||
// Check if permissionBits has this permission
|
||||
return permissionBits & BigInt(BitwisePermissionFlags[permission as PermissionStrings])
|
||||
}) as PermissionStrings[]
|
||||
}
|
||||
|
||||
/** This function converts an array of permissions into the bitwise string. */
|
||||
export function calculateBits (permissions: PermissionStrings[]) {
|
||||
export function calculateBits (permissions: PermissionStrings[]): string {
|
||||
return permissions
|
||||
.reduce((bits, perm) => {
|
||||
bits |= BigInt(BitwisePermissionFlags[perm])
|
||||
16
packages/utils/tsconfig.json
Normal file
16
packages/utils/tsconfig.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"extends": "tsconfig/base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist",
|
||||
},
|
||||
"include": [
|
||||
"./src/**/*.ts",
|
||||
"./src/**/*.tsx"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
"test",
|
||||
"tests"
|
||||
]
|
||||
}
|
||||
31
turbo.json
31
turbo.json
@@ -2,14 +2,39 @@
|
||||
"$schema": "https://turbo.build/schema.json",
|
||||
"pipeline": {
|
||||
"build": {
|
||||
"dependsOn": ["^build"],
|
||||
"outputs": ["dist/**", ".next/**"]
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
],
|
||||
"outputs": [
|
||||
"dist/**/*.js"
|
||||
]
|
||||
},
|
||||
"build-types": {
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
],
|
||||
"outputs": [
|
||||
"dist/**/d.ts",
|
||||
"dist/**/d.ts.map"
|
||||
]
|
||||
},
|
||||
"release-build": {
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"^build-types"
|
||||
],
|
||||
"outputs": [
|
||||
"dist/**"
|
||||
]
|
||||
},
|
||||
"lint": {
|
||||
"outputs": []
|
||||
},
|
||||
"fmt": {
|
||||
"outputs": []
|
||||
},
|
||||
"dev": {
|
||||
"cache": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user