@feathersjs/feathers 5.0.0-pre.1 → 5.0.0-pre.15
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 +182 -0
- package/LICENSE +1 -1
- package/lib/application.d.ts +19 -8
- package/lib/application.js +80 -78
- package/lib/application.js.map +1 -1
- package/lib/declarations.d.ts +207 -106
- package/lib/dependencies.d.ts +4 -0
- package/lib/dependencies.js +18 -0
- package/lib/dependencies.js.map +1 -0
- package/lib/events.d.ts +4 -4
- package/lib/events.js +16 -69
- package/lib/events.js.map +1 -1
- package/lib/hooks/index.d.ts +13 -2
- package/lib/hooks/index.js +84 -146
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/regular.d.ts +12 -0
- package/lib/hooks/regular.js +169 -0
- package/lib/hooks/regular.js.map +1 -0
- package/lib/index.d.ts +9 -4
- package/lib/index.js +9 -12
- package/lib/index.js.map +1 -1
- package/lib/service.d.ts +21 -0
- package/lib/service.js +68 -0
- package/lib/service.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +12 -13
- package/readme.md +1 -77
- package/src/application.ts +115 -105
- package/src/declarations.ts +274 -121
- package/src/dependencies.ts +5 -0
- package/src/events.ts +18 -75
- package/src/hooks/index.ts +95 -150
- package/src/hooks/regular.ts +207 -0
- package/src/index.ts +10 -17
- package/src/service.ts +91 -0
- package/src/version.ts +1 -1
- package/lib/hooks/base.d.ts +0 -3
- package/lib/hooks/base.js +0 -29
- package/lib/hooks/base.js.map +0 -1
- package/lib/hooks/commons.d.ts +0 -20
- package/lib/hooks/commons.js +0 -298
- package/lib/hooks/commons.js.map +0 -1
- package/src/hooks/base.ts +0 -32
- package/src/hooks/commons.ts +0 -336
package/lib/hooks/index.js
CHANGED
|
@@ -1,158 +1,96 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (!service || !app || !app.services) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
return Object.keys(app.services)
|
|
43
|
-
.find(path => app.services[path] === service);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
function getCollector(app, service, method) {
|
|
49
|
-
return function () {
|
|
50
|
-
const previous = this._parent && this._parent.getMiddleware();
|
|
51
|
-
let result;
|
|
52
|
-
if (previous && this._middleware) {
|
|
53
|
-
result = previous.concat(this._middleware);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
result = previous || this._middleware || [];
|
|
57
|
-
}
|
|
58
|
-
const hooks = {
|
|
59
|
-
async: getHooks(app, service, 'async', method),
|
|
60
|
-
before: getHooks(app, service, 'before', method),
|
|
61
|
-
after: getHooks(app, service, 'after', method, true),
|
|
62
|
-
error: getHooks(app, service, 'error', method, true),
|
|
63
|
-
finally: getHooks(app, service, 'finally', method, true)
|
|
64
|
-
};
|
|
65
|
-
return [
|
|
66
|
-
...finallyWrapper(hooks.finally),
|
|
67
|
-
...errorWrapper(hooks.error),
|
|
68
|
-
...baseHooks,
|
|
69
|
-
...result,
|
|
70
|
-
...wrap(hooks)
|
|
71
|
-
];
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
function withHooks(app, service, methods) {
|
|
75
|
-
const hookMap = methods.reduce((accu, method) => {
|
|
76
|
-
if (typeof service[method] !== 'function') {
|
|
77
|
-
return accu;
|
|
78
|
-
}
|
|
79
|
-
const hookManager = hooks_1.middleware([], getMiddlewareOptions(app, service, method));
|
|
80
|
-
hookManager.getMiddleware = getCollector(app, service, method);
|
|
81
|
-
accu[method] = hookManager;
|
|
82
|
-
return accu;
|
|
83
|
-
}, {});
|
|
84
|
-
hooks_1.hooks(service, hookMap);
|
|
3
|
+
exports.hookMixin = exports.FeathersHookManager = exports.createContext = exports.fromErrorHooks = exports.fromErrorHook = exports.fromAfterHooks = exports.fromAfterHook = exports.fromBeforeHooks = exports.fromBeforeHook = void 0;
|
|
4
|
+
const dependencies_1 = require("../dependencies");
|
|
5
|
+
const service_1 = require("../service");
|
|
6
|
+
const regular_1 = require("./regular");
|
|
7
|
+
var regular_2 = require("./regular");
|
|
8
|
+
Object.defineProperty(exports, "fromBeforeHook", { enumerable: true, get: function () { return regular_2.fromBeforeHook; } });
|
|
9
|
+
Object.defineProperty(exports, "fromBeforeHooks", { enumerable: true, get: function () { return regular_2.fromBeforeHooks; } });
|
|
10
|
+
Object.defineProperty(exports, "fromAfterHook", { enumerable: true, get: function () { return regular_2.fromAfterHook; } });
|
|
11
|
+
Object.defineProperty(exports, "fromAfterHooks", { enumerable: true, get: function () { return regular_2.fromAfterHooks; } });
|
|
12
|
+
Object.defineProperty(exports, "fromErrorHook", { enumerable: true, get: function () { return regular_2.fromErrorHook; } });
|
|
13
|
+
Object.defineProperty(exports, "fromErrorHooks", { enumerable: true, get: function () { return regular_2.fromErrorHooks; } });
|
|
14
|
+
function createContext(service, method, data = {}) {
|
|
15
|
+
const createContext = service[method].createContext;
|
|
16
|
+
if (typeof createContext !== 'function') {
|
|
17
|
+
throw new Error(`Can not create context for method ${method}`);
|
|
18
|
+
}
|
|
19
|
+
return createContext(data);
|
|
85
20
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
21
|
+
exports.createContext = createContext;
|
|
22
|
+
class FeathersHookManager extends dependencies_1.HookManager {
|
|
23
|
+
constructor(app, method) {
|
|
24
|
+
super();
|
|
25
|
+
this.app = app;
|
|
26
|
+
this.method = method;
|
|
27
|
+
this._middleware = [];
|
|
28
|
+
}
|
|
29
|
+
collectMiddleware(self, args) {
|
|
30
|
+
const app = this.app;
|
|
31
|
+
const appHooks = app.appHooks[dependencies_1.HOOKS].concat(app.appHooks[this.method] || []);
|
|
32
|
+
const regularAppHooks = (0, regular_1.collectRegularHooks)(this.app, this.method);
|
|
33
|
+
const middleware = super.collectMiddleware(self, args);
|
|
34
|
+
const regularHooks = (0, regular_1.collectRegularHooks)(self, this.method);
|
|
35
|
+
return [...appHooks, ...regularAppHooks, ...middleware, ...regularHooks];
|
|
36
|
+
}
|
|
37
|
+
initializeContext(self, args, context) {
|
|
38
|
+
const ctx = super.initializeContext(self, args, context);
|
|
39
|
+
ctx.params = ctx.params || {};
|
|
40
|
+
return ctx;
|
|
41
|
+
}
|
|
42
|
+
middleware(mw) {
|
|
43
|
+
this._middleware.push(...mw);
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
103
46
|
}
|
|
104
|
-
|
|
105
|
-
|
|
47
|
+
exports.FeathersHookManager = FeathersHookManager;
|
|
48
|
+
function hookMixin(service, path, options) {
|
|
106
49
|
if (typeof service.hooks === 'function') {
|
|
107
|
-
return;
|
|
50
|
+
return service;
|
|
108
51
|
}
|
|
109
|
-
service.methods = Object.getOwnPropertyNames(service)
|
|
110
|
-
.filter(key => typeof service[key] === 'function' && service[key][ACTIVATE_HOOKS])
|
|
111
|
-
.reduce((result, methodName) => {
|
|
112
|
-
result[methodName] = service[methodName][ACTIVATE_HOOKS];
|
|
113
|
-
return result;
|
|
114
|
-
}, service.methods || {});
|
|
115
|
-
Object.assign(service.methods, {
|
|
116
|
-
find: ['params'],
|
|
117
|
-
get: ['id', 'params'],
|
|
118
|
-
create: ['data', 'params'],
|
|
119
|
-
update: ['id', 'data', 'params'],
|
|
120
|
-
patch: ['id', 'data', 'params'],
|
|
121
|
-
remove: ['id', 'params']
|
|
122
|
-
});
|
|
123
52
|
const app = this;
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
53
|
+
const hookMethods = (0, service_1.getHookMethods)(service, options);
|
|
54
|
+
const serviceMethodHooks = hookMethods.reduce((res, method) => {
|
|
55
|
+
const params = service_1.defaultServiceArguments[method] || ['data', 'params'];
|
|
56
|
+
res[method] = new FeathersHookManager(app, method)
|
|
57
|
+
.params(...params)
|
|
58
|
+
.props({
|
|
59
|
+
app,
|
|
60
|
+
path,
|
|
61
|
+
method,
|
|
62
|
+
service,
|
|
63
|
+
event: null,
|
|
64
|
+
type: null,
|
|
65
|
+
get statusCode() {
|
|
66
|
+
var _a;
|
|
67
|
+
return (_a = this.http) === null || _a === void 0 ? void 0 : _a.statusCode;
|
|
68
|
+
},
|
|
69
|
+
set statusCode(value) {
|
|
70
|
+
(this.http || (this.http = {})).statusCode = value;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return res;
|
|
133
74
|
}, {});
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
service.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
75
|
+
const handleRegularHooks = (0, regular_1.enableRegularHooks)(service, hookMethods);
|
|
76
|
+
(0, dependencies_1.hooks)(service, serviceMethodHooks);
|
|
77
|
+
service.hooks = function (hookOptions) {
|
|
78
|
+
if (hookOptions.before || hookOptions.after || hookOptions.error) {
|
|
79
|
+
return handleRegularHooks.call(this, hookOptions);
|
|
80
|
+
}
|
|
81
|
+
if (Array.isArray(hookOptions)) {
|
|
82
|
+
return (0, dependencies_1.hooks)(this, hookOptions);
|
|
83
|
+
}
|
|
84
|
+
Object.keys(hookOptions).forEach(method => {
|
|
85
|
+
const manager = (0, dependencies_1.getManager)(this[method]);
|
|
86
|
+
if (!(manager instanceof FeathersHookManager)) {
|
|
87
|
+
throw new Error(`Method ${method} is not a Feathers hooks enabled service method`);
|
|
88
|
+
}
|
|
89
|
+
manager.middleware(hookOptions[method]);
|
|
144
90
|
});
|
|
145
|
-
|
|
146
|
-
enableHooks(app, app.methods, app.hookTypes);
|
|
147
|
-
app.mixins.push(hookMixin);
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
exports.default = default_1;
|
|
151
|
-
function activateHooks(args) {
|
|
152
|
-
return (fn) => {
|
|
153
|
-
Object.defineProperty(fn, ACTIVATE_HOOKS, { value: args });
|
|
154
|
-
return fn;
|
|
91
|
+
return this;
|
|
155
92
|
};
|
|
93
|
+
return service;
|
|
156
94
|
}
|
|
157
|
-
exports.
|
|
95
|
+
exports.hookMixin = hookMixin;
|
|
158
96
|
//# sourceMappingURL=index.js.map
|
package/lib/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HookFunction, RegularHookFunction, RegularHookMap } from '../declarations';
|
|
2
|
+
export declare function fromBeforeHook<A, S>(hook: RegularHookFunction<A, S>): HookFunction<A, S>;
|
|
3
|
+
export declare function fromAfterHook<A, S>(hook: RegularHookFunction<A, S>): HookFunction<A, S>;
|
|
4
|
+
export declare function fromErrorHook<A, S>(hook: RegularHookFunction<A, S>): HookFunction<A, S>;
|
|
5
|
+
export declare function fromBeforeHooks<A, S>(hooks: RegularHookFunction<A, S>[]): HookFunction<unknown, unknown>;
|
|
6
|
+
export declare function fromAfterHooks<A, S>(hooks: RegularHookFunction<A, S>[]): HookFunction<unknown, unknown>;
|
|
7
|
+
export declare function fromErrorHooks<A, S>(hooks: RegularHookFunction<A, S>[]): HookFunction<unknown, unknown>;
|
|
8
|
+
export declare function collectRegularHooks(target: any, method: string): any;
|
|
9
|
+
export declare function convertHookData(input: any): {
|
|
10
|
+
[method: string]: RegularHookFunction<import("../declarations").Application<any, any>, import("../declarations").Service<any, Partial<any>>>[];
|
|
11
|
+
};
|
|
12
|
+
export declare function enableRegularHooks(object: any, methods?: string[]): (this: any, input: RegularHookMap<any, any>) => any;
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enableRegularHooks = exports.convertHookData = exports.collectRegularHooks = exports.fromErrorHooks = exports.fromAfterHooks = exports.fromBeforeHooks = exports.fromErrorHook = exports.fromAfterHook = exports.fromBeforeHook = void 0;
|
|
4
|
+
const service_1 = require("../service");
|
|
5
|
+
const runHook = (hook, context, type) => {
|
|
6
|
+
if (type)
|
|
7
|
+
context.type = type;
|
|
8
|
+
return Promise.resolve(hook.call(context.self, context))
|
|
9
|
+
.then((res) => {
|
|
10
|
+
if (type)
|
|
11
|
+
context.type = null;
|
|
12
|
+
if (res && res !== context) {
|
|
13
|
+
Object.assign(context, res);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
function fromBeforeHook(hook) {
|
|
18
|
+
return (context, next) => {
|
|
19
|
+
return runHook(hook, context, 'before').then(next);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
exports.fromBeforeHook = fromBeforeHook;
|
|
23
|
+
function fromAfterHook(hook) {
|
|
24
|
+
return (context, next) => {
|
|
25
|
+
return next().then(() => runHook(hook, context, 'after'));
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
exports.fromAfterHook = fromAfterHook;
|
|
29
|
+
function fromErrorHook(hook) {
|
|
30
|
+
return (context, next) => {
|
|
31
|
+
return next().catch((error) => {
|
|
32
|
+
if (context.error !== error || context.result !== undefined) {
|
|
33
|
+
context.original = { ...context };
|
|
34
|
+
context.error = error;
|
|
35
|
+
delete context.result;
|
|
36
|
+
}
|
|
37
|
+
return runHook(hook, context, 'error').then(() => {
|
|
38
|
+
if (context.result === undefined && context.error !== undefined) {
|
|
39
|
+
throw context.error;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
exports.fromErrorHook = fromErrorHook;
|
|
46
|
+
const RunHooks = (hooks) => (context) => {
|
|
47
|
+
return hooks.reduce((promise, hook) => {
|
|
48
|
+
return promise.then(() => runHook(hook, context));
|
|
49
|
+
}, Promise.resolve(undefined));
|
|
50
|
+
};
|
|
51
|
+
function fromBeforeHooks(hooks) {
|
|
52
|
+
return fromBeforeHook(RunHooks(hooks));
|
|
53
|
+
}
|
|
54
|
+
exports.fromBeforeHooks = fromBeforeHooks;
|
|
55
|
+
function fromAfterHooks(hooks) {
|
|
56
|
+
return fromAfterHook(RunHooks(hooks));
|
|
57
|
+
}
|
|
58
|
+
exports.fromAfterHooks = fromAfterHooks;
|
|
59
|
+
function fromErrorHooks(hooks) {
|
|
60
|
+
return fromErrorHook(RunHooks(hooks));
|
|
61
|
+
}
|
|
62
|
+
exports.fromErrorHooks = fromErrorHooks;
|
|
63
|
+
function collectRegularHooks(target, method) {
|
|
64
|
+
return target.__hooks.hooks[method] || [];
|
|
65
|
+
}
|
|
66
|
+
exports.collectRegularHooks = collectRegularHooks;
|
|
67
|
+
// Converts different hook registration formats into the
|
|
68
|
+
// same internal format
|
|
69
|
+
function convertHookData(input) {
|
|
70
|
+
const result = {};
|
|
71
|
+
if (Array.isArray(input)) {
|
|
72
|
+
result.all = input;
|
|
73
|
+
}
|
|
74
|
+
else if (typeof input !== 'object') {
|
|
75
|
+
result.all = [input];
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
for (const key of Object.keys(input)) {
|
|
79
|
+
const value = input[key];
|
|
80
|
+
result[key] = Array.isArray(value) ? value : [value];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
exports.convertHookData = convertHookData;
|
|
86
|
+
const types = ['before', 'after', 'error'];
|
|
87
|
+
const isType = (value) => types.includes(value);
|
|
88
|
+
const wrappers = {
|
|
89
|
+
before: fromBeforeHooks,
|
|
90
|
+
after: fromAfterHooks,
|
|
91
|
+
error: fromErrorHooks
|
|
92
|
+
};
|
|
93
|
+
const createStore = (methods) => {
|
|
94
|
+
const store = {
|
|
95
|
+
before: {},
|
|
96
|
+
after: {},
|
|
97
|
+
error: {},
|
|
98
|
+
hooks: {}
|
|
99
|
+
};
|
|
100
|
+
for (const method of methods) {
|
|
101
|
+
store.hooks[method] = [];
|
|
102
|
+
}
|
|
103
|
+
return store;
|
|
104
|
+
};
|
|
105
|
+
const setStore = (object, store) => {
|
|
106
|
+
Object.defineProperty(object, '__hooks', {
|
|
107
|
+
configurable: true,
|
|
108
|
+
value: store,
|
|
109
|
+
writable: true
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
const getStore = (object) => object.__hooks;
|
|
113
|
+
const createMap = (input, methods) => {
|
|
114
|
+
const map = {};
|
|
115
|
+
Object.keys(input).forEach((type) => {
|
|
116
|
+
if (!isType(type)) {
|
|
117
|
+
throw new Error(`'${type}' is not a valid hook type`);
|
|
118
|
+
}
|
|
119
|
+
const data = convertHookData(input[type]);
|
|
120
|
+
Object.keys(data).forEach((method) => {
|
|
121
|
+
if (method !== 'all' && !methods.includes(method)) {
|
|
122
|
+
throw new Error(`'${method}' is not a valid hook method`);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
map[type] = data;
|
|
126
|
+
});
|
|
127
|
+
return map;
|
|
128
|
+
};
|
|
129
|
+
const createAdapter = (type) => {
|
|
130
|
+
const hooks = [];
|
|
131
|
+
const hook = wrappers[type](hooks);
|
|
132
|
+
const adapter = Object.assign(hook, { hooks });
|
|
133
|
+
return adapter;
|
|
134
|
+
};
|
|
135
|
+
const updateStore = (store, map) => {
|
|
136
|
+
Object.keys(store.hooks).forEach((method) => {
|
|
137
|
+
let adapted = false;
|
|
138
|
+
Object.keys(map).forEach((key) => {
|
|
139
|
+
var _a;
|
|
140
|
+
const type = key;
|
|
141
|
+
const allHooks = map[type].all || [];
|
|
142
|
+
const methodHooks = map[type][method] || [];
|
|
143
|
+
if (allHooks.length || methodHooks.length) {
|
|
144
|
+
const adapter = (_a = store[type])[method] || (_a[method] = (adapted = true, createAdapter(type)));
|
|
145
|
+
adapter.hooks.push(...allHooks, ...methodHooks);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
if (adapted) {
|
|
149
|
+
store.hooks[method] = [
|
|
150
|
+
store.error[method],
|
|
151
|
+
store.before[method],
|
|
152
|
+
store.after[method]
|
|
153
|
+
].filter(hook => hook);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
};
|
|
157
|
+
// Add `.hooks` functionality to an object
|
|
158
|
+
function enableRegularHooks(object, methods = service_1.defaultServiceMethods) {
|
|
159
|
+
const store = createStore(methods);
|
|
160
|
+
setStore(object, store);
|
|
161
|
+
return function regularHooks(input) {
|
|
162
|
+
const store = getStore(this);
|
|
163
|
+
const map = createMap(input, methods);
|
|
164
|
+
updateStore(store, map);
|
|
165
|
+
return this;
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
exports.enableRegularHooks = enableRegularHooks;
|
|
169
|
+
//# sourceMappingURL=regular.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regular.js","sourceRoot":"","sources":["../../src/hooks/regular.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import version from './version';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export
|
|
2
|
+
import { Feathers } from './application';
|
|
3
|
+
import { Application } from './declarations';
|
|
4
|
+
export declare function feathers<T = any, S = any>(): Application<T, S>;
|
|
5
|
+
export declare namespace feathers {
|
|
6
|
+
var setDebug: typeof import("@feathersjs/commons/lib/debug").setDebug;
|
|
7
|
+
}
|
|
8
|
+
export { version, Feathers };
|
|
6
9
|
export * from './hooks/index';
|
|
10
|
+
export * from './declarations';
|
|
11
|
+
export * from './service';
|
package/lib/index.js
CHANGED
|
@@ -13,23 +13,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.version = void 0;
|
|
17
|
-
|
|
18
|
-
const uberproto_1 = __importDefault(require("uberproto"));
|
|
19
|
-
const application_1 = __importDefault(require("./application"));
|
|
16
|
+
exports.Feathers = exports.version = exports.feathers = void 0;
|
|
17
|
+
const dependencies_1 = require("./dependencies");
|
|
20
18
|
const version_1 = __importDefault(require("./version"));
|
|
21
19
|
exports.version = version_1.default;
|
|
22
|
-
const
|
|
20
|
+
const application_1 = require("./application");
|
|
21
|
+
Object.defineProperty(exports, "Feathers", { enumerable: true, get: function () { return application_1.Feathers; } });
|
|
23
22
|
function feathers() {
|
|
24
|
-
|
|
25
|
-
// Mix in the base application
|
|
26
|
-
uberproto_1.default.mixin(application_1.default, app);
|
|
27
|
-
app.init();
|
|
28
|
-
return app;
|
|
23
|
+
return new application_1.Feathers();
|
|
29
24
|
}
|
|
30
|
-
exports.
|
|
31
|
-
|
|
25
|
+
exports.feathers = feathers;
|
|
26
|
+
feathers.setDebug = dependencies_1.setDebug;
|
|
32
27
|
__exportStar(require("./hooks/index"), exports);
|
|
28
|
+
__exportStar(require("./declarations"), exports);
|
|
29
|
+
__exportStar(require("./service"), exports);
|
|
33
30
|
if (typeof module !== 'undefined') {
|
|
34
31
|
module.exports = Object.assign(feathers, module.exports);
|
|
35
32
|
}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA0C;AAC1C,wDAAgC;AAUvB,kBAVF,iBAAO,CAUE;AAThB,+CAAyC;AASvB,yFATT,sBAAQ,OASS;AAN1B,SAAgB,QAAQ;IACtB,OAAO,IAAI,sBAAQ,EAA6B,CAAC;AACnD,CAAC;AAFD,4BAEC;AAED,QAAQ,CAAC,QAAQ,GAAG,uBAAQ,CAAC;AAG7B,gDAA8B;AAC9B,iDAA+B;AAC/B,4CAA0B;AAE1B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CAC1D"}
|
package/lib/service.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ServiceOptions } from './declarations';
|
|
2
|
+
export declare const SERVICE: string | symbol;
|
|
3
|
+
export declare const defaultServiceArguments: {
|
|
4
|
+
find: string[];
|
|
5
|
+
get: string[];
|
|
6
|
+
create: string[];
|
|
7
|
+
update: string[];
|
|
8
|
+
patch: string[];
|
|
9
|
+
remove: string[];
|
|
10
|
+
};
|
|
11
|
+
export declare const defaultServiceMethods: string[];
|
|
12
|
+
export declare const defaultEventMap: {
|
|
13
|
+
create: string;
|
|
14
|
+
update: string;
|
|
15
|
+
patch: string;
|
|
16
|
+
remove: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const protectedMethods: string[];
|
|
19
|
+
export declare function getHookMethods(service: any, options: ServiceOptions): string[];
|
|
20
|
+
export declare function getServiceOptions(service: any, options?: ServiceOptions): ServiceOptions;
|
|
21
|
+
export declare function wrapService(location: string, service: any, options: ServiceOptions): any;
|
package/lib/service.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wrapService = exports.getServiceOptions = exports.getHookMethods = exports.protectedMethods = exports.defaultEventMap = exports.defaultServiceMethods = exports.defaultServiceArguments = exports.SERVICE = void 0;
|
|
4
|
+
const dependencies_1 = require("./dependencies");
|
|
5
|
+
exports.SERVICE = (0, dependencies_1.createSymbol)('@feathersjs/service');
|
|
6
|
+
exports.defaultServiceArguments = {
|
|
7
|
+
find: ['params'],
|
|
8
|
+
get: ['id', 'params'],
|
|
9
|
+
create: ['data', 'params'],
|
|
10
|
+
update: ['id', 'data', 'params'],
|
|
11
|
+
patch: ['id', 'data', 'params'],
|
|
12
|
+
remove: ['id', 'params']
|
|
13
|
+
};
|
|
14
|
+
exports.defaultServiceMethods = Object.keys(exports.defaultServiceArguments);
|
|
15
|
+
exports.defaultEventMap = {
|
|
16
|
+
create: 'created',
|
|
17
|
+
update: 'updated',
|
|
18
|
+
patch: 'patched',
|
|
19
|
+
remove: 'removed'
|
|
20
|
+
};
|
|
21
|
+
exports.protectedMethods = Object.keys(Object.prototype)
|
|
22
|
+
.concat(Object.keys(dependencies_1.EventEmitter.prototype))
|
|
23
|
+
.concat([
|
|
24
|
+
'all',
|
|
25
|
+
'before',
|
|
26
|
+
'after',
|
|
27
|
+
'error',
|
|
28
|
+
'hooks',
|
|
29
|
+
'setup',
|
|
30
|
+
'publish'
|
|
31
|
+
]);
|
|
32
|
+
function getHookMethods(service, options) {
|
|
33
|
+
const { methods } = options;
|
|
34
|
+
return exports.defaultServiceMethods.filter(m => typeof service[m] === 'function' && !methods.includes(m)).concat(methods);
|
|
35
|
+
}
|
|
36
|
+
exports.getHookMethods = getHookMethods;
|
|
37
|
+
function getServiceOptions(service, options = {}) {
|
|
38
|
+
const existingOptions = service[exports.SERVICE];
|
|
39
|
+
if (existingOptions) {
|
|
40
|
+
return existingOptions;
|
|
41
|
+
}
|
|
42
|
+
const { methods = exports.defaultServiceMethods.filter(method => typeof service[method] === 'function'), events = service.events || [] } = options;
|
|
43
|
+
const { serviceEvents = Object.values(exports.defaultEventMap).concat(events) } = options;
|
|
44
|
+
return {
|
|
45
|
+
...options,
|
|
46
|
+
events,
|
|
47
|
+
methods,
|
|
48
|
+
serviceEvents
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
exports.getServiceOptions = getServiceOptions;
|
|
52
|
+
function wrapService(location, service, options) {
|
|
53
|
+
// Do nothing if this is already an initialized
|
|
54
|
+
if (service[exports.SERVICE]) {
|
|
55
|
+
return service;
|
|
56
|
+
}
|
|
57
|
+
const protoService = Object.create(service);
|
|
58
|
+
const serviceOptions = getServiceOptions(service, options);
|
|
59
|
+
if (Object.keys(serviceOptions.methods).length === 0 && typeof service.setup !== 'function') {
|
|
60
|
+
throw new Error(`Invalid service object passed for path \`${location}\``);
|
|
61
|
+
}
|
|
62
|
+
Object.defineProperty(protoService, exports.SERVICE, {
|
|
63
|
+
value: serviceOptions
|
|
64
|
+
});
|
|
65
|
+
return protoService;
|
|
66
|
+
}
|
|
67
|
+
exports.wrapService = wrapService;
|
|
68
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "5.0.0-pre.
|
|
1
|
+
declare const _default: "5.0.0-pre.15";
|
|
2
2
|
export default _default;
|
package/lib/version.js
CHANGED