6.2.4 • Published 11 months ago

ozone-type v6.2.4

Weekly downloads
773
License
ISC
Repository
github
Last release
11 months ago

NPM version

ozone-type

Expose Ozone and Flowr types in typescript

Install

$ npm install ozone-type

Utilities

  • 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 ozone

Usage 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 one type

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

Bulck Update all ozone typings

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/*

6.2.4

11 months ago

6.0.3

2 years ago

6.0.1

3 years ago

6.0.0

3 years ago

5.9.2

3 years ago

5.9.1

3 years ago

5.9.0

3 years ago

5.8.0

3 years ago

5.7.2

3 years ago

5.7.1

3 years ago

5.7.0

3 years ago

5.5.10

3 years ago

5.5.7

3 years ago

5.5.6

3 years ago

5.5.1

3 years ago

5.4.61

3 years ago

5.4.51

3 years ago

5.4.58

3 years ago

5.4.59

3 years ago

5.4.56

3 years ago

5.4.54

3 years ago

5.4.55

3 years ago

5.4.52

3 years ago

5.4.53

3 years ago

5.4.50

3 years ago

5.4.47

3 years ago

5.4.45

3 years ago

5.4.46

3 years ago

5.4.43

3 years ago

5.4.44

3 years ago

5.4.41

3 years ago

5.4.40

3 years ago

5.4.39

3 years ago

5.4.38

3 years ago

5.4.36

3 years ago

5.4.37

3 years ago

5.4.34

3 years ago

5.4.35

3 years ago

5.4.33

3 years ago

5.4.30

3 years ago

5.4.27

3 years ago

5.4.28

3 years ago

5.4.22

3 years ago

5.4.20

3 years ago

5.4.19

4 years ago

5.4.17

4 years ago

5.4.15

4 years ago

5.4.14

4 years ago

5.4.13

4 years ago

5.4.12

4 years ago

5.4.11

4 years ago

5.4.10

4 years ago

5.4.9

4 years ago

5.4.0

4 years ago

5.3.0

4 years ago

5.2.3

4 years ago

5.2.1

4 years ago

5.2.1-alpha.0

4 years ago

5.2.0

4 years ago

5.2.0-alpha.0

4 years ago

5.1.4

5 years ago

5.1.3

5 years ago

5.1.1

5 years ago

5.0.0

5 years ago

4.4.7

5 years ago

4.4.6

5 years ago

4.4.5

5 years ago

4.4.3

5 years ago

4.4.1

5 years ago

4.4.0

5 years ago

4.3.0

5 years ago

4.14.8

5 years ago

4.2.2

5 years ago

4.2.0

5 years ago

4.1.3-alpha.7

5 years ago

4.1.3-alpha.6

5 years ago

4.1.3-alpha.5

5 years ago

4.1.3-alpha.3

5 years ago

4.1.3-alpha.2

5 years ago

4.1.3-alpha.1

5 years ago

4.1.3-alpha.0

5 years ago

4.1.1

5 years ago

4.1.0

5 years ago

4.0.1

6 years ago

3.4.2

6 years ago

3.4.1

6 years ago

3.3.3

6 years ago

3.2.0

6 years ago

3.2.0-beta9

6 years ago

3.2.0-beta8

6 years ago

3.2.0-beta7

6 years ago

3.2.0-beta6

6 years ago

3.2.0-beta5

6 years ago

3.2.0-beta4

6 years ago

3.2.0-beta3

6 years ago

3.2.0-beta2

6 years ago

3.2.0-beta1

6 years ago

3.0.0

6 years ago