@modular-component/core 0.1.0 → 0.1.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @modular-component/core
2
2
 
3
+ ## 0.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 6b2a1ab: Fix atStage function for multiple-mode stages: now correctly takes the last occurrence as typings suggest.
8
+
3
9
  ## 0.1.0
4
10
 
5
11
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGvE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAsH3E,eAAO,MAAM,cAAc;uDA7Gb,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,gCAEF,MAAM;;;;;;;6DAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;iEAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;qEAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;yEAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;6EAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;iFAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;qFAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;yFAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;6FAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;kGAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,mCAEF,MAAM;;;;;;;;;;;;;;;;;;;;;;CAgHnC,CAAA;AAEX,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAEvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGvE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AA4H3E,eAAO,MAAM,cAAc;uDAnHb,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,gCAEF,MAAM;;;;;;;6DAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;iEAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;qEAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;yEAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;6EAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;iFAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;qFAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;yFAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;6FAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,kCAEF,MAAM;;;;;;;;;;;;kGAFhC,KAAK,UAAU,EAAE,QAAQ,CAAC,EAAE,mCAEF,MAAM;;;;;;;;;;;;;;;;;;;;;;CAsHnC,CAAA;AAEX,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAEvE"}
package/dist/index.js CHANGED
@@ -38,7 +38,13 @@ function ModularFactory(methods) {
38
38
  // Add a function for rewinding the component up to a certain stage
39
39
  Component.atStage = ((stage) => {
40
40
  // Find the needed stage
41
- const stageIndex = stages.findIndex((record) => record.key === stage);
41
+ const stageIndex = (stages
42
+ // Map all stages to an [index, stage] tuple
43
+ .map((record, index) => [index, record])
44
+ // Remove all tuples not matching our stage
45
+ .filter(([, record]) => record.key === stage)
46
+ // Get the index of the very last one, or -1 if none are remaining
47
+ .pop() || [-1])[0];
42
48
  // If the stage cannot be found, create a brand new, empty component
43
49
  if (stageIndex === -1) {
44
50
  return ModularFactory(methods).build()(displayName);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "Factory",
8
8
  "Test"
9
9
  ],
10
- "version": "0.1.0",
10
+ "version": "0.1.1",
11
11
  "type": "module",
12
12
  "license": "MIT",
13
13
  "publishConfig": {
package/src/index.ts CHANGED
@@ -58,7 +58,13 @@ function ModularFactory<Methods extends MethodRecord>(methods: Methods) {
58
58
  // Add a function for rewinding the component up to a certain stage
59
59
  Component.atStage = ((stage: MethodName) => {
60
60
  // Find the needed stage
61
- const stageIndex = stages.findIndex((record) => record.key === stage)
61
+ const stageIndex = (stages
62
+ // Map all stages to an [index, stage] tuple
63
+ .map((record, index) => [index, record] as const)
64
+ // Remove all tuples not matching our stage
65
+ .filter(([, record]) => record.key === stage)
66
+ // Get the index of the very last one, or -1 if none are remaining
67
+ .pop() || [-1])[0]
62
68
 
63
69
  // If the stage cannot be found, create a brand new, empty component
64
70
  if (stageIndex === -1) {