diff --git a/.gitea/workflows/default_nottags.yaml b/.gitea/workflows/default_nottags.yaml new file mode 100644 index 0000000..9f4e743 --- /dev/null +++ b/.gitea/workflows/default_nottags.yaml @@ -0,0 +1,66 @@ +name: Default (not tags) + +on: + push: + tags-ignore: + - '**' + +env: + IMAGE: registry.gitlab.com/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@gitea.lossless.digital/${{gitea.repository}}.git + NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}} + NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}} + NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}} + NPMCI_URL_CLOUDLY: ${{secrets.NPMCI_URL_CLOUDLY}} + +jobs: + security: + runs-on: ubuntu-latest + continue-on-error: true + container: + image: ${{ env.IMAGE }} + + steps: + - uses: actions/checkout@v3 + + - name: Install pnpm and npmci + run: | + pnpm install -g pnpm + pnpm install -g @shipzone/npmci + + - name: Run npm prepare + run: npmci npm prepare + + - name: Audit production dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --prod + continue-on-error: true + + - name: Audit development dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --dev + continue-on-error: true + + test: + if: ${{ always() }} + needs: security + runs-on: ubuntu-latest + container: + image: ${{ env.IMAGE }} + + steps: + - uses: actions/checkout@v3 + + - name: Test stable + run: | + npmci node install stable + npmci npm install + npmci npm test + + - name: Test build + run: | + npmci node install stable + npmci npm install + npmci npm build diff --git a/.gitea/workflows/default_tags.yaml b/.gitea/workflows/default_tags.yaml new file mode 100644 index 0000000..6290cbd --- /dev/null +++ b/.gitea/workflows/default_tags.yaml @@ -0,0 +1,124 @@ +name: Default (tags) + +on: + push: + tags: + - '*' + +env: + IMAGE: registry.gitlab.com/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@gitea.lossless.digital/${{gitea.repository}}.git + NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}} + NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}} + NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}} + NPMCI_URL_CLOUDLY: ${{secrets.NPMCI_URL_CLOUDLY}} + +jobs: + security: + runs-on: ubuntu-latest + continue-on-error: true + container: + image: ${{ env.IMAGE }} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @shipzone/npmci + npmci npm prepare + + - name: Audit production dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --prod + continue-on-error: true + + - name: Audit development dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --dev + continue-on-error: true + + test: + if: ${{ always() }} + needs: security + runs-on: ubuntu-latest + container: + image: ${{ env.IMAGE }} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @shipzone/npmci + npmci npm prepare + + - name: Test stable + run: | + npmci node install stable + npmci npm install + npmci npm test + + - name: Test build + run: | + npmci node install stable + npmci npm install + npmci npm build + + release: + needs: test + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: ${{ env.IMAGE }} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @shipzone/npmci + npmci npm prepare + + - name: Release + run: | + npmci node install stable + npmci npm publish + + metadata: + needs: test + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: ${{ env.IMAGE }} + continue-on-error: true + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @shipzone/npmci + npmci npm prepare + + - name: Code quality + run: | + npmci command npm install -g typescript + npmci npm install + + - name: Trigger + run: npmci trigger + + - name: Build docs and upload artifacts + run: | + npmci node install stable + npmci npm install + pnpm install -g @gitzone/tsdoc + npmci command tsdoc + continue-on-error: true diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 7b61eb3..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,140 +0,0 @@ -# gitzone ci_default -image: registry.gitlab.com/hosttoday/ht-docker-node:npmci - -cache: - paths: - - .npmci_cache/ - key: '$CI_BUILD_STAGE' - -stages: - - security - - test - - release - - metadata - -before_script: - - npm install -g @shipzone/npmci - -# ==================== -# security stage -# ==================== -mirror: - stage: security - script: - - npmci git mirror - only: - - tags - tags: - - lossless - - docker - - notpriv - -auditProductionDependencies: - image: registry.gitlab.com/hosttoday/ht-docker-node:npmci - stage: security - script: - - npmci npm prepare - - npmci command npm install --production --ignore-scripts - - npmci command npm config set registry https://registry.npmjs.org - - npmci command npm audit --audit-level=high --only=prod --production - tags: - - docker - allow_failure: true - -auditDevDependencies: - 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 --only=dev - tags: - - docker - allow_failure: true - -# ==================== -# test stage -# ==================== - -testStable: - stage: test - script: - - npmci npm prepare - - npmci node install stable - - npmci npm install - - npmci npm test - coverage: /\d+.?\d+?\%\s*coverage/ - tags: - - docker - -testBuild: - stage: test - script: - - npmci npm prepare - - npmci node install stable - - npmci npm install - - npmci command npm run build - coverage: /\d+.?\d+?\%\s*coverage/ - tags: - - docker - -release: - stage: release - script: - - npmci node install stable - - npmci npm publish - only: - - tags - tags: - - lossless - - docker - - notpriv - -# ==================== -# metadata stage -# ==================== -codequality: - stage: metadata - allow_failure: true - only: - - tags - script: - - npmci command npm install -g typescript - - npmci npm prepare - - npmci npm install - tags: - - lossless - - docker - - priv - -trigger: - stage: metadata - script: - - npmci trigger - only: - - tags - tags: - - lossless - - docker - - notpriv - -pages: - stage: metadata - script: - - 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 - allow_failure: true diff --git a/package.json b/package.json index ff6c81c..469629d 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "license": "MIT", "scripts": { "test": "(tstest test/ --web)", - "build": "(tsbuild --web --allowimplicitany)" + "build": "(tsbuild --web --allowimplicitany)", + "buildDocs": "tsdoc" }, "devDependencies": { "@gitzone/tsbuild": "^2.1.66", @@ -48,4 +49,4 @@ "browserslist": [ "last 1 chrome versions" ] -} +} \ No newline at end of file diff --git a/readme.md b/readme.md index 7f79b33..122e2a9 100644 --- a/readme.md +++ b/readme.md @@ -1,27 +1,26 @@ -# @pushrocks/levelcache +# @push.rocks/levelcache a cache that uses memory/disk/s3 as backup ## Availabililty and Links -* [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/levelcache) -* [gitlab.com (source)](https://gitlab.com/pushrocks/levelcache) -* [github.com (source mirror)](https://github.com/pushrocks/levelcache) -* [docs (typedoc)](https://pushrocks.gitlab.io/levelcache/) +* [npmjs.org (npm package)](https://www.npmjs.com/package/@push.rocks/levelcache) +* [gitlab.com (source)](https://gitlab.com/push.rocks/levelcache) +* [github.com (source mirror)](https://github.com/push.rocks/levelcache) +* [docs (typedoc)](https://push.rocks.gitlab.io/levelcache/) ## Status for master Status Category | Status Badge -- | -- -GitLab Pipelines | [![pipeline status](https://gitlab.com/pushrocks/levelcache/badges/master/pipeline.svg)](https://lossless.cloud) -GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/pushrocks/levelcache/badges/master/coverage.svg)](https://lossless.cloud) -npm | [![npm downloads per month](https://badgen.net/npm/dy/@pushrocks/levelcache)](https://lossless.cloud) -Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/pushrocks/levelcache)](https://lossless.cloud) +GitLab Pipelines | [![pipeline status](https://gitlab.com/push.rocks/levelcache/badges/master/pipeline.svg)](https://lossless.cloud) +GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/push.rocks/levelcache/badges/master/coverage.svg)](https://lossless.cloud) +npm | [![npm downloads per month](https://badgen.net/npm/dy/@push.rocks/levelcache)](https://lossless.cloud) +Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/push.rocks/levelcache)](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/@pushrocks/levelcache)](https://lossless.cloud) -PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/levelcache)](https://lossless.cloud) -BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/levelcache)](https://lossless.cloud) -Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud) +PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@push.rocks/levelcache)](https://lossless.cloud) +PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@push.rocks/levelcache)](https://lossless.cloud) +BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@push.rocks/levelcache)](https://lossless.cloud) ## Usage @@ -36,7 +35,6 @@ We are always happy for code contributions. If you are not the code contributing For further information read the linked docs at the top of this readme. -> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) +## 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) - -[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com) diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 4521663..1815e39 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/levelcache', - version: '3.0.5', + version: '3.0.6', description: 'a cache that uses memory/disk/s3 as backup' } diff --git a/ts/levelcache.classes.cacherouter.ts b/ts/levelcache.classes.cacherouter.ts index 494976a..64e23ac 100644 --- a/ts/levelcache.classes.cacherouter.ts +++ b/ts/levelcache.classes.cacherouter.ts @@ -14,7 +14,7 @@ export class CacheRouter { /** * gets the relevant cache to perform a store action on */ - async getCacheForStoreAction (keyArg: string, cacheEntry: CacheEntry): Promise { + async getCacheForStoreAction(keyArg: string, cacheEntry: CacheEntry): Promise { let returnCache: AbstractCache; const mbToBytesMultiplier = 1000 * 1000; const maxMemoryBytes = this.levelCacheRef.options.maxMemoryStorageInMB * mbToBytesMultiplier; @@ -47,7 +47,7 @@ export class CacheRouter { /** * gets the relevant cache to perform a retrieval action on */ - async getCacheForRetrieveAction (keyArg: string): Promise { + async getCacheForRetrieveAction(keyArg: string): Promise { const done = plugins.smartpromise.defer(); const returnCache = this.cacheKeyMap.getByKey(keyArg); if (!returnCache && this.levelCacheRef.options.persistentCache) { diff --git a/ts/levelcache.classes.levelcache.ts b/ts/levelcache.classes.levelcache.ts index 82b8824..228a266 100644 --- a/ts/levelcache.classes.levelcache.ts +++ b/ts/levelcache.classes.levelcache.ts @@ -46,7 +46,7 @@ export class LevelCache extends AbstractCache { maxMemoryStorageInMB: 0.5, maxDiskStorageInMB: 10, maxS3StorageInMB: 50, - ...optionsArg + ...optionsArg, }; this.init(); }