Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
039a4ded96 | |||
3448b8cf97 | |||
328fccc086 | |||
201e08e10e | |||
1ee8930525 | |||
6a8fca75c9 | |||
b2f0b8fc3d | |||
20a16aef32 | |||
45d8752a71 | |||
d82651c031 | |||
6b89c93165 | |||
17ecde59d5 | |||
79f78550ba | |||
d29fd78753 | |||
74b52173dd | |||
8f63394641 |
17
.gitignore
vendored
17
.gitignore
vendored
@ -1,5 +1,20 @@
|
||||
.nogit/
|
||||
node_modules/
|
||||
|
||||
# artifacts
|
||||
coverage/
|
||||
public/
|
||||
pages/
|
||||
|
||||
# installs
|
||||
node_modules/
|
||||
|
||||
# caches
|
||||
.yarn/
|
||||
.cache/
|
||||
.rpt2_cache
|
||||
|
||||
# builds
|
||||
dist/
|
||||
dist_*/
|
||||
|
||||
# custom
|
106
.gitlab-ci.yml
106
.gitlab-ci.yml
@ -1,71 +1,127 @@
|
||||
# gitzone standard
|
||||
image: hosttoday/ht-docker-node:npmci
|
||||
# gitzone ci_default
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
|
||||
cache:
|
||||
paths:
|
||||
- .yarn/
|
||||
key: "$CI_BUILD_STAGE"
|
||||
- .npmci_cache/
|
||||
key: '$CI_BUILD_STAGE'
|
||||
|
||||
stages:
|
||||
- test
|
||||
- release
|
||||
- trigger
|
||||
- pages
|
||||
- security
|
||||
- test
|
||||
- release
|
||||
- metadata
|
||||
|
||||
testLEGACY:
|
||||
stage: test
|
||||
# ====================
|
||||
# security stage
|
||||
# ====================
|
||||
mirror:
|
||||
stage: security
|
||||
script:
|
||||
- npmci test legacy
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
- npmci git mirror
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
allow_failure: true
|
||||
- notpriv
|
||||
|
||||
testLTS:
|
||||
audit:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --ignore-scripts
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command npm audit --audit-level=high
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
|
||||
# ====================
|
||||
# test stage
|
||||
# ====================
|
||||
|
||||
testStable:
|
||||
stage: test
|
||||
script:
|
||||
- npmci test lts
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci npm test
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
|
||||
testSTABLE:
|
||||
- priv
|
||||
|
||||
testBuild:
|
||||
stage: test
|
||||
script:
|
||||
- npmci test stable
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci command npm run build
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
|
||||
release:
|
||||
stage: release
|
||||
script:
|
||||
- npmci publish
|
||||
- npmci node install stable
|
||||
- npmci npm publish
|
||||
only:
|
||||
- tags
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
|
||||
# ====================
|
||||
# metadata stage
|
||||
# ====================
|
||||
codequality:
|
||||
stage: metadata
|
||||
allow_failure: true
|
||||
script:
|
||||
- npmci command npm install -g tslint typescript
|
||||
- npmci npm prepare
|
||||
- npmci npm install
|
||||
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- priv
|
||||
|
||||
trigger:
|
||||
stage: trigger
|
||||
stage: metadata
|
||||
script:
|
||||
- npmci trigger
|
||||
only:
|
||||
- tags
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
|
||||
pages:
|
||||
image: hosttoday/ht-docker-node:npmci
|
||||
stage: pages
|
||||
stage: metadata
|
||||
script:
|
||||
- npmci command yarn global add npmpage
|
||||
- npmci command npmpage
|
||||
- npmci node install lts
|
||||
- npmci command npm install -g @gitzone/tsdoc
|
||||
- npmci npm prepare
|
||||
- npmci npm install
|
||||
- npmci command tsdoc
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
only:
|
||||
- tags
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- public
|
||||
- public
|
||||
allow_failure: true
|
||||
|
29
.vscode/launch.json
vendored
Normal file
29
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "current file",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"args": [
|
||||
"${relativeFile}"
|
||||
],
|
||||
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"protocol": "inspector",
|
||||
"internalConsoleOptions": "openOnSessionStart"
|
||||
},
|
||||
{
|
||||
"name": "test.ts",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"args": [
|
||||
"test/test.ts"
|
||||
],
|
||||
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"protocol": "inspector",
|
||||
"internalConsoleOptions": "openOnSessionStart"
|
||||
}
|
||||
]
|
||||
}
|
26
.vscode/settings.json
vendored
Normal file
26
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"json.schemas": [
|
||||
{
|
||||
"fileMatch": ["/npmextra.json"],
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"npmci": {
|
||||
"type": "object",
|
||||
"description": "settings for npmci"
|
||||
},
|
||||
"gitzone": {
|
||||
"type": "object",
|
||||
"description": "settings for gitzone",
|
||||
"properties": {
|
||||
"projectType": {
|
||||
"type": "string",
|
||||
"enum": ["website", "element", "service", "npm"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
module.name: smartmodule
|
||||
module.description: a smart description
|
||||
module.author: Lossless GmbH
|
||||
module.license: MIT
|
@ -1,7 +1,17 @@
|
||||
{
|
||||
"npmci": {
|
||||
"globalNpmTools": [
|
||||
"npmts"
|
||||
]
|
||||
"npmGlobalTools": [],
|
||||
"npmAccessLevel": "public"
|
||||
},
|
||||
"gitzone": {
|
||||
"projectType": "npm",
|
||||
"module": {
|
||||
"githost": "gitlab.com",
|
||||
"gitscope": "pushrocks",
|
||||
"gitrepo": "smartunique",
|
||||
"shortDescription": "make things unique",
|
||||
"npmPackagename": "@pushrocks/smartunique",
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
4780
package-lock.json
generated
Normal file
4780
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
53
package.json
53
package.json
@ -1,18 +1,55 @@
|
||||
{
|
||||
"name": "smartunique",
|
||||
"version": "1.0.3",
|
||||
"name": "@pushrocks/smartunique",
|
||||
"version": "3.0.5",
|
||||
"private": false,
|
||||
"description": "make things unique",
|
||||
"main": "dist/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
"main": "dist_ts/index.js",
|
||||
"typings": "dist_ts/index.d.ts",
|
||||
"author": "Lossless GmbH",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"test": "(npmts)"
|
||||
"test": "(tstest test/)",
|
||||
"build": "(tsbuild)"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://gitlab.com/pushrocks/smartunique.git"
|
||||
},
|
||||
"keywords": [
|
||||
"unique",
|
||||
"key",
|
||||
"uuid",
|
||||
"shortid",
|
||||
"lossless",
|
||||
"pushrocks",
|
||||
"TypeScript"
|
||||
],
|
||||
"devDependencies": {
|
||||
"tapbundle": "^1.0.13"
|
||||
"@gitzone/tsbuild": "^2.1.24",
|
||||
"@gitzone/tsrun": "^1.2.12",
|
||||
"@gitzone/tstest": "^1.0.33",
|
||||
"@pushrocks/tapbundle": "^3.2.1",
|
||||
"@types/node": "^14.0.11",
|
||||
"tslint": "^6.1.2",
|
||||
"tslint-config-prettier": "^1.18.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"typings-global": "^1.0.16"
|
||||
}
|
||||
"@pushrocks/isounique": "^1.0.4",
|
||||
"@types/shortid": "0.0.29",
|
||||
"@types/uuid": "^8.0.0",
|
||||
"shortid": "^2.2.15",
|
||||
"uuid": "^8.1.0"
|
||||
},
|
||||
"files": [
|
||||
"ts/**/*",
|
||||
"ts_web/**/*",
|
||||
"dist/**/*",
|
||||
"dist_*/**/*",
|
||||
"dist_ts/**/*",
|
||||
"dist_ts_web/**/*",
|
||||
"assets/**/*",
|
||||
"cli.js",
|
||||
"npmextra.json",
|
||||
"readme.md"
|
||||
]
|
||||
}
|
||||
|
62
readme.md
62
readme.md
@ -1,29 +1,55 @@
|
||||
# smartunique
|
||||
# @pushrocks/smartunique
|
||||
make things unique
|
||||
|
||||
## Availabililty
|
||||
[](https://www.npmjs.com/package/smartunique)
|
||||
[](https://GitLab.com/pushrocks/smartunique)
|
||||
[](https://github.com/pushrocks/smartunique)
|
||||
[](https://pushrocks.gitlab.io/smartunique/)
|
||||
## Availabililty and Links
|
||||
* [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/smartunique)
|
||||
* [gitlab.com (source)](https://gitlab.com/pushrocks/smartunique)
|
||||
* [github.com (source mirror)](https://github.com/pushrocks/smartunique)
|
||||
* [docs (typedoc)](https://pushrocks.gitlab.io/smartunique/)
|
||||
|
||||
## Status for master
|
||||
[](https://GitLab.com/pushrocks/smartunique/commits/master)
|
||||
[](https://GitLab.com/pushrocks/smartunique/commits/master)
|
||||
[](https://www.npmjs.com/package/smartunique)
|
||||
[](https://david-dm.org/pushrocks/smartunique)
|
||||
[](https://www.bithound.io/github/pushrocks/smartunique/master/dependencies/npm)
|
||||
[](https://www.bithound.io/github/pushrocks/smartunique)
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[](http://standardjs.com/)
|
||||
|
||||
Status Category | Status Badge
|
||||
-- | --
|
||||
GitLab Pipelines | [](https://lossless.cloud)
|
||||
GitLab Pipline Test Coverage | [](https://lossless.cloud)
|
||||
npm | [](https://lossless.cloud)
|
||||
Snyk | [](https://lossless.cloud)
|
||||
TypeScript Support | [](https://lossless.cloud)
|
||||
node Support | [](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
Code Style | [](https://lossless.cloud)
|
||||
PackagePhobia (total standalone install weight) | [](https://lossless.cloud)
|
||||
PackagePhobia (package size on registry) | [](https://lossless.cloud)
|
||||
BundlePhobia (total size when bundled) | [](https://lossless.cloud)
|
||||
Platform support | [](https://lossless.cloud) [](https://lossless.cloud)
|
||||
|
||||
## Usage
|
||||
|
||||
Use TypeScript for best in class instellisense.
|
||||
|
||||
For further information read the linked docs at the top of this README.
|
||||
```javascript
|
||||
// We are using TypeScript syntax here to have types in place
|
||||
import * as smartunique from 'smartunique';
|
||||
|
||||
// creates a short mathematically highly unique short string
|
||||
let myShortid = smartunique.shortid();
|
||||
|
||||
// creates a string that is possibly unique world wide
|
||||
let myUuid4 = smartunique.uuid4();
|
||||
|
||||
// creates a oneway repeatable unique id within a certain namespace
|
||||
let myUuid5 = smartunique.uuid('myobscureduser@somedomain.com', smartunique.uuid4());
|
||||
```
|
||||
|
||||
Learn more about UUIDs: knowledgebase.gitzone.com/uuid.html
|
||||
|
||||
## Contribution
|
||||
|
||||
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). :)
|
||||
|
||||
For further information read the linked docs at the top of this readme.
|
||||
|
||||
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
|
||||
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
|
||||
|
||||
[](https://push.rocks)
|
||||
[](https://maintainedby.lossless.com)
|
||||
|
33
test/test.ts
33
test/test.ts
@ -1,8 +1,29 @@
|
||||
import { expect, tap } from 'tapbundle'
|
||||
import * as smartunique from '../dist/index'
|
||||
import { expect, tap } from '@pushrocks/tapbundle';
|
||||
import * as smartunique from '../ts/index';
|
||||
|
||||
tap.test('first test', async () => {
|
||||
console.log('hey')
|
||||
})
|
||||
tap.test('should create shortid', async () => {
|
||||
const result = smartunique.shortId();
|
||||
console.log(result);
|
||||
});
|
||||
|
||||
tap.start()
|
||||
tap.test('should create uuidv4', async () => {
|
||||
const result = smartunique.uuid4();
|
||||
console.log(result);
|
||||
});
|
||||
|
||||
tap.test('should create uuidv5', async () => {
|
||||
const result = smartunique.uuid5('sometext');
|
||||
console.log(result);
|
||||
});
|
||||
|
||||
tap.test('should create uuidv5 within namespace', async () => {
|
||||
const result = smartunique.uuid5('sometext', smartunique.uuid4());
|
||||
console.log(result);
|
||||
});
|
||||
|
||||
tap.test('should create a uni string', async () => {
|
||||
const result = smartunique.uni();
|
||||
console.log(result);
|
||||
});
|
||||
|
||||
tap.start();
|
||||
|
22
ts/index.ts
22
ts/index.ts
@ -1 +1,21 @@
|
||||
import * as plugins from './smartunique.plugins'
|
||||
import * as plugins from './smartunique.plugins';
|
||||
|
||||
/**
|
||||
* returns short strings that are unique to very high degree od certainty
|
||||
*/
|
||||
export const shortId = (): string => {
|
||||
return plugins.shortid.generate();
|
||||
};
|
||||
|
||||
/**
|
||||
* returns strings that are unique to a very high degree of certainty
|
||||
*/
|
||||
export const uuid4 = (): string => {
|
||||
return plugins.uuid.v4();
|
||||
};
|
||||
|
||||
export const uuid5 = (customStringArg: string, namespaceArg = plugins.uuid.v5.DNS): string => {
|
||||
return plugins.uuid.v5(customStringArg, namespaceArg);
|
||||
};
|
||||
|
||||
export const uni = plugins.isounique.uni;
|
||||
|
@ -1 +1,11 @@
|
||||
import 'typings-global'
|
||||
// pushrocks scope
|
||||
import * as isounique from '@pushrocks/isounique';
|
||||
|
||||
export {
|
||||
isounique
|
||||
};
|
||||
|
||||
import shortid from 'shortid';
|
||||
import * as uuid from 'uuid';
|
||||
|
||||
export { shortid, uuid };
|
||||
|
16
tslint.json
16
tslint.json
@ -1,3 +1,17 @@
|
||||
{
|
||||
"extends": "tslint-config-standard"
|
||||
"extends": ["tslint:latest", "tslint-config-prettier"],
|
||||
"rules": {
|
||||
"semicolon": [true, "always"],
|
||||
"no-console": false,
|
||||
"ordered-imports": false,
|
||||
"object-literal-sort-keys": false,
|
||||
"member-ordering": {
|
||||
"options":{
|
||||
"order": [
|
||||
"static-method"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultSeverity": "warning"
|
||||
}
|
||||
|
Reference in New Issue
Block a user