20 lines
459 B
JavaScript
20 lines
459 B
JavaScript
/**
|
|
* @typedef {{
|
|
* id: string,
|
|
* displayName: string,
|
|
* createdAt: string | null
|
|
* }} Resource
|
|
*/
|
|
|
|
/** @param {Resource} values @returns {Readonly<Resource>} */
|
|
export function createResource(values) {
|
|
if (!values.id || !values.displayName) {
|
|
throw new TypeError("Resource invariants require id and displayName");
|
|
}
|
|
return Object.freeze({
|
|
id: values.id,
|
|
displayName: values.displayName,
|
|
createdAt: values.createdAt,
|
|
});
|
|
}
|