@fougere/registry 0.23.0-alpha.0 → 0.24.0-alpha.0

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/README.md CHANGED
@@ -18,7 +18,7 @@ const Generators = new Registry<() => string>('generator');
18
18
 
19
19
  Generators.register('ulid', ulid); // the answer
20
20
  Generators.register('ulid', ulid); // the same answer again: nothing happens
21
- Generators.register('ulid', other); // refused — 'ulid' is answered twice for generator
21
+ Generators.register('ulid', other); // refused — Two generators are named 'ulid'
22
22
  Generators.replace('ulid', other); // said: standing in its place is the point
23
23
  ```
24
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../src/Registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,6FAA6F;AAC7F,MAAM,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAEhE;;;;;;;;GAQG;AACH,qBAAa,QAAQ,CAAC,CAAC;IASnB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IATxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuB;IAE9C,sFAAsF;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAE5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,YACW,KAAK,EAAE,MAAM,EACL,IAAI,CAAC,EAAE,MAAM,YAAA,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAIzC;IAED,oFAAoF;IACpF,MAAM,CAAC,KAAK,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAEnD;IAED,mFAAmF;IACnF,OAAa,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAE,QAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ7F;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAgBlC;IAED,mGAAmG;IACnG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAEpC;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQjC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAEhC;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAStC;IAED,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAE3B;IAED,IAAI,GAAG,IAAI,CAAC,EAAE,CAEb;CACF"}
1
+ {"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../src/Registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,6FAA6F;AAC7F,MAAM,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAEhE;;;;;;;;GAQG;AACH,qBAAa,QAAQ,CAAC,CAAC;IASnB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IATxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuB;IAE9C,sFAAsF;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAE5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,YACW,KAAK,EAAE,MAAM,EACL,IAAI,CAAC,EAAE,MAAM,YAAA,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAIzC;IAED,oFAAoF;IACpF,MAAM,CAAC,KAAK,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAEnD;IAED,mFAAmF;IACnF,OAAa,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAE,QAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ7F;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAelC;IAED,mGAAmG;IACnG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAEpC;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQjC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAEhC;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAStC;IAED,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAE3B;IAED,IAAI,GAAG,IAAI,CAAC,EAAE,CAEb;CACF"}
package/dist/Registry.js CHANGED
@@ -42,8 +42,7 @@ export class Registry {
42
42
  if (held !== undefined && held !== value) {
43
43
  const replaced = Registry.replaced;
44
44
  if (!replaced) {
45
- throw new RegistryError(`'${name}' is answered twice for ${this.label} — a second answer would silently replace the first. `
46
- + 'Name one of them differently, or call replace() when standing in its place is the point.');
45
+ throw new RegistryError(`Two ${this.label}s are named '${name}'. Rename one, or use replace() to replace the first.`);
47
46
  }
48
47
  replaced(this.label, name);
49
48
  }
@@ -56,7 +55,7 @@ export class Registry {
56
55
  }
57
56
  replace(name, value) {
58
57
  if (!this.held.has(name)) {
59
- throw new RegistryError(`'${name}' answers nothing for ${this.label} yet, so nothing can be replaced — use register().`);
58
+ throw new RegistryError(`No ${this.label} is named '${name}', so it cannot be replaced. Use register().`);
60
59
  }
61
60
  this.held.set(name, value);
62
61
  return value;
@@ -68,8 +67,8 @@ export class Registry {
68
67
  const found = this.find(name);
69
68
  if (found !== undefined)
70
69
  return found;
71
- throw new RegistryError(`${path ? `${path}: ` : ''}Unknown ${this.label} '${name}'${this.hint ? ` — ${this.hint}` : ''}. `
72
- + `This process answers ${this.names.join(', ') || 'nothing yet'}.`);
70
+ throw new RegistryError(`${path ? `${path}: ` : ''}Unknown ${this.label} '${name}'. Known: ${this.names.join(', ') || 'none'}.`
71
+ + `${this.hint ? ` To add one, ${this.hint}.` : ''}`);
73
72
  }
74
73
  get names() {
75
74
  return [...this.held.keys()];
@@ -1 +1 @@
1
- {"version":3,"file":"Registry.js","sourceRoot":"","sources":["../src/Registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC;;;;;;;;GAQG;AACH,MAAM,OAAO,QAAQ;IASR,KAAK;IACG,IAAI;IATf,MAAM,CAAC,QAAQ,CAAuB;IAE9C,sFAAsF;IAC9E,MAAM,CAAU,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE3C,IAAI,CAAiB;IAEtC,YACW,KAAa,EACL,IAAa,EAC9B,OAAwC;qBAF/B,KAAK;oBACG,IAAI;QAGrB,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,oFAAoF;IACpF,MAAM,CAAC,KAAK;QACV,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,mFAAmF;IACnF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAI,MAAwB,EAAE,QAAQ,GAAa,GAAG,EAAE,GAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAChC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,EAAE,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,KAAQ;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,aAAa,CACrB,IAAI,IAAI,2BAA2B,IAAI,CAAC,KAAK,uDAAuD;sBAChG,0FAA0F,CAC/F,CAAC;YACJ,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mGAAmG;IACnG,IAAI,CAAC,IAAY,EAAE,KAAQ;QACzB,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,KAAQ;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CAAC,IAAI,IAAI,yBAAyB,IAAI,CAAC,KAAK,oDAAoD,CAAC,CAAC;QAC3H,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAa;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,IAAI,aAAa,CACrB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;cAC9F,wBAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,CACtE,CAAC;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"Registry.js","sourceRoot":"","sources":["../src/Registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fougere/registry",
3
- "version": "0.23.0-alpha.0",
3
+ "version": "0.24.0-alpha.0",
4
4
  "description": "Fougere's registry: one answer per name, refused when a second one arrives, and a reload that says it replaces. Zero dependencies.",
5
5
  "keywords": [
6
6
  "fougere",
package/src/Registry.ts CHANGED
@@ -52,8 +52,7 @@ export class Registry<T> {
52
52
  const replaced = Registry.replaced;
53
53
  if (!replaced) {
54
54
  throw new RegistryError(
55
- `'${name}' is answered twice for ${this.label} — a second answer would silently replace the first. `
56
- + 'Name one of them differently, or call replace() when standing in its place is the point.',
55
+ `Two ${this.label}s are named '${name}'. Rename one, or use replace() to replace the first.`,
57
56
  );
58
57
  }
59
58
  replaced(this.label, name);
@@ -71,7 +70,7 @@ export class Registry<T> {
71
70
 
72
71
  replace(name: string, value: T): T {
73
72
  if (!this.held.has(name)) {
74
- throw new RegistryError(`'${name}' answers nothing for ${this.label} yet, so nothing can be replaced — use register().`);
73
+ throw new RegistryError(`No ${this.label} is named '${name}', so it cannot be replaced. Use register().`);
75
74
  }
76
75
 
77
76
  this.held.set(name, value);
@@ -89,8 +88,8 @@ export class Registry<T> {
89
88
  if (found !== undefined) return found;
90
89
 
91
90
  throw new RegistryError(
92
- `${path ? `${path}: ` : ''}Unknown ${this.label} '${name}'${this.hint ? ` — ${this.hint}` : ''}. `
93
- + `This process answers ${this.names.join(', ') || 'nothing yet'}.`,
91
+ `${path ? `${path}: ` : ''}Unknown ${this.label} '${name}'. Known: ${this.names.join(', ') || 'none'}.`
92
+ + `${this.hint ? ` To add one, ${this.hint}.` : ''}`,
94
93
  );
95
94
  }
96
95