@effect/platform 0.43.6 → 0.43.7

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.
@@ -62,21 +62,18 @@ const get = u => {
62
62
  * @category schema
63
63
  */
64
64
  exports.get = get;
65
- const schema = exports.schema = /*#__PURE__*/(0, _Function.dual)(2, (self, f) => Schema.transform(self, schemaFromSelf(Schema.to(self)), input => ({
66
- ...input,
67
- [symbol]() {
65
+ const schema = exports.schema = /*#__PURE__*/(0, _Function.dual)(2, (self, f) => {
66
+ const fn = function () {
68
67
  return f(this);
69
- }
70
- }), _Function.identity));
68
+ };
69
+ return Schema.transform(self, schemaFromSelf(Schema.to(self)), input => addProxy(input, fn), _Function.identity);
70
+ });
71
71
  const schemaParse = parse => (u, options, ast) => {
72
72
  if (!isTransferable(u)) {
73
73
  return ParseResult.fail(ParseResult.type(ast, u));
74
74
  }
75
- const proto = {
76
- __proto__: Object.getPrototypeOf(u),
77
- [symbol]: u[symbol]
78
- };
79
- return ParseResult.map(parse(u, options), a => Object.setPrototypeOf(a, proto));
75
+ const f = u[symbol];
76
+ return ParseResult.map(parse(u, options), a => addProxy(a, f));
80
77
  };
81
78
  /**
82
79
  * @since 1.0.0
@@ -88,4 +85,20 @@ const schemaFromSelf = item => {
88
85
  });
89
86
  };
90
87
  exports.schemaFromSelf = schemaFromSelf;
88
+ const addProxy = (self, f) => {
89
+ return new Proxy(self, {
90
+ get(target, key) {
91
+ if (key === symbol) {
92
+ return f;
93
+ }
94
+ return target[key];
95
+ },
96
+ has(target, p) {
97
+ if (p === symbol) {
98
+ return true;
99
+ }
100
+ return p in target;
101
+ }
102
+ });
103
+ };
91
104
  //# sourceMappingURL=Transferable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transferable.js","names":["ParseResult","_interopRequireWildcard","require","Schema","_Function","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","symbol","exports","Symbol","for","isTransferable","schema","dual","self","f","transform","schemaFromSelf","to","input","identity","schemaParse","parse","options","ast","fail","type","proto","getPrototypeOf","map","setPrototypeOf","item","declare","decodeUnknown","encodeUnknown","identifier"],"sources":["../../src/Transferable.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"Transferable.js","names":["ParseResult","_interopRequireWildcard","require","Schema","_Function","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","symbol","exports","Symbol","for","isTransferable","schema","dual","self","f","fn","transform","schemaFromSelf","to","input","addProxy","identity","schemaParse","parse","options","ast","fail","type","map","item","declare","decodeUnknown","encodeUnknown","identifier","Proxy","target","key","p"],"sources":["../../src/Transferable.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -29,12 +29,12 @@ export declare const get: (u: unknown) => ReadonlyArray<globalThis.Transferable>
29
29
  * @category schema
30
30
  */
31
31
  export declare const schema: {
32
- <A>(f: (_: A) => ReadonlyArray<globalThis.Transferable>): <R, I>(self: Schema.Schema<R, I, A>) => Schema.Schema<R, I, A>;
33
- <R, I, A>(self: Schema.Schema<R, I, A>, f: (_: A) => ReadonlyArray<globalThis.Transferable>): Schema.Schema<R, I, A>;
32
+ <A extends object>(f: (_: A) => ReadonlyArray<globalThis.Transferable>): <R, I>(self: Schema.Schema<R, I, A>) => Schema.Schema<R, I, A>;
33
+ <R, I, A extends object>(self: Schema.Schema<R, I, A>, f: (_: A) => ReadonlyArray<globalThis.Transferable>): Schema.Schema<R, I, A>;
34
34
  };
35
35
  /**
36
36
  * @since 1.0.0
37
37
  * @category schema
38
38
  */
39
- export declare const schemaFromSelf: <R, I, A>(item: Schema.Schema<R, I, A>) => Schema.Schema<R, I, A>;
39
+ export declare const schemaFromSelf: <R, I extends object, A extends object>(item: Schema.Schema<R, I, A>) => Schema.Schema<R, I, A>;
40
40
  //# sourceMappingURL=Transferable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transferable.d.ts","sourceRoot":"","sources":["../../src/Transferable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAG/C;;;GAGG;AACH,eAAO,MAAM,MAAM,eAA8C,CAAA;AAEjE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;CAChE;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,MAAO,OAAO,sBAA0E,CAAA;AAEnH;;;GAGG;AACH,eAAO,MAAM,GAAG,MAAO,OAAO,KAAG,cAAc,uBAAuB,CAKrE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,CAAC,EACA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,GAClD,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACjE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAwBlH,CAAA;AAcJ;;;GAGG;AACH,eAAO,MAAM,cAAc,mEAS1B,CAAA"}
1
+ {"version":3,"file":"Transferable.d.ts","sourceRoot":"","sources":["../../src/Transferable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAG/C;;;GAGG;AACH,eAAO,MAAM,MAAM,eAA8C,CAAA;AAEjE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;CAChE;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,MAAO,OAAO,sBAA0E,CAAA;AAEnH;;;GAGG;AACH,eAAO,MAAM,GAAG,MAAO,OAAO,KAAG,cAAc,uBAAuB,CAKrE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,CAAC,SAAS,MAAM,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,GAClD,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACjE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,EACrB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,GAClD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAczB,CAAA;AAYF;;;GAGG;AACH,eAAO,MAAM,cAAc,iGAS1B,CAAA"}
@@ -28,21 +28,18 @@ export const get = u => {
28
28
  * @since 1.0.0
29
29
  * @category schema
30
30
  */
31
- export const schema = /*#__PURE__*/dual(2, (self, f) => Schema.transform(self, schemaFromSelf(Schema.to(self)), input => ({
32
- ...input,
33
- [symbol]() {
31
+ export const schema = /*#__PURE__*/dual(2, (self, f) => {
32
+ const fn = function () {
34
33
  return f(this);
35
- }
36
- }), identity));
34
+ };
35
+ return Schema.transform(self, schemaFromSelf(Schema.to(self)), input => addProxy(input, fn), identity);
36
+ });
37
37
  const schemaParse = parse => (u, options, ast) => {
38
38
  if (!isTransferable(u)) {
39
39
  return ParseResult.fail(ParseResult.type(ast, u));
40
40
  }
41
- const proto = {
42
- __proto__: Object.getPrototypeOf(u),
43
- [symbol]: u[symbol]
44
- };
45
- return ParseResult.map(parse(u, options), a => Object.setPrototypeOf(a, proto));
41
+ const f = u[symbol];
42
+ return ParseResult.map(parse(u, options), a => addProxy(a, f));
46
43
  };
47
44
  /**
48
45
  * @since 1.0.0
@@ -53,4 +50,20 @@ export const schemaFromSelf = item => {
53
50
  identifier: "Transferable"
54
51
  });
55
52
  };
53
+ const addProxy = (self, f) => {
54
+ return new Proxy(self, {
55
+ get(target, key) {
56
+ if (key === symbol) {
57
+ return f;
58
+ }
59
+ return target[key];
60
+ },
61
+ has(target, p) {
62
+ if (p === symbol) {
63
+ return true;
64
+ }
65
+ return p in target;
66
+ }
67
+ });
68
+ };
56
69
  //# sourceMappingURL=Transferable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transferable.js","names":["ParseResult","Schema","dual","identity","symbol","Symbol","for","isTransferable","u","get","schema","self","f","transform","schemaFromSelf","to","input","schemaParse","parse","options","ast","fail","type","proto","__proto__","Object","getPrototypeOf","map","a","setPrototypeOf","item","declare","decodeUnknown","encodeUnknown","identifier"],"sources":["../../src/Transferable.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA,OAAO,KAAKA,WAAW,MAAM,4BAA4B;AACzD,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAC/C,SAASC,IAAI,EAAEC,QAAQ,QAAQ,iBAAiB;AAEhD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,+BAA+B,CAAC;AAUjE;;;;AAIA,OAAO,MAAMC,cAAc,GAAIC,CAAU,IAAwB,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIJ,MAAM,IAAII,CAAC;AAEnH;;;;AAIA,OAAO,MAAMC,GAAG,GAAID,CAAU,IAA4C;EACxE,IAAID,cAAc,CAACC,CAAC,CAAC,EAAE;IACrB,OAAOA,CAAC,CAACJ,MAAM,CAAC,EAAE;EACpB;EACA,OAAO,EAAE;AACX,CAAC;AAED;;;;AAIA,OAAO,MAAMM,MAAM,gBAKfR,IAAI,CAQN,CAAC,EAAE,CACHS,IAA4B,EAC5BC,CAAmD,KAEnDX,MAAM,CAACY,SAAS,CACdF,IAAI,EACJG,cAAc,CAACb,MAAM,CAACc,EAAE,CAACJ,IAAI,CAAC,CAAC,EAC9BK,KAAK,KACH;EACC,GAAGA,KAAK;EACR,CAACZ,MAAM,IAAC;IACN,OAAOQ,CAAC,CAAC,IAAW,CAAC;EACvB;CACD,CAAM,EACTT,QAAQ,CACT,CAAC;AAEJ,MAAMc,WAAW,GACRC,KAAsC,IAAiD,CAACV,CAAC,EAAEW,OAAO,EAAEC,GAAG,KAAI;EAChH,IAAI,CAACb,cAAc,CAACC,CAAC,CAAC,EAAE;IACtB,OAAOR,WAAW,CAACqB,IAAI,CAACrB,WAAW,CAACsB,IAAI,CAACF,GAAG,EAAEZ,CAAC,CAAC,CAAC;EACnD;EACA,MAAMe,KAAK,GAAG;IACZC,SAAS,EAAEC,MAAM,CAACC,cAAc,CAAClB,CAAC,CAAC;IACnC,CAACJ,MAAM,GAAGI,CAAC,CAACJ,MAAM;GACnB;EACD,OAAOJ,WAAW,CAAC2B,GAAG,CAACT,KAAK,CAACV,CAAC,EAAEW,OAAO,CAAC,EAAGS,CAAC,IAAQH,MAAM,CAACI,cAAc,CAACD,CAAC,EAAEL,KAAK,CAAC,CAAC;AACtF,CAAC;AAEH;;;;AAIA,OAAO,MAAMT,cAAc,GACzBgB,IAA4B,IACF;EAC1B,OAAO7B,MAAM,CAAC8B,OAAO,CACnB,CAACD,IAAI,CAAC,EACLA,IAAI,IAAKb,WAAW,CAACjB,WAAW,CAACgC,aAAa,CAACF,IAAI,CAAC,CAAC,EACrDA,IAAI,IAAKb,WAAW,CAACjB,WAAW,CAACiC,aAAa,CAACH,IAAI,CAAC,CAAC,EACtD;IAAEI,UAAU,EAAE;EAAc,CAAE,CAC/B;AACH,CAAC"}
1
+ {"version":3,"file":"Transferable.js","names":["ParseResult","Schema","dual","identity","symbol","Symbol","for","isTransferable","u","get","schema","self","f","fn","transform","schemaFromSelf","to","input","addProxy","schemaParse","parse","options","ast","fail","type","map","a","item","declare","decodeUnknown","encodeUnknown","identifier","Proxy","target","key","has","p"],"sources":["../../src/Transferable.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA,OAAO,KAAKA,WAAW,MAAM,4BAA4B;AACzD,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAC/C,SAASC,IAAI,EAAEC,QAAQ,QAAQ,iBAAiB;AAEhD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,+BAA+B,CAAC;AAUjE;;;;AAIA,OAAO,MAAMC,cAAc,GAAIC,CAAU,IAAwB,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIJ,MAAM,IAAII,CAAC;AAEnH;;;;AAIA,OAAO,MAAMC,GAAG,GAAID,CAAU,IAA4C;EACxE,IAAID,cAAc,CAACC,CAAC,CAAC,EAAE;IACrB,OAAOA,CAAC,CAACJ,MAAM,CAAC,EAAE;EACpB;EACA,OAAO,EAAE;AACX,CAAC;AAED;;;;AAIA,OAAO,MAAMM,MAAM,gBAQfR,IAAI,CAAC,CAAC,EAAE,CACVS,IAA4B,EAC5BC,CAAmD,KACjD;EACF,MAAMC,EAAE,GAAgC,SAAAA,CAAA;IACtC,OAAOD,CAAC,CAAC,IAAI,CAAC;EAChB,CAAC;EACD,OAAOX,MAAM,CAACa,SAAS,CACrBH,IAAI,EACJI,cAAc,CAACd,MAAM,CAACe,EAAE,CAACL,IAAI,CAAC,CAAC,EAC9BM,KAAK,IAAKC,QAAQ,CAACD,KAAK,EAAEJ,EAAE,CAAC,EAC9BV,QAAQ,CACT;AACH,CAAC,CAAC;AAEF,MAAMgB,WAAW,GACOC,KAAsC,IAC5D,CAACZ,CAAC,EAAEa,OAAO,EAAEC,GAAG,KAAI;EAClB,IAAI,CAACf,cAAc,CAACC,CAAC,CAAC,EAAE;IACtB,OAAOR,WAAW,CAACuB,IAAI,CAACvB,WAAW,CAACwB,IAAI,CAACF,GAAG,EAAEd,CAAC,CAAC,CAAC;EACnD;EACA,MAAMI,CAAC,GAAGJ,CAAC,CAACJ,MAAM,CAAC;EACnB,OAAOJ,WAAW,CAACyB,GAAG,CAACL,KAAK,CAACZ,CAAC,EAAEa,OAAO,CAAC,EAAGK,CAAC,IAAQR,QAAQ,CAACQ,CAAC,EAAEd,CAAC,CAAC,CAAC;AACrE,CAAC;AAEH;;;;AAIA,OAAO,MAAMG,cAAc,GACzBY,IAA4B,IACF;EAC1B,OAAO1B,MAAM,CAAC2B,OAAO,CACnB,CAACD,IAAI,CAAC,EACLA,IAAI,IAAKR,WAAW,CAACnB,WAAW,CAAC6B,aAAa,CAACF,IAAI,CAAC,CAAC,EACrDA,IAAI,IAAKR,WAAW,CAACnB,WAAW,CAAC8B,aAAa,CAACH,IAAI,CAAC,CAAC,EACtD;IAAEI,UAAU,EAAE;EAAc,CAAE,CAC/B;AACH,CAAC;AAED,MAAMb,QAAQ,GAAGA,CAAmBP,IAAO,EAAEC,CAA8B,KAAsB;EAC/F,OAAO,IAAIoB,KAAK,CAACrB,IAAI,EAAE;IACrBF,GAAGA,CAACwB,MAAM,EAAEC,GAAG;MACb,IAAIA,GAAG,KAAK9B,MAAM,EAAE;QAClB,OAAOQ,CAAC;MACV;MACA,OAAOqB,MAAM,CAACC,GAAc,CAAC;IAC/B,CAAC;IACDC,GAAGA,CAACF,MAAM,EAAEG,CAAC;MACX,IAAIA,CAAC,KAAKhC,MAAM,EAAE;QAChB,OAAO,IAAI;MACb;MACA,OAAOgC,CAAC,IAAIH,MAAM;IACpB;GACD,CAAQ;AACX,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.43.6",
3
+ "version": "0.43.7",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -42,52 +42,43 @@ export const get = (u: unknown): ReadonlyArray<globalThis.Transferable> => {
42
42
  * @category schema
43
43
  */
44
44
  export const schema: {
45
- <A>(
45
+ <A extends object>(
46
46
  f: (_: A) => ReadonlyArray<globalThis.Transferable>
47
47
  ): <R, I>(self: Schema.Schema<R, I, A>) => Schema.Schema<R, I, A>
48
- <R, I, A>(self: Schema.Schema<R, I, A>, f: (_: A) => ReadonlyArray<globalThis.Transferable>): Schema.Schema<R, I, A>
49
- } = dual<
50
- <A>(
51
- f: (_: A) => ReadonlyArray<globalThis.Transferable>
52
- ) => <R, I>(self: Schema.Schema<R, I, A>) => Schema.Schema<R, I, A>,
53
- <R, I, A>(
48
+ <R, I, A extends object>(
54
49
  self: Schema.Schema<R, I, A>,
55
50
  f: (_: A) => ReadonlyArray<globalThis.Transferable>
56
- ) => Schema.Schema<R, I, A>
57
- >(2, <R, I, A>(
51
+ ): Schema.Schema<R, I, A>
52
+ } = dual(2, <R, I, A extends object>(
58
53
  self: Schema.Schema<R, I, A>,
59
54
  f: (_: A) => ReadonlyArray<globalThis.Transferable>
60
- ) =>
61
- Schema.transform(
55
+ ) => {
56
+ const fn: Transferable[typeof symbol] = function(this: A) {
57
+ return f(this)
58
+ }
59
+ return Schema.transform(
62
60
  self,
63
61
  schemaFromSelf(Schema.to(self)),
64
- (input) =>
65
- ({
66
- ...input,
67
- [symbol]() {
68
- return f(this as any)
69
- }
70
- }) as A,
62
+ (input) => addProxy(input, fn),
71
63
  identity
72
- ))
64
+ )
65
+ })
73
66
 
74
67
  const schemaParse =
75
- <R, A>(parse: ParseResult.DecodeUnknown<R, A>): ParseResult.DeclarationDecodeUnknown<R, A> => (u, options, ast) => {
68
+ <R, A extends object>(parse: ParseResult.DecodeUnknown<R, A>): ParseResult.DeclarationDecodeUnknown<R, A> =>
69
+ (u, options, ast) => {
76
70
  if (!isTransferable(u)) {
77
71
  return ParseResult.fail(ParseResult.type(ast, u))
78
72
  }
79
- const proto = {
80
- __proto__: Object.getPrototypeOf(u),
81
- [symbol]: u[symbol]
82
- }
83
- return ParseResult.map(parse(u, options), (a): A => Object.setPrototypeOf(a, proto))
73
+ const f = u[symbol]
74
+ return ParseResult.map(parse(u, options), (a): A => addProxy(a, f))
84
75
  }
85
76
 
86
77
  /**
87
78
  * @since 1.0.0
88
79
  * @category schema
89
80
  */
90
- export const schemaFromSelf = <R, I, A>(
81
+ export const schemaFromSelf = <R, I extends object, A extends object>(
91
82
  item: Schema.Schema<R, I, A>
92
83
  ): Schema.Schema<R, I, A> => {
93
84
  return Schema.declare(
@@ -97,3 +88,20 @@ export const schemaFromSelf = <R, I, A>(
97
88
  { identifier: "Transferable" }
98
89
  )
99
90
  }
91
+
92
+ const addProxy = <A extends object>(self: A, f: Transferable[typeof symbol]): A & Transferable => {
93
+ return new Proxy(self, {
94
+ get(target, key) {
95
+ if (key === symbol) {
96
+ return f
97
+ }
98
+ return target[key as keyof A]
99
+ },
100
+ has(target, p) {
101
+ if (p === symbol) {
102
+ return true
103
+ }
104
+ return p in target
105
+ }
106
+ }) as any
107
+ }