stacktape 3.0.4 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +59 -15
- package/index.js.map +3 -3
- package/package.json +1 -1
- package/types.d.ts +4 -0
package/index.js
CHANGED
|
@@ -2636,14 +2636,53 @@ var getPropertiesSymbol = Symbol.for("stacktape:getProperties");
|
|
|
2636
2636
|
var getOverridesSymbol = Symbol.for("stacktape:getOverrides");
|
|
2637
2637
|
var getTransformsSymbol = Symbol.for("stacktape:getTransforms");
|
|
2638
2638
|
var setResourceNameSymbol = Symbol.for("stacktape:setResourceName");
|
|
2639
|
-
var
|
|
2639
|
+
var resourceParamRefSymbol = Symbol.for("stacktape:isResourceParamRef");
|
|
2640
|
+
var baseTypePropertiesSymbol = Symbol.for("stacktape:isBaseTypeProperties");
|
|
2641
|
+
var isBaseResource = /* @__PURE__ */ __name((value) => value !== null && typeof value === "object" && setResourceNameSymbol in value, "isBaseResource");
|
|
2642
|
+
var isBaseTypeProperties = /* @__PURE__ */ __name((value) => value !== null && typeof value === "object" && baseTypePropertiesSymbol in value, "isBaseTypeProperties");
|
|
2643
|
+
var isResourceParamReference = /* @__PURE__ */ __name((value) => value !== null && typeof value === "object" && resourceParamRefSymbol in value, "isResourceParamReference");
|
|
2644
|
+
var deferredNameSymbol = Symbol.for("stacktape:isDeferredResourceName");
|
|
2645
|
+
var isDeferredResourceName = /* @__PURE__ */ __name((value) => value !== null && typeof value === "object" && deferredNameSymbol in value, "isDeferredResourceName");
|
|
2646
|
+
var _a;
|
|
2647
|
+
_a = deferredNameSymbol;
|
|
2648
|
+
var DeferredResourceName = class {
|
|
2649
|
+
constructor(resource) {
|
|
2650
|
+
this[_a] = true;
|
|
2651
|
+
this.__resource = resource;
|
|
2652
|
+
}
|
|
2640
2653
|
static {
|
|
2641
|
-
__name(this, "
|
|
2654
|
+
__name(this, "DeferredResourceName");
|
|
2655
|
+
}
|
|
2656
|
+
resolve() {
|
|
2657
|
+
const name = this.__resource._resourceName;
|
|
2658
|
+
if (name === void 0) {
|
|
2659
|
+
throw new Error(
|
|
2660
|
+
"Resource name not set. Make sure to add the resource to the resources object in your config. The resource name is automatically derived from the object key."
|
|
2661
|
+
);
|
|
2662
|
+
}
|
|
2663
|
+
return name;
|
|
2664
|
+
}
|
|
2665
|
+
toString() {
|
|
2666
|
+
return this.resolve();
|
|
2667
|
+
}
|
|
2668
|
+
toJSON() {
|
|
2669
|
+
return this.resolve();
|
|
2670
|
+
}
|
|
2671
|
+
valueOf() {
|
|
2672
|
+
return this.resolve();
|
|
2642
2673
|
}
|
|
2674
|
+
};
|
|
2675
|
+
var _a2;
|
|
2676
|
+
_a2 = resourceParamRefSymbol;
|
|
2677
|
+
var ResourceParamReference = class {
|
|
2643
2678
|
constructor(resource, param) {
|
|
2679
|
+
this[_a2] = true;
|
|
2644
2680
|
this.__resource = resource;
|
|
2645
2681
|
this.__param = param;
|
|
2646
2682
|
}
|
|
2683
|
+
static {
|
|
2684
|
+
__name(this, "ResourceParamReference");
|
|
2685
|
+
}
|
|
2647
2686
|
toString() {
|
|
2648
2687
|
return `$ResourceParam('${this.__resource.resourceName}', '${this.__param}')`;
|
|
2649
2688
|
}
|
|
@@ -2655,14 +2694,17 @@ var ResourceParamReference = class {
|
|
|
2655
2694
|
return this.toString();
|
|
2656
2695
|
}
|
|
2657
2696
|
};
|
|
2697
|
+
var _a3;
|
|
2698
|
+
_a3 = baseTypePropertiesSymbol;
|
|
2658
2699
|
var BaseTypeProperties = class {
|
|
2659
|
-
static {
|
|
2660
|
-
__name(this, "BaseTypeProperties");
|
|
2661
|
-
}
|
|
2662
2700
|
constructor(type, properties) {
|
|
2701
|
+
this[_a3] = true;
|
|
2663
2702
|
this.type = type;
|
|
2664
2703
|
this.properties = properties;
|
|
2665
2704
|
}
|
|
2705
|
+
static {
|
|
2706
|
+
__name(this, "BaseTypeProperties");
|
|
2707
|
+
}
|
|
2666
2708
|
};
|
|
2667
2709
|
var BaseResource = class {
|
|
2668
2710
|
static {
|
|
@@ -2704,11 +2746,10 @@ var BaseResource = class {
|
|
|
2704
2746
|
}
|
|
2705
2747
|
}
|
|
2706
2748
|
// Public getter for resource name (used for referencing resources)
|
|
2749
|
+
// Returns a deferred reference when name isn't set yet, which resolves during transformation
|
|
2707
2750
|
get resourceName() {
|
|
2708
2751
|
if (this._resourceName === void 0) {
|
|
2709
|
-
|
|
2710
|
-
"Resource name not set. Make sure to add the resource to the resources object in your config. The resource name is automatically derived from the object key."
|
|
2711
|
-
);
|
|
2752
|
+
return new DeferredResourceName(this);
|
|
2712
2753
|
}
|
|
2713
2754
|
return this._resourceName;
|
|
2714
2755
|
}
|
|
@@ -2835,7 +2876,7 @@ var transformConfigWithResources = /* @__PURE__ */ __name((config) => {
|
|
|
2835
2876
|
if (config.resources && typeof config.resources === "object") {
|
|
2836
2877
|
for (const key in config.resources) {
|
|
2837
2878
|
const resource = config.resources[key];
|
|
2838
|
-
if (resource
|
|
2879
|
+
if (isBaseResource(resource)) {
|
|
2839
2880
|
resource[setResourceNameSymbol](key);
|
|
2840
2881
|
}
|
|
2841
2882
|
}
|
|
@@ -2868,7 +2909,7 @@ var transformResourceDefinitions = /* @__PURE__ */ __name((resources) => {
|
|
|
2868
2909
|
const result = {};
|
|
2869
2910
|
for (const key in resources) {
|
|
2870
2911
|
const resource = resources[key];
|
|
2871
|
-
if (resource
|
|
2912
|
+
if (isBaseResource(resource)) {
|
|
2872
2913
|
const type = resource[getTypeSymbol]();
|
|
2873
2914
|
const properties = resource[getPropertiesSymbol]();
|
|
2874
2915
|
const overrides = resource[getOverridesSymbol]();
|
|
@@ -2892,7 +2933,7 @@ var transformScriptDefinitions = /* @__PURE__ */ __name((scripts) => {
|
|
|
2892
2933
|
const result = {};
|
|
2893
2934
|
for (const key in scripts) {
|
|
2894
2935
|
const script = scripts[key];
|
|
2895
|
-
if (script
|
|
2936
|
+
if (isBaseTypeProperties(script)) {
|
|
2896
2937
|
result[key] = {
|
|
2897
2938
|
type: script.type,
|
|
2898
2939
|
properties: transformValue(script.properties)
|
|
@@ -2907,13 +2948,16 @@ var transformValue = /* @__PURE__ */ __name((value) => {
|
|
|
2907
2948
|
if (value === null || value === void 0) {
|
|
2908
2949
|
return value;
|
|
2909
2950
|
}
|
|
2910
|
-
if (value
|
|
2951
|
+
if (isDeferredResourceName(value)) {
|
|
2952
|
+
return value.resolve();
|
|
2953
|
+
}
|
|
2954
|
+
if (isResourceParamReference(value)) {
|
|
2911
2955
|
return value.toString();
|
|
2912
2956
|
}
|
|
2913
|
-
if (value
|
|
2957
|
+
if (isBaseResource(value)) {
|
|
2914
2958
|
return value.resourceName;
|
|
2915
2959
|
}
|
|
2916
|
-
if (value
|
|
2960
|
+
if (isBaseTypeProperties(value)) {
|
|
2917
2961
|
return {
|
|
2918
2962
|
type: value.type,
|
|
2919
2963
|
properties: transformValue(value.properties)
|
|
@@ -2921,7 +2965,7 @@ var transformValue = /* @__PURE__ */ __name((value) => {
|
|
|
2921
2965
|
}
|
|
2922
2966
|
if (Array.isArray(value)) {
|
|
2923
2967
|
return value.map((item) => {
|
|
2924
|
-
if (item
|
|
2968
|
+
if (isBaseResource(item)) {
|
|
2925
2969
|
return item.resourceName;
|
|
2926
2970
|
}
|
|
2927
2971
|
return transformValue(item);
|