6.2.4 • Published 2 years ago

ozone-type v6.2.4

Weekly downloads
773
License
ISC
Repository
github
Last release
2 years 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

2 years ago

6.0.3

4 years ago

6.0.1

4 years ago

6.0.0

4 years ago

5.9.2

4 years ago

5.9.1

4 years ago

5.9.0

4 years ago

5.8.0

4 years ago

5.7.2

4 years ago

5.7.1

4 years ago

5.7.0

4 years ago

5.5.10

4 years ago

5.5.7

4 years ago

5.5.6

4 years ago

5.5.1

4 years ago

5.4.61

4 years ago

5.4.51

4 years ago

5.4.58

4 years ago

5.4.59

4 years ago

5.4.56

4 years ago

5.4.54

4 years ago

5.4.55

4 years ago

5.4.52

4 years ago

5.4.53

4 years ago

5.4.50

4 years ago

5.4.47

4 years ago

5.4.45

4 years ago

5.4.46

4 years ago

5.4.43

4 years ago

5.4.44

4 years ago

5.4.41

4 years ago

5.4.40

4 years ago

5.4.39

4 years ago

5.4.38

4 years ago

5.4.36

4 years ago

5.4.37

4 years ago

5.4.34

4 years ago

5.4.35

4 years ago

5.4.33

4 years ago

5.4.30

4 years ago

5.4.27

4 years ago

5.4.28

4 years ago

5.4.22

5 years ago

5.4.20

5 years ago

5.4.19

5 years ago

5.4.17

5 years ago

5.4.15

5 years ago

5.4.14

5 years ago

5.4.13

5 years ago

5.4.12

5 years ago

5.4.11

5 years ago

5.4.10

5 years ago

5.4.9

5 years ago

5.4.0

5 years ago

5.3.0

5 years ago

5.2.3

5 years ago

5.2.1

6 years ago

5.2.1-alpha.0

6 years ago

5.2.0

6 years ago

5.2.0-alpha.0

6 years ago

5.1.4

6 years ago

5.1.3

6 years ago

5.1.1

6 years ago

5.0.0

6 years ago

4.4.7

6 years ago

4.4.6

6 years ago

4.4.5

6 years ago

4.4.3

6 years ago

4.4.1

6 years ago

4.4.0

6 years ago

4.3.0

6 years ago

4.14.8

6 years ago

4.2.2

6 years ago

4.2.0

6 years ago

4.1.3-alpha.7

7 years ago

4.1.3-alpha.6

7 years ago

4.1.3-alpha.5

7 years ago

4.1.3-alpha.3

7 years ago

4.1.3-alpha.2

7 years ago

4.1.3-alpha.1

7 years ago

4.1.3-alpha.0

7 years ago

4.1.1

7 years ago

4.1.0

7 years ago

4.0.1

7 years ago

3.4.2

7 years ago

3.4.1

7 years ago

3.3.3

7 years ago

3.2.0

7 years ago

3.2.0-beta9

7 years ago

3.2.0-beta8

7 years ago

3.2.0-beta7

7 years ago

3.2.0-beta6

7 years ago

3.2.0-beta5

7 years ago

3.2.0-beta4

7 years ago

3.2.0-beta3

7 years ago

3.2.0-beta2

7 years ago

3.2.0-beta1

7 years ago

3.0.0

7 years ago