1
0
mirror of https://github.com/oceanprotocol-archive/squid-js.git synced 2024-02-02 15:31:51 +01:00
squid-js/integration/utils/ddo-metadata-generator.ts
2020-01-29 14:38:44 +01:00

95 lines
2.8 KiB
TypeScript

import { MetaData, MetaDataAlgorithm } from '../../src' // @oceanprotocol/squid
import { ServiceType } from '../../src/ddo/Service'
import ddoExample from '../../test/__fixtures__/ddo.json'
const metadata: Partial<MetaData> = {
main: {
name: undefined,
type: undefined,
dateCreated: '2012-10-10T17:00:00Z',
datePublished: '2012-10-10T17:00:00Z',
author: 'Met Office',
license: 'CC-BY',
price: '21' + '0'.repeat(18),
files: [
{
index: 0,
contentType: 'application/json',
url:
'https://raw.githubusercontent.com/oceanprotocol/squid-js/master/package.json'
},
{
index: 1,
contentType: 'text/plain',
url:
'https://raw.githubusercontent.com/oceanprotocol/squid-js/master/README.md'
}
]
},
additionalInformation: {
description: 'Weather information of UK including temperature and humidity',
copyrightHolder: 'Met Office',
workExample: '423432fsd,51.509865,-0.118092,2011-01-01T10:55:11+00:00,7.2,68',
links: [
{
name: 'Sample of Asset Data',
type: 'sample',
url: 'https://foo.com/sample.csv'
},
{
name: 'Data Format Definition',
type: 'format',
url: 'https://foo.com/sample.csv'
}
],
inLanguage: 'en',
categories: ['Economy', 'Data Science'],
tags: ['weather', 'uk', '2011', 'temperature', 'humidity']
}
}
const algorithmMeta: MetaDataAlgorithm = {
language: 'scala',
format: 'docker-image',
version: '0.1',
container: {
entrypoint: 'ocean-entrypoint.sh',
image: 'node',
tag: '10'
}
}
export const generateMetadata = (
name: string,
type?: 'dataset' | 'algorithm',
price?: number
): Partial<MetaData> => ({
...metadata,
main: {
...metadata.main,
name,
type: type || 'dataset',
price: (price || 21) + '0'.repeat(18),
algorithm: type === 'algorithm' ? algorithmMeta : undefined
},
additionalInformation: {
...metadata.additionalInformation
}
})
export const getMetadata = (price?: number, type?: 'dataset' | 'algorithm') =>
generateMetadata('TestAsset', type, price)
export const getComputeServiceExample = () => {
const computeService = ddoExample.service.find(service => service.type === 'compute')
const { index, serviceEndpoint, templateId, attributes } = computeService
return {
type: 'compute' as ServiceType,
index,
serviceEndpoint,
templateId,
attributes
}
}