fix(core): update

This commit is contained in:
Philipp Kunz 2023-06-25 01:27:09 +02:00
parent 94854638dd
commit db38a1ef85
9 changed files with 131 additions and 30 deletions

View File

@ -0,0 +1,104 @@
name: CI Pipeline
on: push
env:
IMAGE: registry.gitlab.com/hosttoday/ht-docker-node:npmci
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
- name: Audit development dependencies
run: |
npmci command npm config set registry https://registry.npmjs.org
npmci command pnpm audit --audit-level=high --dev
test:
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
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: 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: Code quality
run: |
npmci command npm install -g typescript
npmci npm prepare
npmci npm install
- name: Trigger
run: npmci trigger
- name: Build docs and upload artifacts
run: |
npmci node install stable
npmci npm install
npmci command npm run buildDocs
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: public
path: public
retention-days: 7

View File

@ -64,7 +64,7 @@ testBuild:
script: script:
- npmci node install stable - npmci node install stable
- npmci npm install - npmci npm install
- npmci command npm run build - npmci npm build
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- docker - docker

View File

@ -21,7 +21,6 @@ Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](htt
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/smartdata)](https://lossless.cloud) PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/smartdata)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/smartdata)](https://lossless.cloud) PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/smartdata)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/smartdata)](https://lossless.cloud) BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/smartdata)](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)
## Usage ## Usage
@ -150,7 +149,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. 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) | 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)

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@pushrocks/smartdata', name: '@pushrocks/smartdata',
version: '5.0.13', version: '5.0.14',
description: 'do more with data' description: 'do more with data'
} }

View File

@ -6,9 +6,7 @@ export * from './smartdata.classes.cursor.js';
import * as convenience from './smartadata.convenience.js'; import * as convenience from './smartadata.convenience.js';
export { export { convenience };
convenience
}
// to be removed with the next breaking update // to be removed with the next breaking update
import type * as plugins from './smartdata.plugins.js'; import type * as plugins from './smartdata.plugins.js';

View File

@ -2,4 +2,4 @@ import * as plugins from './smartdata.plugins.js';
export const getNewUniqueId = async (prefixArg?: string) => { export const getNewUniqueId = async (prefixArg?: string) => {
return plugins.smartunique.uni(prefixArg); return plugins.smartunique.uni(prefixArg);
} };

View File

@ -18,13 +18,13 @@ class DistributedClass extends SmartDataDbDoc<DistributedClass, DistributedClass
/** /**
* used to store request * used to store request
*/ */
taskRequests: plugins.taskbuffer.distributedCoordination.IDistributedTaskRequest[], taskRequests: plugins.taskbuffer.distributedCoordination.IDistributedTaskRequest[];
/** /**
* only used by the leader to convey consultation results * only used by the leader to convey consultation results
*/ */
taskRequestResults: plugins.taskbuffer.distributedCoordination.IDistributedTaskRequestResult[]; taskRequestResults: plugins.taskbuffer.distributedCoordination.IDistributedTaskRequestResult[];
} };
} }
/** /**
@ -83,7 +83,7 @@ export class SmartdataDistributedCoordinator extends plugins.taskbuffer.distribu
lastUpdated: Date.now(), lastUpdated: Date.now(),
status: 'initializing', status: 'initializing',
taskRequests: [], taskRequests: [],
taskRequestResults: [] taskRequestResults: [],
}; };
await this.ownInstance.save(); await this.ownInstance.save();
}); });
@ -153,19 +153,17 @@ export class SmartdataDistributedCoordinator extends plugins.taskbuffer.distribu
/** /**
* this function is started once per unique job request * this function is started once per unique job request
*/ */
const startResultTimer = async () => { const startResultTimer = async () => {};
}
watcher.changeSubject.subscribe({ watcher.changeSubject.subscribe({
next: async (distributedDoc) => { next: async (distributedDoc) => {
distributedDoc distributedDoc;
} },
}) });
while (this.ownInstance.data.status !== 'stopped') { while (this.ownInstance.data.status !== 'stopped') {
await plugins.smartdelay.delayFor(1000); await plugins.smartdelay.delayFor(1000);
} }
}; }
// abstract implemented methods // abstract implemented methods
public async fireDistributedTaskRequest( public async fireDistributedTaskRequest(
@ -183,9 +181,11 @@ export class SmartdataDistributedCoordinator extends plugins.taskbuffer.distribu
infoBasisArg: plugins.taskbuffer.distributedCoordination.IDistributedTaskRequest infoBasisArg: plugins.taskbuffer.distributedCoordination.IDistributedTaskRequest
): Promise<void> { ): Promise<void> {
await this.asyncExecutionStack.getExclusiveExecutionSlot(async () => { await this.asyncExecutionStack.getExclusiveExecutionSlot(async () => {
const existingInfoBasis = this.ownInstance.data.taskRequests.find(infoBasisItem => { const existingInfoBasis = this.ownInstance.data.taskRequests.find((infoBasisItem) => {
return infoBasisItem.taskName === infoBasisArg.taskName return (
&& infoBasisItem.taskExecutionTime === infoBasisArg.taskExecutionTime; infoBasisItem.taskName === infoBasisArg.taskName &&
infoBasisItem.taskExecutionTime === infoBasisArg.taskExecutionTime
);
}); });
Object.assign(existingInfoBasis, infoBasisArg); Object.assign(existingInfoBasis, infoBasisArg);
await this.ownInstance.save(); await this.ownInstance.save();
@ -194,8 +194,8 @@ export class SmartdataDistributedCoordinator extends plugins.taskbuffer.distribu
const indexToRemove = this.ownInstance.data.taskRequests.indexOf(existingInfoBasis); const indexToRemove = this.ownInstance.data.taskRequests.indexOf(existingInfoBasis);
this.ownInstance.data.taskRequests.splice(indexToRemove, indexToRemove); this.ownInstance.data.taskRequests.splice(indexToRemove, indexToRemove);
await this.ownInstance.save(); await this.ownInstance.save();
}) });
}) });
}); });
} }
} }

View File

@ -101,8 +101,9 @@ export class EasyStore<T> {
} }
public async cleanUpEphermal() { public async cleanUpEphermal() {
while(await this.smartdataDbRef.statusConnectedDeferred.promise && this.smartdataDbRef.status === 'connected') { while (
(await this.smartdataDbRef.statusConnectedDeferred.promise) &&
} this.smartdataDbRef.status === 'connected'
) {}
} }
} }