From 9d55b0d94b194dda3910e766a311b5faab3af1dd Mon Sep 17 00:00:00 2001 From: kenneth Date: Tue, 16 Sep 2025 23:17:19 +0000 Subject: [PATCH] feat: new path util package --- packages/path/.gitignore | 34 ++++++++++++++++++++++++++++++++++ packages/path/README.md | 15 +++++++++++++++ packages/path/index.ts | 9 +++++++++ packages/path/package.json | 8 ++++++++ packages/path/tsconfig.json | 29 +++++++++++++++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 packages/path/.gitignore create mode 100644 packages/path/README.md create mode 100644 packages/path/index.ts create mode 100644 packages/path/package.json create mode 100644 packages/path/tsconfig.json diff --git a/packages/path/.gitignore b/packages/path/.gitignore new file mode 100644 index 0000000..a14702c --- /dev/null +++ b/packages/path/.gitignore @@ -0,0 +1,34 @@ +# dependencies (bun install) +node_modules + +# output +out +dist +*.tgz + +# code coverage +coverage +*.lcov + +# logs +logs +_.log +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# caches +.eslintcache +.cache +*.tsbuildinfo + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/packages/path/README.md b/packages/path/README.md new file mode 100644 index 0000000..41a62f1 --- /dev/null +++ b/packages/path/README.md @@ -0,0 +1,15 @@ +# @fileone/path + +To install dependencies: + +```bash +bun install +``` + +To run: + +```bash +bun run index.ts +``` + +This project was created using `bun init` in bun v1.2.22. [Bun](https://bun.com) is a fast all-in-one JavaScript runtime. diff --git a/packages/path/index.ts b/packages/path/index.ts new file mode 100644 index 0000000..07c9b3f --- /dev/null +++ b/packages/path/index.ts @@ -0,0 +1,9 @@ +export const PATH_SEPARATOR = "/" + +export function baseName(path: string): string { + return path.split(PATH_SEPARATOR).pop() ?? "" +} + +export function joinPath(...paths: string[]): string { + return paths.join(PATH_SEPARATOR) +} diff --git a/packages/path/package.json b/packages/path/package.json new file mode 100644 index 0000000..6d7df8a --- /dev/null +++ b/packages/path/package.json @@ -0,0 +1,8 @@ +{ + "name": "@fileone/path", + "module": "index.ts", + "type": "module", + "peerDependencies": { + "typescript": "^5" + } +} diff --git a/packages/path/tsconfig.json b/packages/path/tsconfig.json new file mode 100644 index 0000000..bfa0fea --- /dev/null +++ b/packages/path/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + // Environment setup & latest features + "lib": ["ESNext"], + "target": "ESNext", + "module": "Preserve", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +}