mirror of
https://github.com/generativefm/generative.fm.git
synced 2026-01-09 14:48:14 -05:00
28 lines
912 B
JavaScript
28 lines
912 B
JavaScript
'use strict';
|
|
|
|
const DEFAULT_VISUALIZATION_TYPE = 'squareCut';
|
|
|
|
const pieceLoader = source => {
|
|
const pieceManifest = JSON.parse(source);
|
|
const output = `import image from '${pieceManifest.image}';
|
|
import activate from '${pieceManifest.makePiece}';
|
|
export default {
|
|
image,
|
|
activate,
|
|
title: '${pieceManifest.title}',
|
|
id: '${pieceManifest.artistId}-${pieceManifest.id}',
|
|
artist: '${pieceManifest.artistId}',
|
|
isRecordable: ${typeof pieceManifest.isRecordable !== 'boolean' ||
|
|
pieceManifest.isRecordable},
|
|
tags: [${pieceManifest.tags.map(tag => `"${tag}"`)}],
|
|
releaseDate: new Date('${pieceManifest.releaseDate}'),
|
|
visualizationType: '${pieceManifest.visualizationType ||
|
|
DEFAULT_VISUALIZATION_TYPE}',
|
|
sampleNames: [${pieceManifest.sampleNames.map(name => `"${name}"`)}]
|
|
}`;
|
|
|
|
return output;
|
|
};
|
|
|
|
module.exports = pieceLoader;
|