mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 14:45:56 +08:00
adds premissions service to FE
This commit is contained in:
parent
215fa9d0b0
commit
52b278fe78
16
app/controllers/client_api/permissions_controller.rb
Normal file
16
app/controllers/client_api/permissions_controller.rb
Normal file
|
@ -0,0 +1,16 @@
|
|||
module ClientApi
|
||||
class PermissionsController < ApplicationController
|
||||
def state
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
render json: {
|
||||
can_update_team?: false,
|
||||
can_read_team?: true
|
||||
}, status: :ok
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
# holder = Canaid::PermissionsHolder.instance
|
||||
# https://github.com/biosistemika/canaid/blob/master/lib/canaid/helpers/permissions_helper.rb
|
|
@ -6,6 +6,8 @@ import { FormattedMessage } from "react-intl";
|
|||
import { getUserProfileInfo } from "../../../../../services/api/users_api";
|
||||
import { addCurrentUser } from "../../../../../components/actions/UsersActions";
|
||||
|
||||
import * as Permissions from "../../../../../services/permissions";
|
||||
|
||||
import AvatarInputField from "./AvatarInputField";
|
||||
import ProfileInputField from "./ProfileInputField";
|
||||
|
||||
|
@ -47,6 +49,7 @@ class MyProfile extends Component {
|
|||
}
|
||||
|
||||
render() {
|
||||
console.log(this.props.permissions);
|
||||
return (
|
||||
<div>
|
||||
<h2>
|
||||
|
@ -103,4 +106,5 @@ MyProfile.propTypes = {
|
|||
addCurrentUser: func.isRequired
|
||||
};
|
||||
|
||||
export default connect(null, { addCurrentUser })(MyProfile);
|
||||
const ComponentWithPermissions = Permissions.connect(MyProfile, ["can_update_team", "can_read_team"], "user");
|
||||
export default connect(null, { addCurrentUser })(ComponentWithPermissions)
|
||||
|
|
|
@ -40,3 +40,6 @@ export const SETTINGS_TEAMS = "/settings/teams";
|
|||
|
||||
// scinote configurations
|
||||
export const ABOUT_SCINOTE_PATH = "/client_api/about_scinote";
|
||||
|
||||
// permissions
|
||||
export const PERMISSIONS_PATH = "/client_api/premissions";
|
||||
|
|
16
app/javascript/src/services/api/permissions_api.js
Normal file
16
app/javascript/src/services/api/permissions_api.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
// @flow
|
||||
|
||||
import axiosInstance from "./config";
|
||||
import { PERMISSIONS_PATH } from "./endpoints";
|
||||
|
||||
export const getPermissionStatus = (
|
||||
requiredPermissions: Array<string>,
|
||||
resource: string
|
||||
): Promise<*> => {
|
||||
return axiosInstance
|
||||
.get(PERMISSIONS_PATH, {
|
||||
requiredPermissions,
|
||||
resource
|
||||
})
|
||||
.then(({ data }) => data);
|
||||
};
|
70
app/javascript/src/services/permissions/index.js
Normal file
70
app/javascript/src/services/permissions/index.js
Normal file
|
@ -0,0 +1,70 @@
|
|||
// @flow
|
||||
/*
|
||||
To use this HOC you need to import in you targeted component:
|
||||
|
||||
> import * as Permissions from "relative path../services/permissions"
|
||||
|
||||
Than you use the Permissions.connect method to wrap your component and
|
||||
pass this "permissions helper methods" in your component params:
|
||||
|
||||
>
|
||||
> Permissions.connect(MyComponent, ["can_update_team?", "can_read_team?"], "Team");
|
||||
>
|
||||
|
||||
Now you can access to your permissions through component params. The permissions
|
||||
you required have 3 states [true, false, null]. Null is when you are waiting for server response.
|
||||
*/
|
||||
import * as React from "react";
|
||||
import { getPermissionStatus } from "../api/permissions_api";
|
||||
|
||||
type State = {
|
||||
permissions: any
|
||||
};
|
||||
|
||||
/*
|
||||
This function accepts 3 arguments which are REQUIRED
|
||||
1.) WrappedComponent: Component that you want to have permissions
|
||||
2.) requiredPermissions: an array of strings with permissions methods that
|
||||
will be available in your component
|
||||
3.) resource: a string of reference/model name
|
||||
*/
|
||||
export function connect<Props: {}>(
|
||||
WrappedComponent: React.ComponentType<Props>,
|
||||
requiredPermissions: Array<string> = [],
|
||||
resource: string
|
||||
) {
|
||||
let parsedPermission = {};
|
||||
requiredPermissions.forEach(el => {
|
||||
parsedPermission[el] = null;
|
||||
});
|
||||
|
||||
return class extends React.Component<*, State, *> {
|
||||
constructor(props: any) {
|
||||
super(props);
|
||||
this.state = { permissions: parsedPermission };
|
||||
}
|
||||
|
||||
componentDidMount(): void {
|
||||
getPermissionStatus(requiredPermissions, resource)
|
||||
.then(data => {
|
||||
this.setState({ permissions: data });
|
||||
})
|
||||
.catch(() => {
|
||||
let permissions = {};
|
||||
requiredPermissions.forEach(el => {
|
||||
permissions[el] = false;
|
||||
});
|
||||
this.setState({ permissions });
|
||||
});
|
||||
}
|
||||
|
||||
render(): any {
|
||||
return (
|
||||
<WrappedComponent
|
||||
permissions={this.state.permissions}
|
||||
{...this.props}
|
||||
/>
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
|
@ -18,6 +18,7 @@ Rails.application.routes.draw do
|
|||
get '/settings/*all', to: 'client_api/settings#index'
|
||||
|
||||
namespace :client_api, defaults: { format: 'json' } do
|
||||
get '/premissions', to: 'permissions#state'
|
||||
%i(activities teams notifications users configurations).each do |path|
|
||||
draw path
|
||||
end
|
||||
|
|
340
flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js
vendored
Normal file
340
flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js
vendored
Normal file
|
@ -0,0 +1,340 @@
|
|||
// flow-typed signature: 2a83afa8301f1298c0c192309eab48de
|
||||
// flow-typed version: <<STUB>>/eslint-plugin-flowtype_v^2.39.1/flow_v0.56.0
|
||||
|
||||
/**
|
||||
* This is an autogenerated libdef stub for:
|
||||
*
|
||||
* 'eslint-plugin-flowtype'
|
||||
*
|
||||
* Fill this stub out by replacing all the `any` types.
|
||||
*
|
||||
* Once filled out, we encourage you to share your work with the
|
||||
* community by sending a pull request to:
|
||||
* https://github.com/flowtype/flow-typed
|
||||
*/
|
||||
|
||||
declare module 'eslint-plugin-flowtype' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* We include stubs for each file inside this npm package in case you need to
|
||||
* require those files directly. Feel free to delete any files that aren't
|
||||
* needed.
|
||||
*/
|
||||
declare module 'eslint-plugin-flowtype/bin/readmeAssertions' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/index' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/booleanStyle' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/defineFlowType' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/delimiterDangle' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/genericSpacing' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noDupeKeys' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noMutableArray' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noTypesMissingFileAnnotation' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noUnusedExpressions' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noWeakTypes' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/requireParameterType' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/requireReturnType' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/requireVariableType' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/semi' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/sortKeys' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeIdMatch' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/useFlowType' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/validSyntax' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/getParameterName' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/index' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFile' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/quoteName' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/spacingFixers' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
// Filename aliases
|
||||
declare module 'eslint-plugin-flowtype/bin/readmeAssertions.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/bin/readmeAssertions'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/index.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/index'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/booleanStyle.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/booleanStyle'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/defineFlowType.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/defineFlowType'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/delimiterDangle.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/delimiterDangle'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/genericSpacing.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/genericSpacing'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noDupeKeys.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noDupeKeys'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noMutableArray.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noMutableArray'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noTypesMissingFileAnnotation.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noTypesMissingFileAnnotation'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noUnusedExpressions.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noUnusedExpressions'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/noWeakTypes.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noWeakTypes'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/requireParameterType.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireParameterType'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/requireReturnType.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireReturnType'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/requireVariableType.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireVariableType'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/semi.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/semi'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/sortKeys.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/sortKeys'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/typeIdMatch.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeIdMatch'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/useFlowType.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/useFlowType'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/rules/validSyntax.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/validSyntax'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/getParameterName.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getParameterName'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/index.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/index'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFile.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/isFlowFile'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/quoteName.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/quoteName'>;
|
||||
}
|
||||
declare module 'eslint-plugin-flowtype/dist/utilities/spacingFixers.js' {
|
||||
declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/spacingFixers'>;
|
||||
}
|
2
flow-typed/npm/lodash_v4.x.x.js
vendored
2
flow-typed/npm/lodash_v4.x.x.js
vendored
|
@ -4204,4 +4204,4 @@ declare module "lodash/toPath" {
|
|||
|
||||
declare module "lodash/uniqueId" {
|
||||
declare module.exports: $PropertyType<$Exports<"lodash">, "uniqueId">;
|
||||
}
|
||||
}
|
||||
|
|
58
flow-typed/npm/redux_v3.x.x.js
vendored
58
flow-typed/npm/redux_v3.x.x.js
vendored
|
@ -1,5 +1,5 @@
|
|||
// flow-typed signature: 33b83b6284653250e74578cf4dbe6124
|
||||
// flow-typed version: e282e4128f/redux_v3.x.x/flow_>=v0.33.x
|
||||
// flow-typed signature: ec7daead5cb4fec5ab25fedbedef29e8
|
||||
// flow-typed version: 2c04631d20/redux_v3.x.x/flow_>=v0.55.x
|
||||
|
||||
declare module 'redux' {
|
||||
|
||||
|
@ -55,55 +55,5 @@ declare module 'redux' {
|
|||
|
||||
declare export function combineReducers<O: Object, A>(reducers: O): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
|
||||
|
||||
declare export function compose<A, B>(ab: (a: A) => B): (a: A) => B
|
||||
declare export function compose<A, B, C>(
|
||||
bc: (b: B) => C,
|
||||
ab: (a: A) => B
|
||||
): (a: A) => C
|
||||
declare export function compose<A, B, C, D>(
|
||||
cd: (c: C) => D,
|
||||
bc: (b: B) => C,
|
||||
ab: (a: A) => B
|
||||
): (a: A) => D
|
||||
declare export function compose<A, B, C, D, E>(
|
||||
de: (d: D) => E,
|
||||
cd: (c: C) => D,
|
||||
bc: (b: B) => C,
|
||||
ab: (a: A) => B
|
||||
): (a: A) => E
|
||||
declare export function compose<A, B, C, D, E, F>(
|
||||
ef: (e: E) => F,
|
||||
de: (d: D) => E,
|
||||
cd: (c: C) => D,
|
||||
bc: (b: B) => C,
|
||||
ab: (a: A) => B
|
||||
): (a: A) => F
|
||||
declare export function compose<A, B, C, D, E, F, G>(
|
||||
fg: (f: F) => G,
|
||||
ef: (e: E) => F,
|
||||
de: (d: D) => E,
|
||||
cd: (c: C) => D,
|
||||
bc: (b: B) => C,
|
||||
ab: (a: A) => B
|
||||
): (a: A) => G
|
||||
declare export function compose<A, B, C, D, E, F, G, H>(
|
||||
gh: (g: G) => H,
|
||||
fg: (f: F) => G,
|
||||
ef: (e: E) => F,
|
||||
de: (d: D) => E,
|
||||
cd: (c: C) => D,
|
||||
bc: (b: B) => C,
|
||||
ab: (a: A) => B
|
||||
): (a: A) => H
|
||||
declare export function compose<A, B, C, D, E, F, G, H, I>(
|
||||
hi: (h: H) => I,
|
||||
gh: (g: G) => H,
|
||||
fg: (f: F) => G,
|
||||
ef: (e: E) => F,
|
||||
de: (d: D) => E,
|
||||
cd: (c: C) => D,
|
||||
bc: (b: B) => C,
|
||||
ab: (a: A) => B
|
||||
): (a: A) => I
|
||||
|
||||
}
|
||||
declare export var compose: $Compose;
|
||||
}
|
|
@ -26,6 +26,7 @@
|
|||
"eslint-config-airbnb": "^15.1.0",
|
||||
"eslint-config-google": "^0.9.1",
|
||||
"eslint-config-prettier": "^2.3.0",
|
||||
"eslint-plugin-flowtype": "^2.39.1",
|
||||
"eslint-plugin-import": "^2.7.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.0.2",
|
||||
"eslint-plugin-prettier": "^2.1.2",
|
||||
|
@ -96,4 +97,4 @@
|
|||
"webpack-manifest-plugin": "^1.1.2",
|
||||
"webpack-merge": "^4.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2119,6 +2119,12 @@ eslint-module-utils@^2.1.1:
|
|||
debug "^2.6.8"
|
||||
pkg-dir "^1.0.0"
|
||||
|
||||
eslint-plugin-flowtype@^2.39.1:
|
||||
version "2.39.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz#b5624622a0388bcd969f4351131232dcb9649cd5"
|
||||
dependencies:
|
||||
lodash "^4.15.0"
|
||||
|
||||
eslint-plugin-import@^2.7.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f"
|
||||
|
@ -3711,7 +3717,7 @@ lodash.uniq@^4.5.0:
|
|||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
|
||||
|
||||
"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.4:
|
||||
"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.4:
|
||||
version "4.17.4"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
|
||||
|
||||
|
|
Loading…
Reference in a new issue