Problem: the hexagonal refactor churns the backend tree for nine more phases; the UI delivery stack (web/ SPA, cmd/desktop Wails wrapper, compose/web image) must move to its own repo first so doc/layout rewrites land once on a backend-only tree. Change: - New repo git.hubris.network/dtoro/oikos-web (v0.33.0): web/, desktop/ (updateURL repointed to oikos-web releases), compose/, own CI (web + desktop jobs), own deploy script (CI-green gate, TOCTOU guard, version-tagged images, prune-to-3), own webhook receiver on :9798 + launchd unit, own compose project publishing the same 8091:80. - Cutover executed on mac-mini in order: oikos stack's web service stopped+removed, oikos-web project brought up on 8091; outer Caddy untouched (targets the published port) — serving + Authentik flow + /wails 404 quirk verified post-cutover. - Stripped from oikos: web/, cmd/desktop/, compose/web/, desktop CI workflow, ci.yml web job, Makefile ui/desktop/desktop-package/install targets, the compose web service, oikos-web from deploy.sh's fallback prune list; wails + go-keyring dropped from go.mod, vendor synced. - README / CONTRIBUTING / AGENTS.md / .agents dev+operations docs now point at the new repo; mbse + mascot design docs carry a path note. Risk: production SPA serving depends on the new pipeline now; rollback is versioned-image re-up of the old web service from a pre-split checkout (port 8091). Desktop builds installed before the split still check dtoro/oikos releases — one manual reinstall, noted in the oikos-web release notes. Verification: go vet, make test (race), make generate-check, golangci (no new findings; baseline down 400→365); post-cutover curls — localhost:8091 200, /wails/runtime.js 404, outer Caddy 302 Authentik.
70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
# 🛣️ pathe
|
|
|
|
> Universal filesystem path utils
|
|
|
|
[![version][npm-v-src]][npm-v-href]
|
|
[![downloads][npm-d-src]][npm-d-href]
|
|
[![size][size-src]][size-href]
|
|
|
|
> **❓ Why**
|
|
>
|
|
> For [historical reasons](https://docs.microsoft.com/en-us/archive/blogs/larryosterman/why-is-the-dos-path-character), windows followed MS-DOS and using backslash for separating paths rather than slash used for macOS, Linux, and other Posix operating systems. Nowadays, [Windows](https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN) supports both Slash and Backslash for paths. [Node.js's built in `path` module](https://nodejs.org/api/path.html) in the default operation of the path module varies based on the operating system on which a Node.js application is running. Specifically, when running on a Windows operating system, the path module will assume that Windows-style paths are being used. **This makes inconsistent code behavior between Windows and POSIX.**
|
|
> Compared to popular [upath](https://github.com/anodynos/upath), pathe is providing **identical exports** of Node.js with normalization on **all operations** and written in modern **ESM/Typescript** and has **no dependency on Node.js**!
|
|
|
|
This package is a drop-in replacement of the Node.js's [path module](https://nodejs.org/api/path.html) module and ensures paths are normalized with slash `/` and work in environments including Node.js.
|
|
|
|
## 💿 Usage
|
|
|
|
Install using npm or yarn:
|
|
|
|
```bash
|
|
# npm
|
|
npm i pathe
|
|
|
|
# yarn
|
|
yarn add pathe
|
|
|
|
# pnpm
|
|
pnpm i pathe
|
|
```
|
|
|
|
Import:
|
|
|
|
```js
|
|
// ESM / Typescript
|
|
import { resolve } from 'pathe'
|
|
|
|
// CommonJS
|
|
const { resolve } = require('pathe')
|
|
```
|
|
|
|
Read more about path utils from [Node.js documentation](https://nodejs.org/api/path.html) and rest assured behavior is ALWAYS like POSIX regardless of your input paths format and running platform!
|
|
|
|
### Extra utilties
|
|
|
|
Pathe exports some extra utilities that do not exist in standard Node.js [path module](https://nodejs.org/api/path.html).
|
|
In order to use them, you can import from `pathe/utils` subpath:
|
|
|
|
```js
|
|
import { filename, normalizeAliases, resolveAlias } from 'pathe/utils'
|
|
```
|
|
|
|
## License
|
|
|
|
MIT. Made with 💖
|
|
|
|
Some code used from Node.js project. See [LICENSE](./LICENSE).
|
|
|
|
<!-- Refs -->
|
|
[npm-v-src]: https://img.shields.io/npm/v/pathe?style=flat-square
|
|
[npm-v-href]: https://npmjs.com/package/pathe
|
|
|
|
[npm-d-src]: https://img.shields.io/npm/dm/pathe?style=flat-square
|
|
[npm-d-href]: https://npmjs.com/package/pathe
|
|
|
|
[github-actions-src]: https://img.shields.io/github/workflow/status/unjs/pathe/ci/main?style=flat-square
|
|
[github-actions-href]: https://github.com/unjs/pathe/actions?query=workflow%3Aci
|
|
|
|
[size-src]: https://packagephobia.now.sh/badge?p=pathe
|
|
[size-href]: https://packagephobia.now.sh/result?p=pathe
|