Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
b26b8ed4a6 | |||
0e6877d2d1 | |||
8a0c3fe906 | |||
ae861fa271 | |||
3e78466e5f | |||
eea19bcd89 | |||
1fc95fcf0e |
@ -119,6 +119,6 @@ jobs:
|
||||
run: |
|
||||
npmci node install stable
|
||||
npmci npm install
|
||||
pnpm install -g @gitzone/tsdoc
|
||||
pnpm install -g @git.zone/tsdoc
|
||||
npmci command tsdoc
|
||||
continue-on-error: true
|
||||
|
24
package.json
24
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@push.rocks/smartstring",
|
||||
"version": "4.0.8",
|
||||
"version": "4.0.12",
|
||||
"private": false,
|
||||
"description": "handle strings in smart ways. TypeScript ready.",
|
||||
"main": "dist_ts/index.js",
|
||||
@ -13,7 +13,7 @@
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://gitlab.com/pushrocks/smartstring.git"
|
||||
"url": "git+https://gitlab.com/push.rocks/smartstring.git"
|
||||
},
|
||||
"keywords": [
|
||||
"regex",
|
||||
@ -22,27 +22,27 @@
|
||||
"author": "Lossless GmbH",
|
||||
"license": "MIT",
|
||||
"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": {
|
||||
"@gitzone/tsbuild": "^2.1.66",
|
||||
"@gitzone/tsrun": "^1.2.42",
|
||||
"@gitzone/tstest": "^1.0.74",
|
||||
"@push.rocks/tapbundle": "^5.0.8",
|
||||
"@types/node": "^20.3.1"
|
||||
"@git.zone/tsbuild": "^2.1.66",
|
||||
"@git.zone/tsrun": "^1.2.42",
|
||||
"@git.zone/tstest": "^1.0.84",
|
||||
"@push.rocks/tapbundle": "^5.0.15",
|
||||
"@types/node": "^20.10.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"@push.rocks/isounique": "^1.0.5",
|
||||
"@push.rocks/smartenv": "^5.0.5",
|
||||
"@types/randomatic": "^3.1.3",
|
||||
"@push.rocks/smartenv": "^5.0.12",
|
||||
"@types/randomatic": "^3.1.5",
|
||||
"buffer": "^6.0.3",
|
||||
"crypto-random-string": "^5.0.0",
|
||||
"js-base64": "^3.7.5",
|
||||
"normalize-newline": "^4.1.0",
|
||||
"randomatic": "^3.1.1",
|
||||
"strip-indent": "^4.0.0",
|
||||
"url": "^0.11.1"
|
||||
"url": "^0.11.3"
|
||||
},
|
||||
"files": [
|
||||
"ts/**/*",
|
||||
|
3000
pnpm-lock.yaml
generated
3000
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -9,8 +9,7 @@ tap.test('should normalize a string', async () => {
|
||||
`;
|
||||
const normalizedString = smartstring.normalize.standard(testString);
|
||||
expect(normalizedString).toEqual(
|
||||
`
|
||||
myawesome string;
|
||||
`myawesome string;
|
||||
is indented with two spaces
|
||||
`
|
||||
);
|
||||
|
@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@push.rocks/smartstring',
|
||||
version: '4.0.8',
|
||||
version: '4.0.12',
|
||||
description: 'handle strings in smart ways. TypeScript ready.'
|
||||
}
|
||||
|
@ -10,13 +10,42 @@ export const replaceAll = (stringArg: string, searchPattern: string, replacement
|
||||
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 options
|
||||
*/
|
||||
export const standard = (stringArg: string): string => {
|
||||
let fix1 = plugins.stripIndent(stringArg); // fix indention
|
||||
let fix2 = plugins.normalizeNewline(fix1); // fix newlines
|
||||
let fix3 = replaceAll(fix2, '\t/', ' '); // fix tabs
|
||||
return fix3;
|
||||
export const standard = (stringArg: string, options?: INormalizeOptions): string => {
|
||||
let result = stringArg;
|
||||
|
||||
if (!options || options.stripIndent) {
|
||||
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;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user