// Copyright 2016-2021, Pulumi Corporation. All rights reserved. import * as pulumi from "@pulumi/pulumi"; import * as dynamic from "@pulumi/pulumi/dynamic"; import { Component } from "./component"; let currentID = 0; class Resource extends dynamic.Resource { constructor(name: string, opts?: pulumi.CustomResourceOptions) { const provider = { create: async (inputs: any) => ({ id: (currentID++).toString(), outs: undefined, }), }; super(provider, name, {}, opts); } } const resource = new Resource("resource"); const component = new Component("component", { message: resource.id.apply(v => `message ${v}`), nested: { value: resource.id.apply(v => `nested.value ${v}`), } });