mushroom-cli 1.1.0-alpha.8 → 1.1.0-alpha.9

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.
@@ -30,9 +30,29 @@ function genJavascriptDriverString(aliasProject, source) {
30
30
 
31
31
  const entities = common.getEntities(source, aliasProject.allowRoles);
32
32
 
33
+ let extensionsImportLines = [];
34
+ let extensionsExportLines = [];
35
+ let extensionsCodeLines = [];
36
+
37
+ if (Array.isArray(aliasProject.features)) {
38
+ if (aliasProject.features.includes("auth")) {
39
+ extensionsImportLines.push('import * as AuthExtension from "mushroomjs-auth";');
40
+ extensionsExportLines.push('Auth: AuthExtension');
41
+ extensionsCodeLines.push("AuthExtension.useAuth(AuthExtension.AuthLocalStorage);");
42
+ }
43
+ if (aliasProject.features.includes("file")) {
44
+ extensionsImportLines.push('import * as FileExtension from "mushroomjs-file";');
45
+ extensionsExportLines.push('File: FileExtension');
46
+ extensionsCodeLines.push("FileExtension.useFile();");
47
+ }
48
+ }
49
+
33
50
  let code = `import mushroom, {defineAsyncResource} from "mushroomjs";
34
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("auth") ? 'import { useAuth, AuthLocalStorage } from "mushroomjs-auth";' : ""}
35
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("file") ? 'import { useFile } from "mushroomjs-file";' : ""}
51
+ export * from "mushroomjs";
52
+ ${extensionsImportLines.join("\n")}
53
+ export const extensions = {
54
+ ${extensionsExportLines.join(",\n ")}
55
+ };
36
56
 
37
57
  "use strict";
38
58
 
@@ -66,8 +86,7 @@ ${Array.isArray(aliasProject.features) && aliasProject.features.includes("file")
66
86
  code += `
67
87
  mushroom.$using(${JSON.stringify(common.getRootUrl(source))});
68
88
 
69
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("auth") ? "useAuth(AuthLocalStorage);" : ""}
70
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("auth") ? "useFile();" : ""}
89
+ ${extensionsCodeLines.join('\n')}
71
90
 
72
91
  export default mushroom;`;
73
92
 
@@ -104,10 +104,32 @@ function genTypescriptDriverString(aliasProject, source) {
104
104
 
105
105
  const entities = common.getEntities(source, aliasProject.allowRoles);
106
106
 
107
+ let extensionsImportLines = [];
108
+ let extensionsExportLines = [];
109
+ let extensionsTypes = [];
110
+ let extensionsCodeLines = [];
111
+
112
+ if (Array.isArray(aliasProject.features)) {
113
+ if (aliasProject.features.includes("auth")) {
114
+ extensionsImportLines.push('import * as AuthExtension from "mushroomjs-auth";');
115
+ extensionsExportLines.push('File: FileExtension');
116
+ extensionsTypes.push("AuthExtension.IMushroomAuth & ");
117
+ extensionsCodeLines.push("AuthExtension.useAuth(AuthExtension.AuthLocalStorage);");
118
+ }
119
+ if (aliasProject.features.includes("file")) {
120
+ extensionsImportLines.push('import * as FileExtension from "mushroomjs-file";');
121
+ extensionsExportLines.push('Auth: AuthExtension');
122
+ extensionsTypes.push("FileExtension.IMushroomFile & ");
123
+ extensionsCodeLines.push("FileExtension.useFile();");
124
+ }
125
+ }
126
+
107
127
  let code = `import mushroom, { defineAsyncResource, defineAsyncView, fireEvent, createRestfulAsyncFunction, IdType, IMushroom, Mushroom, MushroomRequest, MushroomRequestSetting, MushroomRestfulRequest, MushroomResponse, MushroomResourceBase, MushroomListResource, MushroomFindByIdResource, MushroomCreateResource, MushroomBatchCreateResource, MushroomUpdateResource, MushroomBatchUpdateResource, MushroomPartialUpdateResource, MushroomDeleteResource, MushroomBatchDeleteResource, MushroomExtensibleResource, MushroomViewFunction, MushroomError } from "mushroomjs";
108
- export { defineAsyncResource, defineAsyncView, fireEvent, createRestfulAsyncFunction, IdType, IMushroom, Mushroom, MushroomRequest, MushroomRequestSetting, MushroomRestfulRequest, MushroomResponse, MushroomResourceBase, MushroomListResource, MushroomFindByIdResource, MushroomCreateResource, MushroomBatchCreateResource, MushroomUpdateResource, MushroomBatchUpdateResource, MushroomPartialUpdateResource, MushroomDeleteResource, MushroomBatchDeleteResource, MushroomExtensibleResource, MushroomViewFunction, MushroomError } from "mushroomjs";
109
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("auth") ? 'import { IMushroomAuth, useAuth, AuthLocalStorage } from "mushroomjs-auth";\nexport { IMushroomAuth, AuthLocalStorage, useAuth, AuthSessionStorage, AuthStorage, AuthStorageConstructor, IAuthExtension, LogoutMode, NoAuthStorage } from "mushroomjs-auth";' : ""}
110
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("file") ? 'import { IMushroomFile, useFile } from "mushroomjs-file";\nexport { IMushroomFile, useFile, FileContentFormat, IFileExtension, ImageHorizontalAlign, ImageOutputFormat, ImageVerticalAlign } from "mushroomjs-file";' : ""}
128
+ export * from "mushroomjs";
129
+ ${extensionsImportLines.join("\n")}
130
+ export const extensions = {
131
+ ${extensionsExportLines.join(",\n ")}
132
+ };
111
133
 
