Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
ozone-type
Advanced tools
Expose Ozone and Flowr types in typescript
$ npm install ozone-type
Item
: base type for ozone items.OzoneType
: decorator for class that extend Item.FromOzone<T extends Item>
: template type for Item received from ozone.function toPatch<T extends Item>(item: FromOzone<T>): Patch<T>
: transform Item received from ozone to item that can be saved.function toPatchWithUndefinedAsNull<T extends Item>(item: FromOzone<T>): Patch<T>
: same as function toPatch but it set filed explicitly undefined to null so that they can be erase on ozoneUsage example
import { toPatch, Patch, UUID, FromOzone } from 'ozone-type'
declare function getMyNewTypeFromOzone(id: UUID): FromOzone<MyNewType>
declare function saveMyNewTypeToOzone(data: Patch<MyNewType>): FromOzone<MyNewType>
const myData = getMyNewTypeFromOzone('myID')
const myDataToUpdate = toPatch(myData)
myDataToUpdate.aLocalizedAttr = {
fr: 'bonjour',
en: 'hello'
}
saveMyNewTypeToOzone(myDataToUpdate)
Add a file in ozone/model
// import base type
import { OzoneType, Item, UUID } from 'ozone-type'
/**
* MyNewType is a new ozone object
*/
OzoneType('my.new.type') // decorate to set type by default
export class MyNewType extends Item { // All the dynamic typed ozone object extend Item
anAttribute?: UUID
aLocalizedAttr?: {[key: string]: string}
/**
* Recopy constructor
* @param src
*/
constructor(src: MyNewType) {
super(src)
this.anAttribute = src.anAttribute
this.aLocalizedAttr = src.aLocalizedAttr
}
// Use static method for helpers. So that new is not mandatory.
static getAttrIn(src: MyNewType, language: string): string | undefined {
src.aLocalizedAttr = src.aLocalizedAttr || {}
return src.aLocalizedAttr[language]
}
}
Then add export statment in ozone/model/models.ts
Generate Ozone Item classes using oz. For example:
oz -u taktik -s https://test.flowr.cloud/ozone -p <password> generate --package "" --target typescript -o ./ozone-components/packages/ozone-helper/ozone-type/ozone/model
Then commit git add ozone/model/*
FAQs
ozone type declaration package
The npm package ozone-type receives a total of 6,339 weekly downloads. As such, ozone-type popularity was classified as popular.
We found that ozone-type demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.