@abgov/nx-adsp 5.8.0-beta.1 → 5.8.0-beta.3
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/package.json +1 -1
- package/src/generators/react-form/files/__fileName__/__fileName__.tsx__tmpl__ +1 -1
- package/src/generators/react-form/react-form.js +18 -8
- package/src/generators/react-form/react-form.js.map +1 -1
- package/src/generators/react-form/react-forms.spec.ts +12 -5
- package/src/utils/form.js +2 -0
- package/src/utils/form.js.map +1 -1
package/package.json
CHANGED
|
@@ -27,7 +27,7 @@ interface FieldSetProps {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
<% Object.entries(dataSchema.properties).forEach(function([sectionKey, section]) { %>
|
|
30
|
-
const <%=
|
|
30
|
+
const <%= section.className %>FieldSet: FunctionComponent<FieldSetProps> = ({
|
|
31
31
|
value,
|
|
32
32
|
errors,
|
|
33
33
|
onChange,
|
|
@@ -7,11 +7,12 @@ const axios_1 = require("axios");
|
|
|
7
7
|
const enquirer_1 = require("enquirer");
|
|
8
8
|
const path = require("path");
|
|
9
9
|
const form_1 = require("../../utils/form");
|
|
10
|
-
function getFormDefinition(
|
|
10
|
+
function getFormDefinition(configurationServiceUrl, token) {
|
|
11
11
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
const { data
|
|
12
|
+
const { data } = yield axios_1.default.get(new URL('configuration/v2/configuration/platform/form-service/latest', configurationServiceUrl).href, {
|
|
13
13
|
headers: { Authorization: `Bearer ${token}` },
|
|
14
14
|
});
|
|
15
|
+
const definitions = Object.values(data);
|
|
15
16
|
const choices = definitions
|
|
16
17
|
.filter((r) => !!r.dataSchema)
|
|
17
18
|
.map((r) => r.name)
|
|
@@ -49,20 +50,29 @@ function getFormDefinition(formServiceUrl, token) {
|
|
|
49
50
|
});
|
|
50
51
|
}
|
|
51
52
|
function normalizeOptions(host, options) {
|
|
53
|
+
var _a, _b;
|
|
52
54
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
55
|
const { env, accessToken } = options;
|
|
54
56
|
const projectName = (0, devkit_1.names)(options.project).fileName;
|
|
55
57
|
const projectRoot = `${(0, devkit_1.getWorkspaceLayout)(host).appsDir}/${projectName}`;
|
|
56
58
|
const environment = nx_oc_1.environments[env || 'prod'];
|
|
57
59
|
const urls = yield (0, nx_oc_1.getServiceUrls)(environment.directoryServiceUrl);
|
|
60
|
+
const tenantServiceUrl = urls['urn:ads:platform:tenant-service:v2'];
|
|
61
|
+
const formServiceUrl = urls['urn:ads:platform:form-service'];
|
|
62
|
+
const configurationServiceUrl = urls['urn:ads:platform:configuration-service'];
|
|
58
63
|
let tenantToken = accessToken;
|
|
59
64
|
if (!accessToken) {
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
|
|
65
|
+
const environmentFile = `${projectRoot}/src/environments/environment.ts`;
|
|
66
|
+
const result = (_a = host.read(environmentFile)) === null || _a === void 0 ? void 0 : _a.toString();
|
|
67
|
+
let realm = (_b = /realm: ('[a-zA-Z0-9-]{36}'),/.exec(result)) === null || _b === void 0 ? void 0 : _b[0];
|
|
68
|
+
if (!realm) {
|
|
69
|
+
const token = yield (0, nx_oc_1.realmLogin)(environment.accessServiceUrl, 'core');
|
|
70
|
+
const tenant = yield (0, nx_oc_1.selectTenant)(tenantServiceUrl, token);
|
|
71
|
+
realm = tenant.realm;
|
|
72
|
+
}
|
|
73
|
+
tenantToken = yield (0, nx_oc_1.realmLogin)(environment.accessServiceUrl, realm);
|
|
63
74
|
}
|
|
64
|
-
const
|
|
65
|
-
const formDefinition = yield getFormDefinition(formServiceUrl, tenantToken);
|
|
75
|
+
const formDefinition = yield getFormDefinition(configurationServiceUrl, tenantToken);
|
|
66
76
|
return Object.assign(Object.assign({}, options), { projectRoot,
|
|
67
77
|
formServiceUrl,
|
|
68
78
|
formDefinition });
|
|
@@ -73,7 +83,7 @@ function addFiles(host, options) {
|
|
|
73
83
|
const formNames = (0, devkit_1.names)(options.formDefinition.name);
|
|
74
84
|
const interfaceDefinition = yield (0, form_1.generateFormInterface)(options.formDefinition);
|
|
75
85
|
const templateOptions = Object.assign(Object.assign(Object.assign(Object.assign({}, options), options.formDefinition), formNames), { interfaceDefinition, tmpl: '' });
|
|
76
|
-
(0, devkit_1.generateFiles)(host, path.join(__dirname, 'files'), options.projectRoot
|
|
86
|
+
(0, devkit_1.generateFiles)(host, path.join(__dirname, 'files'), `${options.projectRoot}/src/app`, templateOptions);
|
|
77
87
|
});
|
|
78
88
|
}
|
|
79
89
|
function default_1(host, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-form.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/react-form/react-form.ts"],"names":[],"mappings":";;;AAAA,wCAKsB;AACtB,yCAMsB;AACtB,iCAA0B;AAC1B,uCAAkC;AAClC,6BAA6B;AAE7B,2CAAyE;AAEzE,SAAe,iBAAiB,CAC9B,
|
|
1
|
+
{"version":3,"file":"react-form.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/react-form/react-form.ts"],"names":[],"mappings":";;;AAAA,wCAKsB;AACtB,yCAMsB;AACtB,iCAA0B;AAC1B,uCAAkC;AAClC,6BAA6B;AAE7B,2CAAyE;AAEzE,SAAe,iBAAiB,CAC9B,uBAA+B,EAC/B,KAAa;;QAEb,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,IAAI,GAAG,CACL,6DAA6D,EAC7D,uBAAuB,CACxB,CAAC,IAAI,EACN;YACE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CACF,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,WAAW;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAM,EAAyB;YAClD,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,gEAAgE;YACzE,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC;QAE7E,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,EAAE;SACf,CAAC;QACF,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAChE,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC3B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACrC,OAAO,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACtD,UAAU,GAAG,IAAI,CAAC;aACnB;iBAAM;gBACL,KAAK,CAAC,SAAS,GAAG,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;aAC7C;QACH,CAAC,CACF,CAAC;QAEF,IAAI,UAAU,EAAE;YACd,cAAc,CAAC,UAAU,CAAC,UAAU,mBAClC,OAAO,IACH,cAAc,CAAC,UAAU,CAAC,UAAqB,CACpD,CAAC;SACH;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;CAAA;AAED,SAAe,gBAAgB,CAC7B,IAAU,EACV,OAAe;;;QAEf,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAErC,MAAM,WAAW,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;QACpD,MAAM,WAAW,GAAG,GAAG,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC;QAEzE,MAAM,WAAW,GAAG,oBAAY,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,IAAA,sBAAc,EAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC7D,MAAM,uBAAuB,GAC3B,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAEjD,IAAI,WAAW,GAAG,WAAW,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,eAAe,GAAG,GAAG,WAAW,kCAAkC,CAAC;YAEzE,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,0CAAE,QAAQ,EAAE,CAAC;YACtD,IAAI,KAAK,GAAG,MAAA,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,0CAAG,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,KAAK,GAAG,MAAM,IAAA,kBAAU,EAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;gBACrE,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAY,EAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;gBAC3D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;aACtB;YAED,WAAW,GAAG,MAAM,IAAA,kBAAU,EAAC,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SACrE;QAED,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAC5C,uBAAuB,EACvB,WAAW,CACZ,CAAC;QAEF,uCACK,OAAO,KACV,WAAW;YACX,cAAc;YACd,cAAc,IACd;;CACH;AAED,SAAe,QAAQ,CAAC,IAAU,EAAE,OAAyB;;QAC3D,MAAM,SAAS,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,mBAAmB,GAAG,MAAM,IAAA,4BAAqB,EACrD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,MAAM,eAAe,+DAChB,OAAO,GACP,OAAO,CAAC,cAAc,GACtB,SAAS,KACZ,mBAAmB,EACnB,IAAI,EAAE,EAAE,GACT,CAAC;QACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC7B,GAAG,OAAO,CAAC,WAAW,UAAU,EAChC,eAAe,CAChB,CAAC;IACJ,CAAC;CAAA;AAED,mBAA+B,IAAU,EAAE,OAAe;;QACxD,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAExC,OAAO,GAAG,EAAE;YACV,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;CAAA;AAPD,4BAOC"}
|
|
@@ -52,8 +52,9 @@ const formDefinition: FormDefinition = {
|
|
|
52
52
|
jest.mock('@abgov/nx-oc');
|
|
53
53
|
const utilsMock = utils as jest.Mocked<typeof utils>;
|
|
54
54
|
utilsMock.getServiceUrls.mockResolvedValue({
|
|
55
|
-
'urn:ads:platform:tenant-service': 'https://tenant-service',
|
|
55
|
+
'urn:ads:platform:tenant-service:v2': 'https://tenant-service/tenant/v2',
|
|
56
56
|
'urn:ads:platform:form-service': 'https://form-service',
|
|
57
|
+
'urn:ads:platform:configuration-service': 'https://configuration-service',
|
|
57
58
|
});
|
|
58
59
|
|
|
59
60
|
utilsMock.realmLogin.mockResolvedValue('token');
|
|
@@ -61,7 +62,9 @@ utilsMock.selectTenant.mockResolvedValue({ name: 'demo', realm: 'demo' });
|
|
|
61
62
|
|
|
62
63
|
jest.mock('axios');
|
|
63
64
|
const axiosMock = axios as jest.Mocked<typeof axios>;
|
|
64
|
-
axiosMock.get.mockResolvedValueOnce({
|
|
65
|
+
axiosMock.get.mockResolvedValueOnce({
|
|
66
|
+
data: { 'some-intake': formDefinition },
|
|
67
|
+
});
|
|
65
68
|
|
|
66
69
|
jest.mock('enquirer', () => ({ prompt: jest.fn() }));
|
|
67
70
|
const promptMock = prompt as jest.Mock;
|
|
@@ -87,8 +90,12 @@ describe('React Form Generator', () => {
|
|
|
87
90
|
});
|
|
88
91
|
|
|
89
92
|
await generator(host, options);
|
|
90
|
-
expect(host.exists('apps/test/some-intake/some-intake.tsx')).toBeTruthy();
|
|
91
|
-
expect(
|
|
92
|
-
|
|
93
|
+
expect(host.exists('apps/test/src/app/some-intake/some-intake.tsx')).toBeTruthy();
|
|
94
|
+
expect(
|
|
95
|
+
host.exists('apps/test/src/app/some-intake/some-intake.slice.ts')
|
|
96
|
+
).toBeTruthy();
|
|
97
|
+
expect(
|
|
98
|
+
host.exists('apps/test/src/app/some-intake/some-intake.module.css')
|
|
99
|
+
).toBeTruthy();
|
|
93
100
|
}, 30000);
|
|
94
101
|
});
|
package/src/utils/form.js
CHANGED
|
@@ -7,6 +7,8 @@ function generateFormInterface({ name, dataSchema, }) {
|
|
|
7
7
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
8
8
|
const types = yield (0, json_schema_to_typescript_1.compile)(dataSchema, name, {
|
|
9
9
|
additionalProperties: false,
|
|
10
|
+
bannerComment: '',
|
|
11
|
+
format: false,
|
|
10
12
|
});
|
|
11
13
|
return types;
|
|
12
14
|
});
|
package/src/utils/form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/form.ts"],"names":[],"mappings":";;;;AAAA,yEAAoD;AAOpD,SAAsB,qBAAqB,CAAC,EAC1C,IAAI,EACJ,UAAU,GACK;;QACf,MAAM,KAAK,GAAG,MAAM,IAAA,mCAAO,EAAC,UAAU,EAAE,IAAI,EAAE;YAC5C,oBAAoB,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/form.ts"],"names":[],"mappings":";;;;AAAA,yEAAoD;AAOpD,SAAsB,qBAAqB,CAAC,EAC1C,IAAI,EACJ,UAAU,GACK;;QACf,MAAM,KAAK,GAAG,MAAM,IAAA,mCAAO,EAAC,UAAU,EAAE,IAAI,EAAE;YAC5C,oBAAoB,EAAE,KAAK;YAC3B,aAAa,EAAE,EAAE;YACjB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AAXD,sDAWC"}
|