From 7cc6127680a3920cf9b50f289536d820c47ff1dd Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Sun, 14 Apr 2024 00:53:53 +0200 Subject: [PATCH] fix(core): update --- npmextra.json | 23 +++++++- package.json | 22 +++++-- readme.hints.md | 1 + readme.md | 124 +++++++++++++++++++++++++++++---------- ts/00_commitinfo_data.ts | 4 +- 5 files changed, 134 insertions(+), 40 deletions(-) create mode 100644 readme.hints.md diff --git a/npmextra.json b/npmextra.json index a38819b..2d00279 100644 --- a/npmextra.json +++ b/npmextra.json @@ -8,12 +8,29 @@ "githost": "code.foss.global", "gitscope": "push.rocks", "gitrepo": "smartpath", - "description": "offers smart ways to handle paths", + "description": "A library offering smart ways to handle file and directory paths.", "npmPackagename": "@push.rocks/smartpath", - "license": "MIT" + "license": "MIT", + "keywords": [ + "path handling", + "file system", + "directory manipulation", + "file checks", + "path transformation", + "typescript", + "node.js development", + "URL handling", + "absolute paths", + "smart path resolution", + "programming", + "file management", + "software development", + "path utilities", + "cross-platform path management" + ] } }, - "tsdocs": { + "tsdoc": { "legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n" } } \ No newline at end of file diff --git a/package.json b/package.json index 4f82b9e..f627604 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@push.rocks/smartpath", "version": "5.0.13", "private": false, - "description": "offers smart ways to handle paths", + "description": "A library offering smart ways to handle file and directory paths.", "main": "dist_ts/index.js", "typings": "dist_ts/index.d.ts", "type": "module", @@ -16,9 +16,21 @@ "url": "https://github.com/pushrocks/smartpath.git" }, "keywords": [ - "json", - "jade", - "template" + "path handling", + "file system", + "directory manipulation", + "file checks", + "path transformation", + "typescript", + "node.js development", + "URL handling", + "absolute paths", + "smart path resolution", + "programming", + "file management", + "software development", + "path utilities", + "cross-platform path management" ], "author": "Lossless GmbH (https://lossless.com)", "license": "MIT", @@ -48,4 +60,4 @@ "browserslist": [ "last 1 chrome versions" ] -} +} \ No newline at end of file diff --git a/readme.hints.md b/readme.hints.md new file mode 100644 index 0000000..45428ab --- /dev/null +++ b/readme.hints.md @@ -0,0 +1 @@ +no specific hints here, should be easy to understand from the files. \ No newline at end of file diff --git a/readme.md b/readme.md index fa0d070..89bb679 100644 --- a/readme.md +++ b/readme.md @@ -1,43 +1,107 @@ # @push.rocks/smartpath -offers smart ways to handle paths -## Availabililty and Links -* [npmjs.org (npm package)](https://www.npmjs.com/package/@push.rocks/smartpath) -* [gitlab.com (source)](https://gitlab.com/push.rocks/smartpath) -* [github.com (source mirror)](https://github.com/push.rocks/smartpath) -* [docs (typedoc)](https://push.rocks.gitlab.io/smartpath/) +[@push.rocks/smartpath](https://github.com/pushrocks/smartpath) offers smart ways to handle paths. -## Status for master - -Status Category | Status Badge --- | -- -GitLab Pipelines | [![pipeline status](https://gitlab.com/push.rocks/smartpath/badges/master/pipeline.svg)](https://lossless.cloud) -GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/push.rocks/smartpath/badges/master/coverage.svg)](https://lossless.cloud) -npm | [![npm downloads per month](https://badgen.net/npm/dy/@push.rocks/smartpath)](https://lossless.cloud) -Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/push.rocks/smartpath)](https://lossless.cloud) -TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud) -node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) -Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud) -PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@push.rocks/smartpath)](https://lossless.cloud) -PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@push.rocks/smartpath)](https://lossless.cloud) -BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@push.rocks/smartpath)](https://lossless.cloud) +## Install +To install `@push.rocks/smartpath`, you'll need to run the following command using npm. Ensure you have Node.js and npm installed before you start. +```bash +npm install @push.rocks/smartpath --save +``` ## Usage +The `@push.rocks/smartpath` module provides a sophisticated yet straightforward approach to handle, manipulate, and evaluate file and directory paths within your TypeScript projects. By incorporating features like path normalization, transformation, and validation, `smartpath` facilitates powerful and efficient file system and URL path manipulation. This guide dives deep into the module's capabilities, showcasing a broad spectrum of use cases and demonstrating its versatility in handling paths. -Use TypeScript for best in class instellisense. +### Getting Started +To begin utilizing `smartpath` in your project, start by importing it in your TypeScript file: -For further information read the linked docs at the top of this README. +```typescript +import * as smartpath from '@push.rocks/smartpath'; +``` -> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) +### Creating a Smartpath Instance +Instantiating a `Smartpath` object allows for the enrichment of path strings with additional context and manipulation capabilities: -[![repo-footer](https://pushrocks.gitlab.io/assets/repo-footer.svg)](https://push.rocks) +```typescript +const mySmartpath = new smartpath.Smartpath('/some/path/to/some.file'); +console.log(mySmartpath); +``` -## Contribution +### Path Validation +Determining whether a path points to a file or directory is a common requirement. Here's how you can achieve this: -We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :) +```typescript +if (smartpath.check.isFile('./path/to/file.txt')) { + console.log('This is a file.'); +} -For further information read the linked docs at the top of this readme. +if (smartpath.check.isDir('./path/to/directory')) { + console.log('This is a directory.'); +} +``` -## Legal -> MIT licensed | **©** [Task Venture Capital GmbH](https://task.vc) -| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy) +### Absolute Path Conversion +Converting a relative path to an absolute one is a frequent operation, especially in dynamic file handling scenarios: + +```typescript +const absolutePath = smartpath.transform.makeAbsolute('./relative/path/to/file.txt'); +console.log(`Absolute path: ${absolutePath}`); +``` + +### Handling Multiple Paths +`smartpath` shines when dealing with multiple paths, offering efficient bulk operations: + +```typescript +const paths = ['./path/to/file1.txt', './another/path/to/file2.txt']; +const absolutePaths = smartpath.transform.toAbsolute(paths); +console.log(absolutePaths); +``` + +### Understanding Path Types +Identifying whether a path represents a local file system path or a URL is straightforward: + +```typescript +const pathType = smartpath.get.type('https://example.com/resource'); +console.log(`Path type: ${pathType}`); // 'url' +``` + +### Home Directory Paths +Easily manage paths relative to the user's home directory: + +```typescript +const homePath = smartpath.get.home('~/path/to/resource'); +console.log(`Home directory path: ${homePath}`); +``` + +### Analyzing Path Components +Breaking down a path into its components allows for detailed path analysis and manipulation: + +```typescript +const pathLevels = smartpath.get.pathLevels('/path/to/resource'); +console.log(pathLevels); // ['path', 'to', 'resource'] +``` + +### Path Manipulation and More +Beyond the basics, `smartpath` offers a comprehensive set of tools for robust path manipulation, including normalizing paths across different operating systems, working with URL paths, and handling special path constructs like ".." and ".". + +For more advanced use cases, such as transforming path lists, deriving relative paths, or integrating path handling into larger application workflows, `smartpath` provides both utility functions and object-oriented interfaces that streamline these operations. + +By leveraging the full spectrum of `smartpath`'s features, developers can handle virtually any path-related task with ease, efficiency, and reliability. Whether you're building a complex file system utility, managing web application assets, or simply need reliable path manipulation in your TypeScript projects, `smartpath` offers the functionality and flexibility required to do the job right. + +## License and Legal Information + +This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. + +**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file. + +### Trademarks + +This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH. + +### Company Information + +Task Venture Capital GmbH +Registered at District court Bremen HRB 35230 HB, Germany + +For any legal inquiries or if you require further information, please contact us via email at hello@task.vc. + +By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works. diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 1060edb..8cc8c83 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartpath', - version: '5.0.13', - description: 'offers smart ways to handle paths' + version: '5.0.14', + description: 'A library offering smart ways to handle file and directory paths.' }