ppipe 2.6.6 → 3.0.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/dist/index.js ADDED
@@ -0,0 +1,34 @@
1
+ // ==========================================
2
+ // ppipe - Strictly-Typed Piping Library
3
+ // ==========================================
4
+ import { _ } from "./placeholder.js";
5
+ import { createPipe } from "./pipe.js";
6
+ export { isPlaceholder } from "./placeholder.js";
7
+ // ==========================================
8
+ // Factory Creation
9
+ // ==========================================
10
+ function createPpipe(extensions) {
11
+ // The main factory function
12
+ function ppipeFunc(value) {
13
+ return createPipe(value, extensions);
14
+ }
15
+ // Create the extend function
16
+ const extendFunc = (newExtensions) => createPpipe({ ...extensions, ...newExtensions });
17
+ // Combine function with properties using Object.assign
18
+ // This returns the correct intersection type
19
+ const factory = Object.assign(ppipeFunc, {
20
+ _: _,
21
+ extend: extendFunc,
22
+ });
23
+ return factory;
24
+ }
25
+ // ==========================================
26
+ // Default Export
27
+ // ==========================================
28
+ // Create the default ppipe instance with no extensions
29
+ const ppipe = createPpipe({});
30
+ // Export the placeholder for convenient destructuring
31
+ export { _ };
32
+ // Default export for CommonJS compatibility
33
+ export default ppipe;
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,wCAAwC;AACxC,6CAA6C;AAG7C,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAIvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,6CAA6C;AAC7C,mBAAmB;AACnB,6CAA6C;AAE7C,SAAS,WAAW,CAAuB,UAAa;IACvD,4BAA4B;IAC5B,SAAS,SAAS,CAAI,KAAQ;QAC7B,OAAO,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,6BAA6B;IAC7B,MAAM,UAAU,GAAG,CAA0B,aAAmB,EAAyB,EAAE,CAC1F,WAAW,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC,CAAC;IAElD,uDAAuD;IACvD,6CAA6C;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QACxC,CAAC,EAAE,CAAC;QACJ,MAAM,EAAE,UAAU;KAClB,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,6CAA6C;AAC7C,iBAAiB;AACjB,6CAA6C;AAE7C,uDAAuD;AACvD,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AAE9B,sDAAsD;AACtD,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb,4CAA4C;AAC5C,eAAe,KAAK,CAAC"}
package/dist/pipe.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { Extensions, PipeWithExtensions, IsAsync } from "./types.js";
2
+ export declare function createPipe<T, E extends Extensions>(value: T, extensions: E): PipeWithExtensions<T, E, IsAsync<T>>;
3
+ //# sourceMappingURL=pipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../src/pipe.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAgB,OAAO,EAAE,MAAM,YAAY,CAAC;AAuTxF,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAiBjH"}
package/dist/pipe.js ADDED
@@ -0,0 +1,211 @@
1
+ // ==========================================
2
+ // Pipe Implementation (Zero Type Assertions)
3
+ // ==========================================
4
+ import { isPlaceholder } from "./placeholder.js";
5
+ function hasProperty(obj, key) {
6
+ return key in obj;
7
+ }
8
+ function isThenable(value) {
9
+ if (value === null || value === undefined || typeof value !== "object") {
10
+ return false;
11
+ }
12
+ if (!hasProperty(value, "then")) {
13
+ return false;
14
+ }
15
+ return typeof value.then === "function";
16
+ }
17
+ function createSettledPromise(promise) {
18
+ return Promise.resolve(promise).then((value) => ({ resolved: true, value }), (error) => ({ resolved: false, error }));
19
+ }
20
+ // ==========================================
21
+ // Internal call helper - resolves placeholders
22
+ // ==========================================
23
+ function callWithPlaceholders(fn, value, params) {
24
+ if (params.length === 0) {
25
+ return fn(value);
26
+ }
27
+ const args = [];
28
+ let hasPlaceholder = false;
29
+ for (const p of params) {
30
+ if (isPlaceholder(p)) {
31
+ args.push(value);
32
+ hasPlaceholder = true;
33
+ }
34
+ else {
35
+ args.push(p);
36
+ }
37
+ }
38
+ if (!hasPlaceholder) {
39
+ args.push(value);
40
+ }
41
+ return fn(...args);
42
+ }
43
+ // ==========================================
44
+ // Pipe Class with Overloads
45
+ // ==========================================
46
+ class PipeImpl {
47
+ constructor(state, extensions) {
48
+ this.state = state;
49
+ this.extensions = extensions;
50
+ }
51
+ // ==========================================
52
+ // Overloads from Pipe interface (type safety for callers)
53
+ // ==========================================
54
+ // Implementation handles all pipe overloads - callers see specific types via interface
55
+ pipe(fn, ...params) {
56
+ if (this.state.kind === "error") {
57
+ return createPipeWithExtensions({ kind: "error", error: this.state.error }, this.extensions);
58
+ }
59
+ if (this.state.kind === "async") {
60
+ const nextPromise = this.state.settledPromise.then((result) => {
61
+ if (!result.resolved) {
62
+ return { resolved: false, error: result.error };
63
+ }
64
+ try {
65
+ const callResult = callWithPlaceholders(fn, result.value, params);
66
+ if (isThenable(callResult)) {
67
+ return createSettledPromise(callResult);
68
+ }
69
+ return { resolved: true, value: callResult };
70
+ }
71
+ catch (e) {
72
+ return { resolved: false, error: e };
73
+ }
74
+ });
75
+ return createPipeWithExtensions({ kind: "async", settledPromise: nextPromise }, this.extensions);
76
+ }
77
+ // Sync state - value is guaranteed non-thenable (createPipe detects thenables)
78
+ const syncValue = this.state.value;
79
+ try {
80
+ const callResult = callWithPlaceholders(fn, syncValue, params);
81
+ if (isThenable(callResult)) {
82
+ return createPipeWithExtensions({ kind: "async", settledPromise: createSettledPromise(callResult) }, this.extensions);
83
+ }
84
+ return createPipeWithExtensions({ kind: "sync", value: callResult }, this.extensions);
85
+ }
86
+ catch (e) {
87
+ return createPipeWithExtensions({ kind: "error", error: e }, this.extensions);
88
+ }
89
+ }
90
+ // Value getter - returns union type
91
+ get value() {
92
+ if (this.state.kind === "error") {
93
+ throw this.state.error;
94
+ }
95
+ if (this.state.kind === "async") {
96
+ return this.state.settledPromise.then((result) => {
97
+ if (result.resolved) {
98
+ return result.value;
99
+ }
100
+ throw result.error;
101
+ });
102
+ }
103
+ return this.state.value;
104
+ }
105
+ get val() {
106
+ return this.value;
107
+ }
108
+ then(onFulfilled, onRejected) {
109
+ if (this.state.kind === "error") {
110
+ if (onRejected) {
111
+ try {
112
+ return Promise.resolve(onRejected(this.state.error));
113
+ }
114
+ catch (e) {
115
+ return Promise.reject(e);
116
+ }
117
+ }
118
+ return Promise.reject(this.state.error);
119
+ }
120
+ if (this.state.kind === "async") {
121
+ return this.state.settledPromise.then((result) => {
122
+ if (result.resolved) {
123
+ if (onFulfilled) {
124
+ return onFulfilled(result.value);
125
+ }
126
+ return result.value; // No assertion - overload ensures return type
127
+ }
128
+ if (onRejected) {
129
+ return onRejected(result.error);
130
+ }
131
+ throw result.error;
132
+ });
133
+ }
134
+ if (onFulfilled) {
135
+ try {
136
+ return Promise.resolve(onFulfilled(this.state.value));
137
+ }
138
+ catch (e) {
139
+ return Promise.reject(e);
140
+ }
141
+ }
142
+ return Promise.resolve(this.state.value); // No assertion - overload ensures return type
143
+ }
144
+ catch(onRejected) {
145
+ if (this.state.kind === "error") {
146
+ if (onRejected) {
147
+ try {
148
+ return Promise.resolve(onRejected(this.state.error));
149
+ }
150
+ catch (e) {
151
+ return Promise.reject(e);
152
+ }
153
+ }
154
+ return Promise.reject(this.state.error);
155
+ }
156
+ if (this.state.kind === "async") {
157
+ return this.state.settledPromise.then((result) => {
158
+ if (result.resolved) {
159
+ return result.value;
160
+ }
161
+ if (onRejected) {
162
+ return onRejected(result.error);
163
+ }
164
+ throw result.error;
165
+ });
166
+ }
167
+ return Promise.resolve(this.state.value);
168
+ }
169
+ }
170
+ // Type predicate to safely narrow unknown to callable
171
+ function isCallableFunction(value) {
172
+ return typeof value === "function";
173
+ }
174
+ // Creates an extension method that wraps the extension function
175
+ function createExtensionMethod(pipeInstance, extFn) {
176
+ const method = (...args) => pipeInstance.pipe((value) => extFn(value, ...args));
177
+ // The method is correctly typed by construction - overloads ensure caller type safety
178
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
179
+ return method;
180
+ }
181
+ // ==========================================
182
+ // Factory to combine pipe with extensions
183
+ // ==========================================
184
+ function createPipeWithExtensions(state, extensions) {
185
+ const pipeInstance = new PipeImpl(state, extensions);
186
+ // Build extension methods object (Object.keys returns only own enumerable properties)
187
+ const extMethods = {};
188
+ for (const key of Object.keys(extensions)) {
189
+ const extFn = extensions[key];
190
+ if (isCallableFunction(extFn)) {
191
+ extMethods[key] = createExtensionMethod(pipeInstance, extFn);
192
+ }
193
+ }
194
+ // Use Object.assign to combine - TypeScript's type for Object.assign
195
+ // handles the intersection correctly
196
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
197
+ return Object.assign(pipeInstance, extMethods);
198
+ }
199
+ // ==========================================
200
+ // Public factory
201
+ // ==========================================
202
+ export function createPipe(value, extensions) {
203
+ if (isThenable(value)) {
204
+ const settledPromise = createSettledPromise(value);
205
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
206
+ return createPipeWithExtensions({ kind: "async", settledPromise }, extensions);
207
+ }
208
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
209
+ return createPipeWithExtensions({ kind: "sync", value }, extensions);
210
+ }
211
+ //# sourceMappingURL=pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../src/pipe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type PlaceholderType } from "./types.js";
2
+ export declare function isPlaceholder(value: unknown): value is PlaceholderType;
3
+ export declare const _: PlaceholderType;
4
+ //# sourceMappingURL=placeholder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeholder.d.ts","sourceRoot":"","sources":["../src/placeholder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAapE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAMtE;AAGD,eAAO,MAAM,CAAC,EAAE,eAAsD,CAAC"}
@@ -0,0 +1,26 @@
1
+ // ==========================================
2
+ // Placeholder Implementation
3
+ // ==========================================
4
+ var _a;
5
+ import { PlaceholderBrand } from "./types.js";
6
+ // Internal placeholder class with the brand
7
+ class PlaceholderImpl {
8
+ constructor() {
9
+ this[_a] = true;
10
+ }
11
+ }
12
+ _a = PlaceholderBrand;
13
+ // Helper to check if an object has the placeholder brand
14
+ function hasPlaceholderBrand(obj) {
15
+ return PlaceholderBrand in obj;
16
+ }
17
+ // Type guard to check if a value is a placeholder
18
+ export function isPlaceholder(value) {
19
+ if (value === null || typeof value !== "object") {
20
+ return false;
21
+ }
22
+ return hasPlaceholderBrand(value) && value[PlaceholderBrand] === true;
23
+ }
24
+ // The singleton placeholder instance - class implements PlaceholderType so no assertion needed
25
+ export const _ = Object.freeze(new PlaceholderImpl());
26
+ //# sourceMappingURL=placeholder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../src/placeholder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,6BAA6B;AAC7B,6CAA6C;;AAE7C,OAAO,EAAE,gBAAgB,EAAwB,MAAM,YAAY,CAAC;AAEpE,4CAA4C;AAC5C,MAAM,eAAe;IAArB;QACU,QAAkB,GAAG,IAAa,CAAC;IAC7C,CAAC;CAAA;KADU,gBAAgB;AAG3B,yDAAyD;AACzD,SAAS,mBAAmB,CAAC,GAAW;IACvC,OAAO,gBAAgB,IAAI,GAAG,CAAC;AAChC,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;AACvE,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,MAAM,CAAC,GAAoB,MAAM,CAAC,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ export declare const PlaceholderBrand: unique symbol;
2
+ export type PlaceholderType = {
3
+ readonly [PlaceholderBrand]: true;
4
+ };
5
+ export type IsAsync<T> = T extends Promise<unknown> ? true : false;
6
+ export type Extensions = Record<string, unknown>;
7
+ export type CombineAsync<A extends boolean, B extends boolean> = A extends true ? true : B extends true ? true : false;
8
+ export type IsFunction<T> = T extends (...args: never[]) => unknown ? true : false;
9
+ export interface Pipe<T, E extends Extensions = Record<string, never>, Async extends boolean = false> {
10
+ pipe<R>(fn: (value: Awaited<T>) => R): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
11
+ pipe<A, R>(fn: (a: A, value: Awaited<T>) => R, a: A): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
12
+ pipe<A, B, R>(fn: (a: A, b: B, value: Awaited<T>) => R, a: A, b: B): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
13
+ pipe<A, B, C, R>(fn: (a: A, b: B, c: C, value: Awaited<T>) => R, a: A, b: B, c: C): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
14
+ pipe<A, R>(fn: (a: A) => R, a: PlaceholderType): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
15
+ pipe<A, B, R>(fn: (a: A, b: B) => R, a: PlaceholderType, b: B): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
16
+ pipe<A, B, R>(fn: (a: A, b: B) => R, a: A, b: PlaceholderType): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
17
+ pipe<A, R>(fn: (a: A, b: A) => R, a: PlaceholderType, b: PlaceholderType): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
18
+ pipe<A, B, C, R>(fn: (a: A, b: B, c: C) => R, a: PlaceholderType, b: B, c: C): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
19
+ pipe<A, B, C, R>(fn: (a: A, b: B, c: C) => R, a: A, b: PlaceholderType, c: C): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
20
+ pipe<A, B, C, R>(fn: (a: A, b: B, c: C) => R, a: A, b: B, c: PlaceholderType): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
21
+ pipe<A, C, R>(fn: (a: A, b: A, c: C) => R, a: PlaceholderType, b: PlaceholderType, c: C): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
22
+ pipe<A, B, R>(fn: (a: A, b: B, c: A) => R, a: PlaceholderType, b: B, c: PlaceholderType): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
23
+ pipe<A, B, R>(fn: (a: A, b: B, c: B) => R, a: A, b: PlaceholderType, c: PlaceholderType): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
24
+ pipe<A, R>(fn: (a: A, b: A, c: A) => R, a: PlaceholderType, b: PlaceholderType, c: PlaceholderType): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
25
+ pipe<A, B, C, D, R>(fn: (a: A, b: B, c: C, d: D) => R, a: PlaceholderType, b: B, c: C, d: D): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
26
+ pipe<A, B, C, D, R>(fn: (a: A, b: B, c: C, d: D) => R, a: A, b: PlaceholderType, c: C, d: D): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
27
+ pipe<A, B, C, D, R>(fn: (a: A, b: B, c: C, d: D) => R, a: A, b: B, c: PlaceholderType, d: D): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
28
+ pipe<A, B, C, D, R>(fn: (a: A, b: B, c: C, d: D) => R, a: A, b: B, c: C, d: PlaceholderType): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
29
+ pipe<A, C, D, R>(fn: (a: A, b: A, c: C, d: D) => R, a: PlaceholderType, b: PlaceholderType, c: C, d: D): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
30
+ pipe<A, B, R>(fn: (a: A, b: B, c: A, d: B) => R, a: PlaceholderType, b: B, c: PlaceholderType, d: B): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
31
+ pipe<A, R>(fn: (a: A, b: A, c: A, d: A) => R, a: PlaceholderType, b: PlaceholderType, c: PlaceholderType, d: PlaceholderType): PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>>;
32
+ readonly value: T | Promise<T>;
33
+ readonly val: T | Promise<T>;
34
+ then<TResult1 = Awaited<T>, TResult2 = never>(onFulfilled?: ((value: Awaited<T>) => TResult1 | PromiseLike<TResult1>) | null, onRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
35
+ catch<TResult = never>(onRejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null): Promise<Awaited<T> | TResult>;
36
+ }
37
+ export type PipeWithExtensions<T, E extends Extensions, Async extends boolean> = Pipe<T, E, Async> & ExtensionMethods<T, E, Async>;
38
+ export type ExtensionMethods<_T, E extends Extensions, Async extends boolean> = {
39
+ [K in keyof E as E[K] extends (...args: infer _Args) => unknown ? K : never]: E[K] extends (value: infer _V, ...args: infer A) => infer R ? (...args: A) => PipeWithExtensions<Awaited<R>, E, CombineAsync<Async, IsAsync<R>>> : never;
40
+ };
41
+ export interface PipeFactory<E extends Extensions = Record<string, never>> {
42
+ <T>(value: T): PipeWithExtensions<T, E, IsAsync<T>>;
43
+ readonly _: PlaceholderType;
44
+ extend<NewE extends Extensions>(ext: NewE): PipeFactory<E & NewE>;
45
+ }
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,7 @@
1
+ // ==========================================
2
+ // Type Definitions for ppipe
3
+ // ==========================================
4
+ // Branded placeholder type using unique symbol
5
+ // Export the symbol so it can be used in placeholder.ts
6
+ export const PlaceholderBrand = Symbol("ppipe.placeholder");
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,6BAA6B;AAC7B,6CAA6C;AAE7C,+CAA+C;AAC/C,wDAAwD;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAkB,MAAM,CAAC,mBAAmB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,36 +1,65 @@
1
- {
2
- "name": "ppipe",
3
- "version": "2.6.6",
4
- "description": "piping without the operator support",
5
- "main": "src/index.js",
6
- "scripts": {
7
- "test": "nyc --reporter=text --reporter=html mocha test",
8
- "coverage": "nyc report --reporter=text-lcov | coveralls",
9
- "lint": "eslint --fix src/"
10
- },
11
- "keywords": [
12
- "piping",
13
- "promise",
14
- "chain",
15
- "async",
16
- "pipe",
17
- "pipe-operator",
18
- "pipes-values"
19
- ],
20
- "repository": {
21
- "type": "git",
22
- "url": "https://github.com/egeozcan/ppipe.git"
23
- },
24
- "author": "Yavuz Ege Özcan",
25
- "license": "ISC",
26
- "devDependencies": {
27
- "chai": "^4.2.0",
28
- "coveralls": "^3.1.0",
29
- "eslint": "^8.12.0",
30
- "eslint-config-prettier": "^8.5.0",
31
- "eslint-plugin-prettier": "^4.0.0",
32
- "mocha": "^9.2.2",
33
- "nyc": "^15.1.0",
34
- "prettier": "^2.6.1"
35
- }
36
- }
1
+ {
2
+ "name": "ppipe",
3
+ "version": "3.0.0",
4
+ "description": "Strictly-typed piping without the operator support",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "sideEffects": false,
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "build:test": "tsc -p tsconfig.test.json",
21
+ "clean": "rm -rf dist dist-test",
22
+ "prebuild": "npm run clean",
23
+ "prepublishOnly": "npm run build",
24
+ "typecheck": "tsc --noEmit",
25
+ "test": "npm run build:test && c8 --include='dist-test/src/**/*.js' --reporter=text --reporter=html mocha dist-test/test/test.js",
26
+ "coverage": "c8 check-coverage --include='dist-test/src/**/*.js' --lines 100 --functions 100 --branches 100 --statements 100",
27
+ "lint": "eslint --fix src/ test/",
28
+ "lint:check": "eslint src/ test/",
29
+ "prepare": "husky"
30
+ },
31
+ "keywords": [
32
+ "piping",
33
+ "promise",
34
+ "chain",
35
+ "async",
36
+ "pipe",
37
+ "pipe-operator",
38
+ "pipes-values",
39
+ "typescript",
40
+ "type-safe"
41
+ ],
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/egeozcan/ppipe.git"
45
+ },
46
+ "author": "Yavuz Ege Özcan",
47
+ "license": "ISC",
48
+ "devDependencies": {
49
+ "@eslint/js": "^9.39.2",
50
+ "@types/chai": "^5.0.0",
51
+ "@types/mocha": "^10.0.0",
52
+ "@types/node": "^22.0.0",
53
+ "c8": "^10.1.3",
54
+ "chai": "^5.0.0",
55
+ "eslint": "^9.0.0",
56
+ "eslint-config-prettier": "^10.0.0",
57
+ "eslint-plugin-prettier": "^5.0.0",
58
+ "globals": "^17.0.0",
59
+ "husky": "^9.1.7",
60
+ "mocha": "^11.0.0",
61
+ "prettier": "^3.0.0",
62
+ "typescript": "^5.0.0",
63
+ "typescript-eslint": "^8.53.1"
64
+ }
65
+ }