diff --git a/packages/objectsender/src/examples/browser/main.ts b/packages/objectsender/src/examples/browser/main.ts index d4c40dda7..28ce7f31b 100644 --- a/packages/objectsender/src/examples/browser/main.ts +++ b/packages/objectsender/src/examples/browser/main.ts @@ -1,4 +1,4 @@ -import { send, Base, type SendResult } from '../../index' +import { send, Base, type SendResult, Detach } from '../../index' import { times } from '#lodash' interface ExampleAppWindow extends Window { @@ -108,6 +108,11 @@ function generateTestObject() { .fill(0) .map(() => new RandomFoo({ bar: 'baz baz baz' })) ], + detachedWithDecorator: new Collection('Collection of Foo', 'Foo', [ + ...Array(10) + .fill(0) + .map(() => new RandomFoo()) + ]), '@(10)chunkedArr': times(100, () => 42) }) } @@ -118,3 +123,22 @@ class RandomFoo extends Base { this.noise = Math.random().toString(16) } } + +export class Collection extends Base { + @Detach() + elements: T[] + // eslint-disable-next-line camelcase + speckle_type = 'Speckle.Core.Models.Collection' + + constructor( + name: string, + collectionType: string, + elements: T[] = [], + props?: Record + ) { + super(props) + this.name = name + this.collectionType = collectionType + this.elements = elements + } +} diff --git a/packages/objectsender/src/index.ts b/packages/objectsender/src/index.ts index 0d856db93..5b79c5945 100644 --- a/packages/objectsender/src/index.ts +++ b/packages/objectsender/src/index.ts @@ -3,6 +3,8 @@ import { ServerTransport } from './transports/ServerTransport' import { Base } from './utils/Base' export { Base } +export { Detach } from './utils/Decorators' + export type SendParams = { serverUrl?: string projectId: string