112
134
  export type ISODateValue = string | Date;
113
135
  export type IdValue = ${source.idType == "AutoIncInt" || source.idType == "AutoIncLong" ? "number" : "string"};
@@ -231,14 +253,14 @@ ${customMethodCode}}
231
253
  }
232
254
 
233
255
  code += `
234
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("auth") ? "useAuth(AuthLocalStorage);" : ""}
235
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("auth") ? "useFile();" : ""}
236
256
  mushroom.$using(${JSON.stringify(common.getRootUrl(source))});
237
257
 
258
+ ${extensionsCodeLines.join('\n')}
259
+
238
260
  export interface IApi extends IMushroom {
239
261
  ${iApiClassBody}};
240
262
 
241
- export type Api = ${Array.isArray(aliasProject.features) && aliasProject.features.includes("auth") ? "IMushroomAuth & " : ""}${Array.isArray(aliasProject.features) && aliasProject.features.includes("file") ? "IMushroomFile & " : ""}IApi;
263
+ export type Api = ${extensionsTypes.join('')}IApi;
242
264
 
243
265
  export default mushroom as Api;`;
244
266
 
@@ -252,9 +274,29 @@ function genDtsString(aliasProject, source) {
252
274
 
253
275
  const entities = common.getEntities(source, aliasProject.allowRoles);
254
276
 
277
+ let extensionsImportLines = [];
278
+ let extensionsExportLines = [];
279
+ let extensionsTypes = [];
280
+
281
+ if (Array.isArray(aliasProject.features)) {
282
+ if (aliasProject.features.includes("auth")) {
283
+ extensionsImportLines.push('import * as AuthExtension from "mushroomjs-auth";');
284
+ extensionsExportLines.push('Auth: typeof AuthExtension');
285
+ extensionsTypes.push("AuthExtension.IMushroomAuth & ");
286
+ }
287
+ if (aliasProject.features.includes("file")) {
288
+ extensionsImportLines.push('import * as FileExtension from "mushroomjs-file";');
289
+ extensionsExportLines.push('File: typeof FileExtension');
290
+ extensionsTypes.push("FileExtension.IMushroomFile & ");
291
+ }
292
+ }
293
+
255
294
  let code = `import { IdType, IMushroom, Mushroom, MushroomRequest, MushroomRequestSetting, MushroomRestfulRequest, MushroomResponse, MushroomResourceBase, MushroomListResource, MushroomFindByIdResource, MushroomCreateResource, MushroomBatchCreateResource, MushroomUpdateResource, MushroomBatchUpdateResource, MushroomPartialUpdateResource, MushroomDeleteResource, MushroomBatchDeleteResource, MushroomExtensibleResource, MushroomViewFunction, MushroomError } from "mushroomjs";
256
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("auth") ? 'import { IMushroomAuth } from "mushroomjs-auth";' : ""}
257
- ${Array.isArray(aliasProject.features) && aliasProject.features.includes("file") ? 'import { IMushroomFile } from "mushroomjs-file";' : ""}
295
+ export * from "mushroomjs";
296
+ ${extensionsImportLines.join("\n")}
297
+ export declare const extensions = {
298
+ ${extensionsExportLines.join(",\n ")}
299
+ };
258
300
 
259
301
  export declare type ISODateValue = string | Date;
260
302
  export declare type IdValue = ${source.idType == "AutoIncInt" || source.idType == "AutoIncLong" ? "number" : "string"};
@@ -377,7 +419,7 @@ ${customMethodCode}}
377
419
  export interface IApi extends IMushroom {
378
420
  ${iApiClassBody}};
379
421
 
380
- declare type Api = ${Array.isArray(aliasProject.features) && aliasProject.features.includes("auth") ? "IMushroomAuth & " : ""}${Array.isArray(aliasProject.features) && aliasProject.features.includes("file") ? "IMushroomFile & " : ""}IApi;
422
+ declare type Api = ${extensionsTypes.join('')}IApi;
381
423
  declare const _default: Api;
382
424
  export default _default;`;
383
425
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mushroom-cli",
3
- "version": "1.1.0-alpha.8",
3
+ "version": "1.1.0-alpha.9",
4
4
  "description": "Mushroom CLI",
5
5
  "main": "mr.js",
6
6
  "scripts": {