Compare commits

..

7 Commits

Author SHA1 Message Date
b26b8ed4a6 4.0.12 2024-01-08 14:24:22 +01:00
0e6877d2d1 fix(core): update 2024-01-08 14:24:21 +01:00
8a0c3fe906 4.0.11 2024-01-08 14:17:10 +01:00
ae861fa271 4.0.10 2023-12-27 21:57:45 +01:00
3e78466e5f fix(core): update 2023-12-27 21:57:45 +01:00
eea19bcd89 4.0.9 2023-08-31 16:31:24 +02:00
1fc95fcf0e fix(core): update 2023-08-31 16:31:23 +02:00
6 changed files with 2211 additions and 861 deletions

View File

@ -119,6 +119,6 @@ jobs:
run: | run: |
npmci node install stable npmci node install stable
npmci npm install npmci npm install
pnpm install -g @gitzone/tsdoc pnpm install -g @git.zone/tsdoc
npmci command tsdoc npmci command tsdoc
continue-on-error: true continue-on-error: true

View File

@ -1,6 +1,6 @@
{ {
"name": "@push.rocks/smartstring", "name": "@push.rocks/smartstring",
"version": "4.0.8", "version": "4.0.12",
"private": false, "private": false,
"description": "handle strings in smart ways. TypeScript ready.", "description": "handle strings in smart ways. TypeScript ready.",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
@ -13,7 +13,7 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://gitlab.com/pushrocks/smartstring.git" "url": "git+https://gitlab.com/push.rocks/smartstring.git"
}, },
"keywords": [ "keywords": [
"regex", "regex",
@ -22,27 +22,27 @@
"author": "Lossless GmbH", "author": "Lossless GmbH",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://gitlab.com/pushrocks/smartstring/issues" "url": "https://gitlab.com/push.rocks/smartstring/issues"
}, },
"homepage": "https://gitlab.com/pushrocks/smartstring#readme", "homepage": "https://gitlab.com/push.rocks/smartstring#readme",
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.66", "@git.zone/tsbuild": "^2.1.66",
"@gitzone/tsrun": "^1.2.42", "@git.zone/tsrun": "^1.2.42",
"@gitzone/tstest": "^1.0.74", "@git.zone/tstest": "^1.0.84",
"@push.rocks/tapbundle": "^5.0.8", "@push.rocks/tapbundle": "^5.0.15",
"@types/node": "^20.3.1" "@types/node": "^20.10.5"
}, },
"dependencies": { "dependencies": {
"@push.rocks/isounique": "^1.0.5", "@push.rocks/isounique": "^1.0.5",
"@push.rocks/smartenv": "^5.0.5", "@push.rocks/smartenv": "^5.0.12",
"@types/randomatic": "^3.1.3", "@types/randomatic": "^3.1.5",
"buffer": "^6.0.3", "buffer": "^6.0.3",
"crypto-random-string": "^5.0.0", "crypto-random-string": "^5.0.0",
"js-base64": "^3.7.5", "js-base64": "^3.7.5",
"normalize-newline": "^4.1.0", "normalize-newline": "^4.1.0",
"randomatic": "^3.1.1", "randomatic": "^3.1.1",
"strip-indent": "^4.0.0", "strip-indent": "^4.0.0",
"url": "^0.11.1" "url": "^0.11.3"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",

3000
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,7 @@ tap.test('should normalize a string', async () => {
`; `;
const normalizedString = smartstring.normalize.standard(testString); const normalizedString = smartstring.normalize.standard(testString);
expect(normalizedString).toEqual( expect(normalizedString).toEqual(
` `myawesome string;
myawesome string;
is indented with two spaces is indented with two spaces
` `
); );

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@push.rocks/smartstring', name: '@push.rocks/smartstring',
version: '4.0.8', version: '4.0.12',
description: 'handle strings in smart ways. TypeScript ready.' description: 'handle strings in smart ways. TypeScript ready.'
} }

View File

@ -10,13 +10,42 @@ export const replaceAll = (stringArg: string, searchPattern: string, replacement
return stringArg.replace(new RegExp(searchPattern, 'g'), replacementString); return stringArg.replace(new RegExp(searchPattern, 'g'), replacementString);
}; };
export interface INormalizeOptions {
stripLeadingTrailingEmptyLines?: boolean;
stripAllEmptyLines?: boolean;
stripIndent?: boolean;
normalizeNewline?: boolean;
replaceTabs?: boolean;
}
/** /**
* normalizes a string * Normalizes a string
* @param stringArg * @param stringArg
* @param options
*/ */
export const standard = (stringArg: string): string => { export const standard = (stringArg: string, options?: INormalizeOptions): string => {
let fix1 = plugins.stripIndent(stringArg); // fix indention let result = stringArg;
let fix2 = plugins.normalizeNewline(fix1); // fix newlines
let fix3 = replaceAll(fix2, '\t/', ' '); // fix tabs if (!options || options.stripIndent) {
return fix3; result = plugins.stripIndent(result); // fix indention
}
if (!options || options.normalizeNewline) {
result = plugins.normalizeNewline(result); // fix newlines
}
if (!options || options.replaceTabs) {
result = replaceAll(result, '\t/', ' '); // fix tabs
}
if (!options || options.stripLeadingTrailingEmptyLines) {
result = result.replace(/^\s*[\r\n]/gm, '').replace(/\s*[\r\n]$/gm, '');
}
if (!options || options.stripAllEmptyLines) {
result = result.replace(/^\s*[\r\n]/gm, '');
}
return result;
}; };