relay-forms-nodeps 1.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.
Files changed (96) hide show
  1. package/.babelrc.js +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +124 -0
  4. package/lib/RelayFormsTypes.d.ts +37 -0
  5. package/lib/RelayFormsTypes.js +5 -0
  6. package/lib/Utils.d.ts +11 -0
  7. package/lib/Utils.js +87 -0
  8. package/lib/es/RelayFormsTypes.d.ts +37 -0
  9. package/lib/es/RelayFormsTypes.js +0 -0
  10. package/lib/es/Utils.d.ts +11 -0
  11. package/lib/es/Utils.js +81 -0
  12. package/lib/es/index.d.ts +9 -0
  13. package/lib/es/index.js +7 -0
  14. package/lib/es/relay/RelayModernRecord.d.ts +107 -0
  15. package/lib/es/relay/RelayModernRecord.js +183 -0
  16. package/lib/es/relay/RelayModernSelector.d.ts +11 -0
  17. package/lib/es/relay/RelayModernSelector.js +29 -0
  18. package/lib/es/relay/RelayModernStore.d.ts +51 -0
  19. package/lib/es/relay/RelayModernStore.js +355 -0
  20. package/lib/es/relay/RelayReader.d.ts +14 -0
  21. package/lib/es/relay/RelayReader.js +86 -0
  22. package/lib/es/relay/RelayRecordProxy.d.ts +28 -0
  23. package/lib/es/relay/RelayRecordProxy.js +57 -0
  24. package/lib/es/relay/RelayRecordSource.d.ts +28 -0
  25. package/lib/es/relay/RelayRecordSource.js +70 -0
  26. package/lib/es/relay/RelayRecordSourceMutator.d.ts +36 -0
  27. package/lib/es/relay/RelayRecordSourceMutator.js +75 -0
  28. package/lib/es/relay/RelayRecordSourceProxy.d.ts +25 -0
  29. package/lib/es/relay/RelayRecordSourceProxy.js +52 -0
  30. package/lib/es/relay/RelayReferenceMarker.d.ts +10 -0
  31. package/lib/es/relay/RelayReferenceMarker.js +54 -0
  32. package/lib/es/relay/RelayStoreProvider.d.ts +7 -0
  33. package/lib/es/relay/RelayStoreProvider.js +16 -0
  34. package/lib/es/relay/RelayStoreUtils.d.ts +51 -0
  35. package/lib/es/relay/RelayStoreUtils.js +199 -0
  36. package/lib/es/relay/RelayTypes.d.ts +92 -0
  37. package/lib/es/relay/RelayTypes.js +0 -0
  38. package/lib/es/relay/queries.d.ts +86 -0
  39. package/lib/es/relay/queries.js +68 -0
  40. package/lib/es/useForceUpdate.d.ts +1 -0
  41. package/lib/es/useForceUpdate.js +8 -0
  42. package/lib/es/useFormSetValue.d.ts +2 -0
  43. package/lib/es/useFormSetValue.js +84 -0
  44. package/lib/es/useFormState.d.ts +2 -0
  45. package/lib/es/useFormState.js +49 -0
  46. package/lib/es/useFormSubmit.d.ts +2 -0
  47. package/lib/es/useFormSubmit.js +105 -0
  48. package/lib/es/useFormValue.d.ts +2 -0
  49. package/lib/es/useFormValue.js +19 -0
  50. package/lib/index.d.ts +9 -0
  51. package/lib/index.js +20 -0
  52. package/lib/relay/RelayModernRecord.d.ts +107 -0
  53. package/lib/relay/RelayModernRecord.js +188 -0
  54. package/lib/relay/RelayModernSelector.d.ts +11 -0
  55. package/lib/relay/RelayModernSelector.js +36 -0
  56. package/lib/relay/RelayModernStore.d.ts +51 -0
  57. package/lib/relay/RelayModernStore.js +359 -0
  58. package/lib/relay/RelayReader.d.ts +14 -0
  59. package/lib/relay/RelayReader.js +92 -0
  60. package/lib/relay/RelayRecordProxy.d.ts +28 -0
  61. package/lib/relay/RelayRecordProxy.js +60 -0
  62. package/lib/relay/RelayRecordSource.d.ts +28 -0
  63. package/lib/relay/RelayRecordSource.js +75 -0
  64. package/lib/relay/RelayRecordSourceMutator.d.ts +36 -0
  65. package/lib/relay/RelayRecordSourceMutator.js +80 -0
  66. package/lib/relay/RelayRecordSourceProxy.d.ts +25 -0
  67. package/lib/relay/RelayRecordSourceProxy.js +57 -0
  68. package/lib/relay/RelayReferenceMarker.d.ts +10 -0
  69. package/lib/relay/RelayReferenceMarker.js +60 -0
  70. package/lib/relay/RelayStoreProvider.d.ts +7 -0
  71. package/lib/relay/RelayStoreProvider.js +22 -0
  72. package/lib/relay/RelayStoreUtils.d.ts +51 -0
  73. package/lib/relay/RelayStoreUtils.js +208 -0
  74. package/lib/relay/RelayTypes.d.ts +92 -0
  75. package/lib/relay/RelayTypes.js +5 -0
  76. package/lib/relay/queries.d.ts +86 -0
  77. package/lib/relay/queries.js +73 -0
  78. package/lib/umd/relay-forms-nodeps.js +1478 -0
  79. package/lib/umd/relay-forms-nodeps.js.map +1 -0
  80. package/lib/umd/relay-forms-nodeps.min.js +2 -0
  81. package/lib/umd/relay-forms-nodeps.min.js.map +1 -0
  82. package/lib/useForceUpdate.d.ts +1 -0
  83. package/lib/useForceUpdate.js +14 -0
  84. package/lib/useFormSetValue.d.ts +2 -0
  85. package/lib/useFormSetValue.js +90 -0
  86. package/lib/useFormState.d.ts +2 -0
  87. package/lib/useFormState.js +54 -0
  88. package/lib/useFormSubmit.d.ts +2 -0
  89. package/lib/useFormSubmit.js +110 -0
  90. package/lib/useFormValue.d.ts +2 -0
  91. package/lib/useFormValue.js +25 -0
  92. package/package.json +89 -0
  93. package/replace.config.js +5 -0
  94. package/rollup.config.js +92 -0
  95. package/tsconfig.esm.json +7 -0
  96. package/yarn-error.log +127 -0
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var react_1 = require("react");
7
+ function useForceUpdate() {
8
+ var _a = react_1.useReducer(function (x) {
9
+ return x + 1;
10
+ }, 0),
11
+ forceUpdate = _a[1];
12
+ return forceUpdate;
13
+ }
14
+ exports.useForceUpdate = useForceUpdate;
@@ -0,0 +1,2 @@
1
+ import { FormSetValueOptions, FormSetValueReturn } from './RelayFormsTypes';
2
+ export declare function useFormSetValue<ValueType>({ key, initialValue, validate, validateOnChange, }: FormSetValueOptions<ValueType>): FormSetValueReturn<ValueType>;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var React = require("react");
7
+ var queries_1 = require("./relay/queries");
8
+ var RelayStoreProvider_1 = require("./relay/RelayStoreProvider");
9
+ var RelayStoreUtils_1 = require("./relay/RelayStoreUtils");
10
+ var useForceUpdate_1 = require("./useForceUpdate");
11
+ var Utils_1 = require("./Utils");
12
+ function useFormSetValue(_a) {
13
+ var key = _a.key,
14
+ initialValue = _a.initialValue,
15
+ validate = _a.validate,
16
+ validateOnChange = _a.validateOnChange;
17
+ var forceUpdate = useForceUpdate_1.useForceUpdate();
18
+ var environment = RelayStoreProvider_1.useStore();
19
+ var ref = React.useRef({
20
+ value: initialValue,
21
+ error: undefined,
22
+ check: validate ? 'INIT' : 'DONE',
23
+ isChecking: false
24
+ });
25
+ var setValue = React.useCallback(function (newValue) {
26
+ ref.current.value = newValue;
27
+ if (ref.current.check === 'DONE' && validate) {
28
+ ref.current.check = 'START';
29
+ }
30
+ Utils_1.commitValue(key, newValue, ref.current.check, environment);
31
+ forceUpdate();
32
+ }, [environment, key, validate, forceUpdate]);
33
+ React.useEffect(function () {
34
+ //commitResetField(environment, key);
35
+ Utils_1.commitValue(key, initialValue, ref.current.check, environment);
36
+ var snapshot = Utils_1.getSnapshot(environment, queries_1.FragmentSet, key);
37
+ var disposeSubscrition = environment.subscribe(snapshot, function (s) {
38
+ var check = s.data.check;
39
+ var isStart = check === 'START';
40
+ var isReset = check === 'RESET';
41
+ ref.current.check = check;
42
+ if (isReset) {
43
+ ref.current.check = validate ? 'INIT' : 'DONE';
44
+ setValue(initialValue);
45
+ } else {
46
+ if (!validate) {
47
+ Utils_1.commitErrorIntoRelay(key, undefined, environment);
48
+ return;
49
+ }
50
+ if (isStart && !ref.current.isChecking) {
51
+ internalValidate(ref.current.value);
52
+ }
53
+ }
54
+ }).dispose;
55
+ var dispose = function () {
56
+ disposeSubscrition();
57
+ Utils_1.commitResetField(environment, key);
58
+ };
59
+ function finalizeCheck(error) {
60
+ ref.current.isChecking = false;
61
+ if (ref.current.error !== error) {
62
+ ref.current.error = error;
63
+ forceUpdate();
64
+ }
65
+ Utils_1.commitErrorIntoRelay(key, error, environment);
66
+ }
67
+ function internalValidate(value) {
68
+ ref.current.isChecking = true;
69
+ var result = validate(value);
70
+ function internalFinalize(error) {
71
+ if (value !== ref.current.value) {
72
+ internalValidate(ref.current.value);
73
+ return;
74
+ }
75
+ finalizeCheck(error);
76
+ }
77
+ if (RelayStoreUtils_1.isPromise(result)) {
78
+ result.then(internalFinalize).catch(internalFinalize);
79
+ } else {
80
+ internalFinalize(result);
81
+ }
82
+ }
83
+ if (validateOnChange) {
84
+ internalValidate(initialValue);
85
+ }
86
+ return dispose;
87
+ }, [environment, initialValue, key, setValue, validate, validateOnChange, forceUpdate]);
88
+ return [ref.current, setValue];
89
+ }
90
+ exports.useFormSetValue = useFormSetValue;
@@ -0,0 +1,2 @@
1
+ import { FormStateReturn } from './RelayFormsTypes';
2
+ export declare const useFormState: () => FormStateReturn;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var React = require("react");
7
+ var RelayStoreProvider_1 = require("./relay/RelayStoreProvider");
8
+ var RelayStoreUtils_1 = require("./relay/RelayStoreUtils");
9
+ var useForceUpdate_1 = require("./useForceUpdate");
10
+ var Utils_1 = require("./Utils");
11
+ exports.useFormState = function () {
12
+ var ref = React.useRef({
13
+ errors: undefined,
14
+ isValidating: false,
15
+ isSubmitting: false,
16
+ isValid: false
17
+ });
18
+ var forceUpdate = useForceUpdate_1.useForceUpdate();
19
+ var environment = RelayStoreProvider_1.useStore();
20
+ React.useEffect(function () {
21
+ function checkError(s) {
22
+ var data = s.data;
23
+ var form = data.form;
24
+ var entries = form.entries;
25
+ var current = ref.current;
26
+ var entryErrors = entries.filter(function (value) {
27
+ return !!value.error;
28
+ });
29
+ var entryValidated = entries.filter(function (value) {
30
+ return value.check === 'DONE';
31
+ });
32
+ var errors = entryErrors.length > 0 ? entryErrors : undefined;
33
+ var isValidating = form.isValidating;
34
+ var isSubmitting = form.isSubmitting;
35
+ var isValid = entries.length === entryValidated.length && (!errors || Object.keys(errors).length === 0);
36
+ var newState = {
37
+ errors: errors,
38
+ isValid: isValid,
39
+ isValidating: isValidating,
40
+ isSubmitting: isSubmitting
41
+ };
42
+ if (!RelayStoreUtils_1.areEqual(current, newState)) {
43
+ ref.current = newState;
44
+ forceUpdate();
45
+ }
46
+ }
47
+ var snapshot = environment.lookup(Utils_1.operationQueryErrorsForm.fragment);
48
+ checkError(snapshot);
49
+ return environment.subscribe(snapshot, function (s) {
50
+ checkError(s);
51
+ }).dispose;
52
+ }, [environment, forceUpdate]);
53
+ return ref.current;
54
+ };
@@ -0,0 +1,2 @@
1
+ import { FormSubmitOptions, FormSubmitReturn } from './RelayFormsTypes';
2
+ export declare const useFormSubmit: <ValueType extends object = object>({ onSubmit, }: FormSubmitOptions<ValueType>) => FormSubmitReturn;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var React = require("react");
7
+ var RelayStoreProvider_1 = require("./relay/RelayStoreProvider");
8
+ var RelayStoreUtils_1 = require("./relay/RelayStoreUtils");
9
+ var Utils_1 = require("./Utils");
10
+ exports.useFormSubmit = function (_a) {
11
+ var onSubmit = _a.onSubmit;
12
+ var environment = RelayStoreProvider_1.useStore();
13
+ React.useEffect(function () {
14
+ return environment.retain(Utils_1.operationQueryForm).dispose;
15
+ }, [environment]);
16
+ var ref = React.useRef({
17
+ isSubmitting: false,
18
+ isValidating: false,
19
+ error: undefined,
20
+ subscription: undefined
21
+ });
22
+ var internalValidate = React.useCallback(function (snapshot, isSubmitting) {
23
+ ref.current.isValidating = true;
24
+ var data = snapshot.data;
25
+ var filtered = data.form.entries.filter(function (value) {
26
+ return value.check === 'INIT';
27
+ });
28
+ Utils_1.commitValidateIntoRelay(filtered, isSubmitting, environment);
29
+ }, [environment]);
30
+ var execute = React.useCallback(function (environment, snapshot, dispose, onSubmit) {
31
+ var data = snapshot.data;
32
+ var entries = data.form.entries;
33
+ var filtered = entries.filter(function (value) {
34
+ return value.check === 'DONE';
35
+ });
36
+ if (filtered.length === entries.length) {
37
+ var errors = entries.filter(function (value) {
38
+ return !!value.error;
39
+ });
40
+ Utils_1.commitValidateEndRelay(environment);
41
+ ref.current.isValidating = false;
42
+ var internalDispose = function () {
43
+ dispose();
44
+ if (ref.current.isSubmitting) {
45
+ ref.current.isSubmitting = false;
46
+ Utils_1.commitSubmitEndRelay(environment);
47
+ }
48
+ };
49
+ if (ref.current.isSubmitting && onSubmit && errors.length === 0) {
50
+ var result_1 = {};
51
+ entries.forEach(function (entry) {
52
+ result_1[entry.key] = entry.value;
53
+ });
54
+ var submit_1 = onSubmit(result_1);
55
+ if (RelayStoreUtils_1.isPromise(submit_1)) {
56
+ submit_1.then(internalDispose).catch(internalDispose);
57
+ return;
58
+ }
59
+ }
60
+ internalDispose();
61
+ }
62
+ }, []);
63
+ var reset = React.useCallback(function () {
64
+ var snapshot = environment.lookup(Utils_1.operationQueryForm.fragment);
65
+ if (ref.current.isValidating && ref.current.isSubmitting) {
66
+ return;
67
+ }
68
+ var data = snapshot.data;
69
+ Utils_1.commitResetIntoRelay(data.form.entries, environment);
70
+ }, [environment]);
71
+ var subscribe = React.useCallback(function (submit) {
72
+ if (submit === void 0) {
73
+ submit = false;
74
+ }
75
+ var snapshot = environment.lookup(Utils_1.operationQueryForm.fragment);
76
+ var subscription = ref.current.subscription;
77
+ subscription && subscription.dispose();
78
+ function dispose() {
79
+ subscription && subscription.dispose();
80
+ ref.current.subscription = null;
81
+ }
82
+ ref.current.subscription = environment.subscribe(snapshot, function (s) {
83
+ return execute(environment, s, dispose, onSubmit);
84
+ });
85
+ internalValidate(snapshot, submit);
86
+ execute(environment, snapshot, dispose, onSubmit);
87
+ }, [environment, internalValidate, execute, onSubmit]);
88
+ var validate = React.useCallback(function () {
89
+ if (!ref.current.isValidating) {
90
+ subscribe(false);
91
+ }
92
+ }, [subscribe]);
93
+ var submit = React.useCallback(function (event) {
94
+ if (event) {
95
+ event.preventDefault();
96
+ }
97
+ if (!ref.current.isSubmitting) {
98
+ ref.current.isSubmitting = true;
99
+ subscribe(true);
100
+ }
101
+ }, [subscribe]);
102
+ var result = React.useMemo(function () {
103
+ return {
104
+ submit: submit,
105
+ validate: validate,
106
+ reset: reset
107
+ };
108
+ }, [submit, validate, reset]);
109
+ return result;
110
+ };
@@ -0,0 +1,2 @@
1
+ import { FormValueStateReturn } from './RelayFormsTypes';
2
+ export declare function useFormValue<ValueType>(key: string): FormValueStateReturn<ValueType>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var React = require("react");
7
+ var queries_1 = require("./relay/queries");
8
+ var RelayStoreProvider_1 = require("./relay/RelayStoreProvider");
9
+ var Utils_1 = require("./Utils");
10
+ function useFormValue(key) {
11
+ var environment = RelayStoreProvider_1.useStore();
12
+ var snapshot = React.useMemo(function () {
13
+ return Utils_1.getSnapshot(environment, queries_1.FragmentValue, key);
14
+ }, [key, environment]);
15
+ var _a = React.useState(snapshot.data),
16
+ data = _a[0],
17
+ setData = _a[1];
18
+ React.useEffect(function () {
19
+ return environment.subscribe(snapshot, function (s) {
20
+ setData(s.data);
21
+ }).dispose;
22
+ }, [environment, snapshot, setData]);
23
+ return data;
24
+ }
25
+ exports.useFormValue = useFormValue;
package/package.json ADDED
@@ -0,0 +1,89 @@
1
+ {
2
+ "name": "relay-forms-nodeps",
3
+ "version": "1.0.0",
4
+ "keywords": [
5
+ "forms",
6
+ "relay",
7
+ "hooks",
8
+ "react",
9
+ "react-native",
10
+ "validation"
11
+ ],
12
+ "main": "lib/index.js",
13
+ "module": "./lib/es/index.js",
14
+ "unpkg": "lib/umd/relay-forms-nodeps.min.js",
15
+ "license": "MIT",
16
+ "description": "Relay Forms Without Deps",
17
+ "author": {
18
+ "name": "morrys"
19
+ },
20
+ "homepage": "https://morrys.github.io/relay-forms/docs/relay-forms.html",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://github.com/morrys/relay-forms"
24
+ },
25
+ "scripts": {
26
+ "clean": "rimraf lib",
27
+ "relay": "relay-compiler --src ./compile/ --schema ./forms.graphql --language typescript --artifactDirectory ./src/relay --persist-output ./ignore-queries.json",
28
+ "compile": "npm run clean && tsc && tsc --project tsconfig.esm.json && npm run build:js && npm run build:replace && npm run rollup",
29
+ "build": "npm run compile && npm run test",
30
+ "fast:test": "npm run clean && tsc && npm run test",
31
+ "test": "cross-env NODE_ENV=test jest --coverage",
32
+ "format": "prettier --write \"src/**/*.ts*\" \"!src/relay/**/*.ts\"",
33
+ "format:ci": "prettier --list-different \"src/**/*.ts*\" \"!src/relay/**/*.ts\"",
34
+ "eslint": "eslint ./src --ext .js,.jsx,.ts,.tsx",
35
+ "prepublishOnly": "npm run build",
36
+ "build:js": "babel lib --out-dir lib --extensions \".js,.jsx\" && babel lib/es --out-dir lib/es --extensions \".js,.jsx\"",
37
+ "build:replace": "replace-in-file --configFile=replace.config.js",
38
+ "rollup": "rollup -c"
39
+ },
40
+ "peerDependencies": {
41
+ "react": "^16.9.0 || ^17 || ^18"
42
+ },
43
+ "devDependencies": {
44
+ "@babel/cli": "^7.8.3",
45
+ "@babel/runtime": "7.20.7",
46
+ "babel-preset-fbjs": "^3.3.0",
47
+ "@types/babel__traverse": "7.18.2",
48
+ "cross-env": "6.0.3",
49
+ "typescript": "3.8.3",
50
+ "react": "^18.0.0",
51
+ "react-dom": "^18.0.0",
52
+ "graphql": "^14.2.0",
53
+ "@types/react": "18.0.26",
54
+ "@types/react-dom": "18.0.10",
55
+ "relay-compiler": "^14.0.0",
56
+ "replace-in-file": "6.2.0",
57
+ "react-test-renderer": "^18.0.0",
58
+ "relay-test-utils": "^14.0.0",
59
+ "relay-test-utils-internal": "^14.0.0",
60
+ "@types/jest": "24.0.18",
61
+ "ts-jest": "^26.5.6",
62
+ "jest": "^26.0.0",
63
+ "promise-polyfill": "6.1.0",
64
+ "@typescript-eslint/eslint-plugin": "2.25.0",
65
+ "@typescript-eslint/parser": "2.25.0",
66
+ "eslint": "6.8.0",
67
+ "eslint-config-prettier": "6.10.1",
68
+ "eslint-import-resolver-typescript": "2.0.0",
69
+ "eslint-plugin-import": "2.20.1",
70
+ "eslint-plugin-json": "2.1.1",
71
+ "eslint-plugin-jsx-a11y": "6.2.3",
72
+ "eslint-plugin-prettier": "3.1.2",
73
+ "eslint-plugin-react": "7.19.0",
74
+ "eslint-plugin-react-hooks": "3.0.0",
75
+ "prettier": "1.19.1",
76
+ "rimraf": "^2.5.4",
77
+ "@types/node": "13.9.3",
78
+ "relay-compiler-language-typescript": "12.0.0",
79
+ "@testing-library/react": "13.4.0",
80
+ "rollup": "^2.23.0",
81
+ "rollup-plugin-sourcemaps": "0.6.2",
82
+ "rollup-plugin-terser": "^6.1.0",
83
+ "rollup-plugin-typescript2": "^0.27.1",
84
+ "@rollup/plugin-commonjs": "14.0.0",
85
+ "@rollup/plugin-node-resolve": "^8.4.0",
86
+ "@rollup/plugin-replace": "^2.3.3",
87
+ "@rollup/plugin-babel": "5.2.2"
88
+ }
89
+ }
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ files: 'lib/**/*.*',
3
+ from: /import \* as /g,
4
+ to: 'import ',
5
+ };
@@ -0,0 +1,92 @@
1
+ /* eslint-disable @typescript-eslint/explicit-function-return-type */
2
+ /* eslint-disable @typescript-eslint/camelcase */
3
+ /* eslint-disable import/no-default-export */
4
+ import babel from '@rollup/plugin-babel';
5
+ import commonjs from '@rollup/plugin-commonjs';
6
+ import nodeResolve from '@rollup/plugin-node-resolve';
7
+ import replace from '@rollup/plugin-replace';
8
+ import sourceMaps from 'rollup-plugin-sourcemaps';
9
+ import { terser } from 'rollup-plugin-terser';
10
+ import typescript from 'rollup-plugin-typescript2';
11
+ import pkg from './package.json';
12
+
13
+ const makeExternalPredicate = (externalArr) => {
14
+ if (externalArr.length === 0) {
15
+ return () => false;
16
+ }
17
+ const pattern = new RegExp(`^(${externalArr.join('|')})($|/)`);
18
+ return (id) => pattern.test(id);
19
+ };
20
+
21
+ const extensions = ['.ts', '.tsx'];
22
+
23
+ function createConfigInternal({ format, production }) {
24
+ return {
25
+ input: 'src/index.ts',
26
+ output: {
27
+ file: 'lib/' + format + '/relay-forms-nodeps' + (production ? '.min' : '') + '.js',
28
+ format,
29
+ name: 'relay-forms-nodeps',
30
+ indent: false,
31
+ globals: {
32
+ react: 'React',
33
+ },
34
+ sourcemap: true,
35
+ exports: 'named',
36
+ },
37
+ external: makeExternalPredicate([
38
+ ...Object.keys(pkg.dependencies || {}),
39
+ ...Object.keys(pkg.peerDependencies || {}),
40
+ ]),
41
+ plugins: [
42
+ nodeResolve({
43
+ extensions,
44
+ }),
45
+ replace({
46
+ 'import * as ': 'import ',
47
+ }),
48
+ typescript({
49
+ tsconfigOverride: {
50
+ compilerOptions: {
51
+ declaration: false,
52
+ declarationMap: false,
53
+ module: 'es2015',
54
+ esModuleInterop: true,
55
+ sourceMap: true,
56
+ importHelpers: false,
57
+ },
58
+ },
59
+ }),
60
+ format === 'umd' &&
61
+ commonjs({
62
+ include: /\/node_modules\//,
63
+ }),
64
+ babel({ extensions, include: ['src/**/*'], babelHelpers: 'bundled' }),
65
+ replace({
66
+ 'process.env.NODE_ENV': JSON.stringify(production ? 'production' : 'development'),
67
+ }),
68
+ sourceMaps(),
69
+ production &&
70
+ terser({
71
+ output: { comments: false },
72
+ compress: {
73
+ keep_infinity: true,
74
+ pure_getters: true,
75
+ passes: 10,
76
+ },
77
+ ecma: 5,
78
+ toplevel: format === 'cjs',
79
+ warnings: true,
80
+ }),
81
+ ],
82
+ };
83
+ }
84
+
85
+ function createConfig(format) {
86
+ return [
87
+ createConfigInternal({ format, production: false }),
88
+ createConfigInternal({ format, production: true }),
89
+ ];
90
+ }
91
+
92
+ export default [...createConfig('umd')];
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "module": "ESNext",
5
+ "outDir": "./lib/es"
6
+ },
7
+ }
package/yarn-error.log ADDED
@@ -0,0 +1,127 @@
1
+ Arguments:
2
+ C:\Program Files\nodejs\node.exe C:\Users\lorenzo.digiacomo\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js fast:test
3
+
4
+ PATH:
5
+ C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\app\lorenzo.digiacomo\product\11.2.0\client_1\bin;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files\nodejs\;C:\gradle-5.6.4\bin;C:\apache-maven-3.6.3\bin;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Git\cmd;C:\Program Files (x86)\NetSarang\Xshell 7\;C:\Program Files (x86)\NetSarang\Xftp 7\;C:\Program Files\TortoiseSVN\bin;C:\dev\flutter\bin;C:\Users\lorenzo.digiacomo\AppData\Local\Programs\Python\Python311\Scripts\;C:\Users\lorenzo.digiacomo\AppData\Local\Programs\Python\Python311\;C:\Users\lorenzo.digiacomo\AppData\Local\Microsoft\WindowsApps;C:\Users\lorenzo.digiacomo\AppData\Local\GitHubDesktop\bin;C:\Users\lorenzo.digiacomo\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\lorenzo.digiacomo\AppData\Roaming\npm;C:\dev\flutter\bin;
6
+
7
+ Yarn version:
8
+ 1.22.18
9
+
10
+ Node version:
11
+ 16.15.0
12
+
13
+ Platform:
14
+ win32 x64
15
+
16
+ Trace:
17
+ SyntaxError: C:\dev\GIT\TEMP\github\relay-forms\package.json: Unexpected string in JSON at position 991
18
+ at JSON.parse (<anonymous>)
19
+ at C:\Users\lorenzo.digiacomo\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:1625:59
20
+ at Generator.next (<anonymous>)
21
+ at step (C:\Users\lorenzo.digiacomo\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:310:30)
22
+ at C:\Users\lorenzo.digiacomo\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:321:13
23
+
24
+ npm manifest:
25
+ {
26
+ "name": "react-relay-forms",
27
+ "version": "1.0.1",
28
+ "keywords": [
29
+ "forms",
30
+ "relay",
31
+ "hooks",
32
+ "react",
33
+ "react-native",
34
+ "validation"
35
+ ],
36
+ "main": "lib/index.js",
37
+ "module": "./lib/es/index.js",
38
+ "unpkg": "lib/umd/react-relay-forms.min.js",
39
+ "license": "MIT",
40
+ "description": "React Relay Forms",
41
+ "author": {
42
+ "name": "morrys"
43
+ },
44
+ "homepage": "https://morrys.github.io/relay-forms/docs/relay-forms.html",
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "https://github.com/morrys/relay-forms"
48
+ },
49
+ "scripts": {
50
+ "clean": "rimraf lib",
51
+ "relay": "relay-compiler --src ./compile/ --schema ./forms.graphql --language typescript --artifactDirectory ./src/relay --persist-output ./ignore-queries.json",
52
+ "compile": "npm run clean && tsc && tsc --project tsconfig.esm.json && npm run build:js && npm run build:replace && npm run rollup",
53
+ "build": "npm run compile && npm run test",
54
+ "fast:test": "npm run clean && tsc && npm run test"
55
+ "test": "cross-env NODE_ENV=test jest --coverage -t \"do again validation\"",
56
+ "format": "prettier --write \"src/**/*.ts*\" \"!src/relay/**/*.ts\"",
57
+ "format:ci": "prettier --list-different \"src/**/*.ts*\" \"!src/relay/**/*.ts\"",
58
+ "eslint": "eslint ./src --ext .js,.jsx,.ts,.tsx",
59
+ "prepublishOnly": "npm run build",
60
+ "build:js": "babel lib --out-dir lib --extensions \".js,.jsx\" && babel lib/es --out-dir lib/es --extensions \".js,.jsx\"",
61
+ "build:replace": "replace-in-file --configFile=replace.config.js",
62
+ "rollup": "rollup -c"
63
+ },
64
+ "dependencies": {
65
+ "fbjs": "^1.0.0"
66
+ },
67
+ "peerDependencies": {
68
+ "react": "^16.9.0 || ^17 || ^18",
69
+ "relay-runtime": "^13.0.2 || ^14.0.0",
70
+ "react-relay": "^14.1.0"
71
+ },
72
+ "devDependencies": {
73
+ "@babel/cli": "^7.8.3",
74
+ "@babel/runtime": "7.20.7",
75
+ "babel-preset-fbjs": "^3.3.0",
76
+ "@types/babel__traverse": "7.18.2",
77
+ "cross-env": "6.0.3",
78
+ "typescript": "3.8.3",
79
+ "react": "^18.0.0",
80
+ "react-dom": "^18.0.0",
81
+ "graphql": "^14.2.0",
82
+ "@types/react": "18.0.26",
83
+ "@types/react-dom": "18.0.10",
84
+ "@types/relay-runtime": "^14.0.0",
85
+ "relay-runtime": "^14.0.0",
86
+ "relay-compiler": "^14.0.0",
87
+ "react-relay": "^14.1.0",
88
+ "replace-in-file": "6.2.0",
89
+ "react-test-renderer": "^18.0.0",
90
+ "relay-test-utils": "^14.0.0",
91
+ "relay-test-utils-internal": "^14.0.0",
92
+ "@types/jest": "24.0.18",
93
+ "ts-jest": "^26.5.6",
94
+ "jest": "^26.0.0",
95
+ "promise-polyfill": "6.1.0",
96
+ "@typescript-eslint/eslint-plugin": "2.25.0",
97
+ "@typescript-eslint/parser": "2.25.0",
98
+ "eslint": "6.8.0",
99
+ "eslint-config-prettier": "6.10.1",
100
+ "eslint-import-resolver-typescript": "2.0.0",
101
+ "eslint-plugin-import": "2.20.1",
102
+ "eslint-plugin-json": "2.1.1",
103
+ "eslint-plugin-jsx-a11y": "6.2.3",
104
+ "eslint-plugin-prettier": "3.1.2",
105
+ "eslint-plugin-react": "7.19.0",
106
+ "eslint-plugin-react-hooks": "3.0.0",
107
+ "prettier": "1.19.1",
108
+ "rimraf": "^2.5.4",
109
+ "@types/node": "13.9.3",
110
+ "relay-compiler-language-typescript": "12.0.0",
111
+ "@testing-library/react": "13.4.0",
112
+ "rollup": "^2.23.0",
113
+ "rollup-plugin-sourcemaps": "0.6.2",
114
+ "rollup-plugin-terser": "^6.1.0",
115
+ "rollup-plugin-typescript2": "^0.27.1",
116
+ "@rollup/plugin-commonjs": "14.0.0",
117
+ "@rollup/plugin-node-resolve": "^8.4.0",
118
+ "@rollup/plugin-replace": "^2.3.3",
119
+ "@rollup/plugin-babel": "5.2.2"
120
+ }
121
+ }
122
+
123
+ yarn manifest:
124
+ No manifest
125
+
126
+ Lockfile:
127
+ No lockfile