@teambit/schema 0.0.742 → 0.0.743

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.
@@ -1434,5 +1434,9 @@
1434
1434
  }
1435
1435
  }
1436
1436
  ]
1437
+ },
1438
+ "componentId": {
1439
+ "name": "button",
1440
+ "scope": "org.scope"
1437
1441
  }
1438
1442
  }
@@ -1,15 +1,17 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
2
  import { ComponentMain } from '@teambit/component';
3
+ import { Logger } from '@teambit/logger';
3
4
  import type { SchemaMain } from './schema.main.runtime';
4
5
  export declare class SchemaCommand implements Command {
5
6
  private schema;
6
7
  private component;
8
+ private logger;
7
9
  name: string;
8
10
  description: string;
9
11
  extendedDescription: string;
10
12
  group: string;
11
13
  options: CommandOptions;
12
- constructor(schema: SchemaMain, component: ComponentMain);
14
+ constructor(schema: SchemaMain, component: ComponentMain, logger: Logger);
13
15
  report([pattern]: [any]): Promise<string>;
14
16
  json([pattern]: [any]): Promise<Record<string, any>[]>;
15
17
  private getSchemas;
@@ -42,9 +42,10 @@ function _constants() {
42
42
  }
43
43
 
44
44
  class SchemaCommand {
45
- constructor(schema, component) {
45
+ constructor(schema, component, logger) {
46
46
  this.schema = schema;
47
47
  this.component = component;
48
+ this.logger = logger;
48
49
  (0, _defineProperty2().default)(this, "name", 'schema <pattern>');
49
50
  (0, _defineProperty2().default)(this, "description", 'shows the API schema of a certain component.');
50
51
  (0, _defineProperty2().default)(this, "extendedDescription", `${(0, _constants().PATTERN_HELP)('schema')}`);
@@ -66,7 +67,13 @@ class SchemaCommand {
66
67
  const host = this.component.getHost();
67
68
  const ids = await host.idsByPattern(pattern, true);
68
69
  const components = await host.getMany(ids);
69
- return (0, _pMapSeries().default)(components, component => this.schema.getSchema(component));
70
+ const longRunningLog = this.logger.createLongProcessLogger('generating schema', ids.length);
71
+ const results = await (0, _pMapSeries().default)(components, component => {
72
+ longRunningLog.logProgress(component.id.toString());
73
+ return this.schema.getSchema(component);
74
+ });
75
+ longRunningLog.end();
76
+ return results;
70
77
  }
71
78
 
72
79
  }
@@ -1 +1 @@
1
- {"version":3,"names":["SchemaCommand","constructor","schema","component","PATTERN_HELP","report","pattern","schemas","getSchemas","map","toStringPerType","join","json","toObject","host","getHost","ids","idsByPattern","components","getMany","pMapSeries","getSchema"],"sources":["schema.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { ComponentMain } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { APISchema } from '@teambit/semantics.entities.semantic-schema';\nimport { PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport type { SchemaMain } from './schema.main.runtime';\n\nexport class SchemaCommand implements Command {\n name = 'schema <pattern>';\n description = 'shows the API schema of a certain component.';\n extendedDescription = `${PATTERN_HELP('schema')}`;\n group = 'component';\n options = [['j', 'json', 'return the component data in json format']] as CommandOptions;\n\n constructor(private schema: SchemaMain, private component: ComponentMain) {}\n\n async report([pattern]) {\n const schemas = await this.getSchemas([pattern]);\n return schemas.map((schema) => schema.toStringPerType()).join('\\n\\n\\n');\n }\n\n async json([pattern]) {\n const schemas = await this.getSchemas([pattern]);\n return schemas.map((schema) => schema.toObject());\n }\n\n private async getSchemas([pattern]): Promise<APISchema[]> {\n const host = this.component.getHost();\n const ids = await host.idsByPattern(pattern, true);\n const components = await host.getMany(ids);\n return pMapSeries(components, (component) => this.schema.getSchema(component));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,aAAN,CAAuC;EAO5CC,WAAW,CAASC,MAAT,EAAqCC,SAArC,EAA+D;IAAA,KAAtDD,MAAsD,GAAtDA,MAAsD;IAAA,KAA1BC,SAA0B,GAA1BA,SAA0B;IAAA,8CANnE,kBAMmE;IAAA,qDAL5D,8CAK4D;IAAA,6DAJnD,GAAE,IAAAC,yBAAA,EAAa,QAAb,CAAuB,EAI0B;IAAA,+CAHlE,WAGkE;IAAA,iDAFhE,CAAC,CAAC,GAAD,EAAM,MAAN,EAAc,0CAAd,CAAD,CAEgE;EAAE;;EAEhE,MAANC,MAAM,CAAC,CAACC,OAAD,CAAD,EAAY;IACtB,MAAMC,OAAO,GAAG,MAAM,KAAKC,UAAL,CAAgB,CAACF,OAAD,CAAhB,CAAtB;IACA,OAAOC,OAAO,CAACE,GAAR,CAAaP,MAAD,IAAYA,MAAM,CAACQ,eAAP,EAAxB,EAAkDC,IAAlD,CAAuD,QAAvD,CAAP;EACD;;EAES,MAAJC,IAAI,CAAC,CAACN,OAAD,CAAD,EAAY;IACpB,MAAMC,OAAO,GAAG,MAAM,KAAKC,UAAL,CAAgB,CAACF,OAAD,CAAhB,CAAtB;IACA,OAAOC,OAAO,CAACE,GAAR,CAAaP,MAAD,IAAYA,MAAM,CAACW,QAAP,EAAxB,CAAP;EACD;;EAEuB,MAAVL,UAAU,CAAC,CAACF,OAAD,CAAD,EAAkC;IACxD,MAAMQ,IAAI,GAAG,KAAKX,SAAL,CAAeY,OAAf,EAAb;IACA,MAAMC,GAAG,GAAG,MAAMF,IAAI,CAACG,YAAL,CAAkBX,OAAlB,EAA2B,IAA3B,CAAlB;IACA,MAAMY,UAAU,GAAG,MAAMJ,IAAI,CAACK,OAAL,CAAaH,GAAb,CAAzB;IACA,OAAO,IAAAI,qBAAA,EAAWF,UAAX,EAAwBf,SAAD,IAAe,KAAKD,MAAL,CAAYmB,SAAZ,CAAsBlB,SAAtB,CAAtC,CAAP;EACD;;AAxB2C"}
1
+ {"version":3,"names":["SchemaCommand","constructor","schema","component","logger","PATTERN_HELP","report","pattern","schemas","getSchemas","map","toStringPerType","join","json","toObject","host","getHost","ids","idsByPattern","components","getMany","longRunningLog","createLongProcessLogger","length","results","pMapSeries","logProgress","id","toString","getSchema","end"],"sources":["schema.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { ComponentMain } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { Logger } from '@teambit/logger';\nimport { APISchema } from '@teambit/semantics.entities.semantic-schema';\nimport { PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport type { SchemaMain } from './schema.main.runtime';\n\nexport class SchemaCommand implements Command {\n name = 'schema <pattern>';\n description = 'shows the API schema of a certain component.';\n extendedDescription = `${PATTERN_HELP('schema')}`;\n group = 'component';\n options = [['j', 'json', 'return the component data in json format']] as CommandOptions;\n\n constructor(private schema: SchemaMain, private component: ComponentMain, private logger: Logger) {}\n\n async report([pattern]) {\n const schemas = await this.getSchemas([pattern]);\n return schemas.map((schema) => schema.toStringPerType()).join('\\n\\n\\n');\n }\n\n async json([pattern]) {\n const schemas = await this.getSchemas([pattern]);\n return schemas.map((schema) => schema.toObject());\n }\n\n private async getSchemas([pattern]): Promise<APISchema[]> {\n const host = this.component.getHost();\n const ids = await host.idsByPattern(pattern, true);\n const components = await host.getMany(ids);\n const longRunningLog = this.logger.createLongProcessLogger('generating schema', ids.length);\n const results = await pMapSeries(components, (component) => {\n longRunningLog.logProgress(component.id.toString());\n return this.schema.getSchema(component);\n });\n longRunningLog.end();\n return results;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,aAAN,CAAuC;EAO5CC,WAAW,CAASC,MAAT,EAAqCC,SAArC,EAAuEC,MAAvE,EAAuF;IAAA,KAA9EF,MAA8E,GAA9EA,MAA8E;IAAA,KAAlDC,SAAkD,GAAlDA,SAAkD;IAAA,KAAhBC,MAAgB,GAAhBA,MAAgB;IAAA,8CAN3F,kBAM2F;IAAA,qDALpF,8CAKoF;IAAA,6DAJ3E,GAAE,IAAAC,yBAAA,EAAa,QAAb,CAAuB,EAIkD;IAAA,+CAH1F,WAG0F;IAAA,iDAFxF,CAAC,CAAC,GAAD,EAAM,MAAN,EAAc,0CAAd,CAAD,CAEwF;EAAE;;EAExF,MAANC,MAAM,CAAC,CAACC,OAAD,CAAD,EAAY;IACtB,MAAMC,OAAO,GAAG,MAAM,KAAKC,UAAL,CAAgB,CAACF,OAAD,CAAhB,CAAtB;IACA,OAAOC,OAAO,CAACE,GAAR,CAAaR,MAAD,IAAYA,MAAM,CAACS,eAAP,EAAxB,EAAkDC,IAAlD,CAAuD,QAAvD,CAAP;EACD;;EAES,MAAJC,IAAI,CAAC,CAACN,OAAD,CAAD,EAAY;IACpB,MAAMC,OAAO,GAAG,MAAM,KAAKC,UAAL,CAAgB,CAACF,OAAD,CAAhB,CAAtB;IACA,OAAOC,OAAO,CAACE,GAAR,CAAaR,MAAD,IAAYA,MAAM,CAACY,QAAP,EAAxB,CAAP;EACD;;EAEuB,MAAVL,UAAU,CAAC,CAACF,OAAD,CAAD,EAAkC;IACxD,MAAMQ,IAAI,GAAG,KAAKZ,SAAL,CAAea,OAAf,EAAb;IACA,MAAMC,GAAG,GAAG,MAAMF,IAAI,CAACG,YAAL,CAAkBX,OAAlB,EAA2B,IAA3B,CAAlB;IACA,MAAMY,UAAU,GAAG,MAAMJ,IAAI,CAACK,OAAL,CAAaH,GAAb,CAAzB;IACA,MAAMI,cAAc,GAAG,KAAKjB,MAAL,CAAYkB,uBAAZ,CAAoC,mBAApC,EAAyDL,GAAG,CAACM,MAA7D,CAAvB;IACA,MAAMC,OAAO,GAAG,MAAM,IAAAC,qBAAA,EAAWN,UAAX,EAAwBhB,SAAD,IAAe;MAC1DkB,cAAc,CAACK,WAAf,CAA2BvB,SAAS,CAACwB,EAAV,CAAaC,QAAb,EAA3B;MACA,OAAO,KAAK1B,MAAL,CAAY2B,SAAZ,CAAsB1B,SAAtB,CAAP;IACD,CAHqB,CAAtB;IAIAkB,cAAc,CAACS,GAAf;IACA,OAAON,OAAP;EACD;;AA9B2C"}
@@ -3,6 +3,7 @@ import { Component, ComponentMain } from '@teambit/component';
3
3
  import { SlotRegistry } from '@teambit/harmony';
4
4
  import { GraphqlMain } from '@teambit/graphql';
5
5
  import { EnvsMain } from '@teambit/envs';
6
+ import { Logger, LoggerMain } from '@teambit/logger';
6
7
  import { APISchema, Export } from '@teambit/semantics.entities.semantic-schema';
7
8
  import { Parser } from './parser';
8
9
  import { SchemaExtractor } from './schema-extractor';
@@ -23,11 +24,12 @@ export declare class SchemaMain {
23
24
  private parserSlot;
24
25
  private envs;
25
26
  private config;
27
+ private logger;
26
28
  constructor(
27
29
  /**
28
30
  * parsers slot.
29
31
  */
30
- parserSlot: ParserSlot, envs: EnvsMain, config: SchemaConfig);
32
+ parserSlot: ParserSlot, envs: EnvsMain, config: SchemaConfig, logger: Logger);
31
33
  /**
32
34
  * get the default parser.
33
35
  */
@@ -53,6 +55,6 @@ export declare class SchemaMain {
53
55
  static defaultConfig: {
54
56
  defaultParser: string;
55
57
  };
56
- static provider([envs, cli, component, graphql]: [EnvsMain, CLIMain, ComponentMain, GraphqlMain], config: SchemaConfig, [parserSlot]: [ParserSlot]): Promise<SchemaMain>;
58
+ static provider([envs, cli, component, graphql, loggerMain]: [EnvsMain, CLIMain, ComponentMain, GraphqlMain, LoggerMain], config: SchemaConfig, [parserSlot]: [ParserSlot]): Promise<SchemaMain>;
57
59
  }
58
60
  export default SchemaMain;
@@ -73,6 +73,16 @@ function _envs() {
73
73
  return data;
74
74
  }
75
75
 
76
+ function _logger() {
77
+ const data = require("@teambit/logger");
78
+
79
+ _logger = function () {
80
+ return data;
81
+ };
82
+
83
+ return data;
84
+ }
85
+
76
86
  function _semanticsEntities() {
77
87
  const data = require("@teambit/semantics.entities.semantic-schema");
78
88
 
@@ -121,10 +131,11 @@ class SchemaMain {
121
131
  /**
122
132
  * parsers slot.
123
133
  */
124
- parserSlot, envs, config) {
134
+ parserSlot, envs, config, logger) {
125
135
  this.parserSlot = parserSlot;
126
136
  this.envs = envs;
127
137
  this.config = config;
138
+ this.logger = logger;
128
139
  }
129
140
  /**
130
141
  * get the default parser.
@@ -170,6 +181,7 @@ class SchemaMain {
170
181
 
171
182
 
172
183
  async getSchema(component) {
184
+ this.logger.debug(`getSchema of ${component.id.toString()}`);
173
185
  const env = this.envs.getEnv(component).env;
174
186
 
175
187
  if (typeof env.getSchemaExtractor === 'undefined') {
@@ -193,9 +205,10 @@ class SchemaMain {
193
205
  return this;
194
206
  }
195
207
 
196
- static async provider([envs, cli, component, graphql], config, [parserSlot]) {
197
- const schema = new SchemaMain(parserSlot, envs, config);
198
- cli.register(new (_schema2().SchemaCommand)(schema, component));
208
+ static async provider([envs, cli, component, graphql, loggerMain], config, [parserSlot]) {
209
+ const logger = loggerMain.createLogger(_schema().SchemaAspect.id);
210
+ const schema = new SchemaMain(parserSlot, envs, config, logger);
211
+ cli.register(new (_schema2().SchemaCommand)(schema, component, logger));
199
212
  graphql.register((0, _schema3().schemaSchema)(schema)); // workspace.onComponentLoad(async (component) => {
200
213
  // const apiSchema = await schema.getSchema(component);
201
214
  // return {};
@@ -208,7 +221,7 @@ class SchemaMain {
208
221
 
209
222
  exports.SchemaMain = SchemaMain;
210
223
  (0, _defineProperty2().default)(SchemaMain, "runtime", _cli().MainRuntime);
211
- (0, _defineProperty2().default)(SchemaMain, "dependencies", [_envs().EnvsAspect, _cli().CLIAspect, _component().default, _graphql().default]);
224
+ (0, _defineProperty2().default)(SchemaMain, "dependencies", [_envs().EnvsAspect, _cli().CLIAspect, _component().default, _graphql().default, _logger().LoggerAspect]);
212
225
  (0, _defineProperty2().default)(SchemaMain, "slots", [_harmony().Slot.withType()]);
213
226
  (0, _defineProperty2().default)(SchemaMain, "defaultConfig", {
214
227
  defaultParser: 'teambit.typescript/typescript'
@@ -1 +1 @@
1
- {"version":3,"names":["SchemaMain","constructor","parserSlot","envs","config","getDefaultParser","get","defaultParser","parseModule","path","parsers","toArray","maybeParser","find","parser","match","extension","getSchemaExtractor","component","env","getEnv","Error","name","getSchema","schemaExtractor","extract","getSchemaFromObject","obj","APISchema","fromObject","registerParser","register","provider","cli","graphql","schema","SchemaCommand","schemaSchema","MainRuntime","EnvsAspect","CLIAspect","ComponentAspect","GraphqlAspect","Slot","withType","SchemaAspect","addRuntime"],"sources":["schema.main.runtime.ts"],"sourcesContent":["import { MainRuntime, CLIMain, CLIAspect } from '@teambit/cli';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { APISchema, Export } from '@teambit/semantics.entities.semantic-schema';\nimport { Parser } from './parser';\nimport { SchemaAspect } from './schema.aspect';\nimport { SchemaExtractor } from './schema-extractor';\nimport { SchemaCommand } from './schema.cmd';\nimport { schemaSchema } from './schema.graphql';\n\nexport type ParserSlot = SlotRegistry<Parser>;\n\nexport type SchemaConfig = {\n /**\n * default parser\n */\n defaultParser: string;\n};\n\n/**\n * extension for extracting component schemas.\n */\nexport class SchemaMain {\n constructor(\n /**\n * parsers slot.\n */\n private parserSlot: ParserSlot,\n\n private envs: EnvsMain,\n\n private config: SchemaConfig\n ) {}\n\n /**\n * get the default parser.\n */\n getDefaultParser(): Parser {\n return this.parserSlot.get(this.config.defaultParser) as Parser;\n }\n\n /**\n * parse a module into a component schema.\n */\n parseModule(path: string): Export[] {\n const parsers = this.parserSlot.toArray();\n let maybeParser = parsers.find(([, parser]) => {\n const match = path.match(parser.extension);\n return match;\n });\n\n if (!maybeParser) {\n maybeParser = [this.config.defaultParser, this.getDefaultParser()];\n }\n\n const [, parser] = maybeParser;\n return parser.parseModule(path);\n }\n\n getSchemaExtractor(component: Component) {\n const env = this.envs.getEnv(component).env;\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n\n return env.getSchemaExtractor();\n }\n\n /**\n * get a schema of a component.\n * @param component target component.\n */\n async getSchema(component: Component): Promise<APISchema> {\n const env = this.envs.getEnv(component).env;\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n const schemaExtractor: SchemaExtractor = env.getSchemaExtractor();\n return schemaExtractor.extract(component);\n }\n\n getSchemaFromObject(obj: Record<string, any>): APISchema {\n return APISchema.fromObject(obj);\n }\n\n /**\n * register a new parser.\n */\n registerParser(parser: Parser): SchemaMain {\n this.parserSlot.register(parser);\n return this;\n }\n\n static runtime = MainRuntime;\n static dependencies = [EnvsAspect, CLIAspect, ComponentAspect, GraphqlAspect];\n static slots = [Slot.withType<Parser>()];\n\n static defaultConfig = {\n defaultParser: 'teambit.typescript/typescript',\n };\n\n static async provider(\n [envs, cli, component, graphql]: [EnvsMain, CLIMain, ComponentMain, GraphqlMain],\n config: SchemaConfig,\n [parserSlot]: [ParserSlot]\n ) {\n const schema = new SchemaMain(parserSlot, envs, config);\n cli.register(new SchemaCommand(schema, component));\n graphql.register(schemaSchema(schema));\n\n // workspace.onComponentLoad(async (component) => {\n // const apiSchema = await schema.getSchema(component);\n // return {};\n // });\n\n return schema;\n }\n}\n\nSchemaAspect.addRuntime(SchemaMain);\n\nexport default SchemaMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["SchemaMain","constructor","parserSlot","envs","config","logger","getDefaultParser","get","defaultParser","parseModule","path","parsers","toArray","maybeParser","find","parser","match","extension","getSchemaExtractor","component","env","getEnv","Error","name","getSchema","debug","id","toString","schemaExtractor","extract","getSchemaFromObject","obj","APISchema","fromObject","registerParser","register","provider","cli","graphql","loggerMain","createLogger","SchemaAspect","schema","SchemaCommand","schemaSchema","MainRuntime","EnvsAspect","CLIAspect","ComponentAspect","GraphqlAspect","LoggerAspect","Slot","withType","addRuntime"],"sources":["schema.main.runtime.ts"],"sourcesContent":["import { MainRuntime, CLIMain, CLIAspect } from '@teambit/cli';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { APISchema, Export } from '@teambit/semantics.entities.semantic-schema';\nimport { Parser } from './parser';\nimport { SchemaAspect } from './schema.aspect';\nimport { SchemaExtractor } from './schema-extractor';\nimport { SchemaCommand } from './schema.cmd';\nimport { schemaSchema } from './schema.graphql';\n\nexport type ParserSlot = SlotRegistry<Parser>;\n\nexport type SchemaConfig = {\n /**\n * default parser\n */\n defaultParser: string;\n};\n\n/**\n * extension for extracting component schemas.\n */\nexport class SchemaMain {\n constructor(\n /**\n * parsers slot.\n */\n private parserSlot: ParserSlot,\n\n private envs: EnvsMain,\n\n private config: SchemaConfig,\n\n private logger: Logger\n ) {}\n\n /**\n * get the default parser.\n */\n getDefaultParser(): Parser {\n return this.parserSlot.get(this.config.defaultParser) as Parser;\n }\n\n /**\n * parse a module into a component schema.\n */\n parseModule(path: string): Export[] {\n const parsers = this.parserSlot.toArray();\n let maybeParser = parsers.find(([, parser]) => {\n const match = path.match(parser.extension);\n return match;\n });\n\n if (!maybeParser) {\n maybeParser = [this.config.defaultParser, this.getDefaultParser()];\n }\n\n const [, parser] = maybeParser;\n return parser.parseModule(path);\n }\n\n getSchemaExtractor(component: Component) {\n const env = this.envs.getEnv(component).env;\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n\n return env.getSchemaExtractor();\n }\n\n /**\n * get a schema of a component.\n * @param component target component.\n */\n async getSchema(component: Component): Promise<APISchema> {\n this.logger.debug(`getSchema of ${component.id.toString()}`);\n const env = this.envs.getEnv(component).env;\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n const schemaExtractor: SchemaExtractor = env.getSchemaExtractor();\n return schemaExtractor.extract(component);\n }\n\n getSchemaFromObject(obj: Record<string, any>): APISchema {\n return APISchema.fromObject(obj);\n }\n\n /**\n * register a new parser.\n */\n registerParser(parser: Parser): SchemaMain {\n this.parserSlot.register(parser);\n return this;\n }\n\n static runtime = MainRuntime;\n static dependencies = [EnvsAspect, CLIAspect, ComponentAspect, GraphqlAspect, LoggerAspect];\n static slots = [Slot.withType<Parser>()];\n\n static defaultConfig = {\n defaultParser: 'teambit.typescript/typescript',\n };\n\n static async provider(\n [envs, cli, component, graphql, loggerMain]: [EnvsMain, CLIMain, ComponentMain, GraphqlMain, LoggerMain],\n config: SchemaConfig,\n [parserSlot]: [ParserSlot]\n ) {\n const logger = loggerMain.createLogger(SchemaAspect.id);\n const schema = new SchemaMain(parserSlot, envs, config, logger);\n cli.register(new SchemaCommand(schema, component, logger));\n graphql.register(schemaSchema(schema));\n\n // workspace.onComponentLoad(async (component) => {\n // const apiSchema = await schema.getSchema(component);\n // return {};\n // });\n\n return schema;\n }\n}\n\nSchemaAspect.addRuntime(SchemaMain);\n\nexport default SchemaMain;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAWA;AACA;AACA;AACO,MAAMA,UAAN,CAAiB;EACtBC,WAAW;EACT;AACJ;AACA;EACYC,UAJC,EAMDC,IANC,EAQDC,MARC,EAUDC,MAVC,EAWT;IAAA,KAPQH,UAOR,GAPQA,UAOR;IAAA,KALQC,IAKR,GALQA,IAKR;IAAA,KAHQC,MAGR,GAHQA,MAGR;IAAA,KADQC,MACR,GADQA,MACR;EAAE;EAEJ;AACF;AACA;;;EACEC,gBAAgB,GAAW;IACzB,OAAO,KAAKJ,UAAL,CAAgBK,GAAhB,CAAoB,KAAKH,MAAL,CAAYI,aAAhC,CAAP;EACD;EAED;AACF;AACA;;;EACEC,WAAW,CAACC,IAAD,EAAyB;IAClC,MAAMC,OAAO,GAAG,KAAKT,UAAL,CAAgBU,OAAhB,EAAhB;IACA,IAAIC,WAAW,GAAGF,OAAO,CAACG,IAAR,CAAa,CAAC,GAAGC,MAAH,CAAD,KAAgB;MAC7C,MAAMC,KAAK,GAAGN,IAAI,CAACM,KAAL,CAAWD,MAAM,CAACE,SAAlB,CAAd;MACA,OAAOD,KAAP;IACD,CAHiB,CAAlB;;IAKA,IAAI,CAACH,WAAL,EAAkB;MAChBA,WAAW,GAAG,CAAC,KAAKT,MAAL,CAAYI,aAAb,EAA4B,KAAKF,gBAAL,EAA5B,CAAd;IACD;;IAED,MAAM,GAAGS,MAAH,IAAaF,WAAnB;IACA,OAAOE,MAAM,CAACN,WAAP,CAAmBC,IAAnB,CAAP;EACD;;EAEDQ,kBAAkB,CAACC,SAAD,EAAuB;IACvC,MAAMC,GAAG,GAAG,KAAKjB,IAAL,CAAUkB,MAAV,CAAiBF,SAAjB,EAA4BC,GAAxC;;IACA,IAAI,OAAOA,GAAG,CAACF,kBAAX,KAAkC,WAAtC,EAAmD;MACjD,MAAM,IAAII,KAAJ,CAAW,kCAAiCF,GAAG,CAACG,IAAK,EAArD,CAAN;IACD;;IAED,OAAOH,GAAG,CAACF,kBAAJ,EAAP;EACD;EAED;AACF;AACA;AACA;;;EACiB,MAATM,SAAS,CAACL,SAAD,EAA2C;IACxD,KAAKd,MAAL,CAAYoB,KAAZ,CAAmB,gBAAeN,SAAS,CAACO,EAAV,CAAaC,QAAb,EAAwB,EAA1D;IACA,MAAMP,GAAG,GAAG,KAAKjB,IAAL,CAAUkB,MAAV,CAAiBF,SAAjB,EAA4BC,GAAxC;;IACA,IAAI,OAAOA,GAAG,CAACF,kBAAX,KAAkC,WAAtC,EAAmD;MACjD,MAAM,IAAII,KAAJ,CAAW,kCAAiCF,GAAG,CAACG,IAAK,EAArD,CAAN;IACD;;IACD,MAAMK,eAAgC,GAAGR,GAAG,CAACF,kBAAJ,EAAzC;IACA,OAAOU,eAAe,CAACC,OAAhB,CAAwBV,SAAxB,CAAP;EACD;;EAEDW,mBAAmB,CAACC,GAAD,EAAsC;IACvD,OAAOC,8BAAA,CAAUC,UAAV,CAAqBF,GAArB,CAAP;EACD;EAED;AACF;AACA;;;EACEG,cAAc,CAACnB,MAAD,EAA6B;IACzC,KAAKb,UAAL,CAAgBiC,QAAhB,CAAyBpB,MAAzB;IACA,OAAO,IAAP;EACD;;EAUoB,aAARqB,QAAQ,CACnB,CAACjC,IAAD,EAAOkC,GAAP,EAAYlB,SAAZ,EAAuBmB,OAAvB,EAAgCC,UAAhC,CADmB,EAEnBnC,MAFmB,EAGnB,CAACF,UAAD,CAHmB,EAInB;IACA,MAAMG,MAAM,GAAGkC,UAAU,CAACC,YAAX,CAAwBC,sBAAA,CAAaf,EAArC,CAAf;IACA,MAAMgB,MAAM,GAAG,IAAI1C,UAAJ,CAAeE,UAAf,EAA2BC,IAA3B,EAAiCC,MAAjC,EAAyCC,MAAzC,CAAf;IACAgC,GAAG,CAACF,QAAJ,CAAa,KAAIQ,wBAAJ,EAAkBD,MAAlB,EAA0BvB,SAA1B,EAAqCd,MAArC,CAAb;IACAiC,OAAO,CAACH,QAAR,CAAiB,IAAAS,uBAAA,EAAaF,MAAb,CAAjB,EAJA,CAMA;IACA;IACA;IACA;;IAEA,OAAOA,MAAP;EACD;;AAlGqB;;;gCAAX1C,U,aA0EM6C,kB;gCA1EN7C,U,kBA2EW,CAAC8C,kBAAD,EAAaC,gBAAb,EAAwBC,oBAAxB,EAAyCC,kBAAzC,EAAwDC,sBAAxD,C;gCA3EXlD,U,WA4EI,CAACmD,eAAA,CAAKC,QAAL,EAAD,C;gCA5EJpD,U,mBA8EY;EACrBQ,aAAa,EAAE;AADM,C;;AAuBzBiC,sBAAA,CAAaY,UAAb,CAAwBrD,UAAxB;;eAEeA,U"}
@@ -54,6 +54,16 @@ function _workspaceTesting() {
54
54
  return data;
55
55
  }
56
56
 
57
+ function _componentId() {
58
+ const data = require("@teambit/component-id");
59
+
60
+ _componentId = function () {
61
+ return data;
62
+ };
63
+
64
+ return data;
65
+ }
66
+
57
67
  function _workspace() {
58
68
  const data = _interopRequireDefault(require("@teambit/workspace"));
59
69
 
@@ -80,6 +90,12 @@ describe('SchemaAspect', function () {
80
90
  let workspaceData;
81
91
  beforeAll(async () => {
82
92
  workspaceData = (0, _workspaceTesting().mockWorkspace)();
93
+ const {
94
+ workspacePath
95
+ } = workspaceData; // eslint-disable-next-line no-console
96
+
97
+ console.log('workspace created at ', workspacePath);
98
+ schema = await (0, _harmonyTesting().loadAspect)(_().SchemaAspect, workspacePath);
83
99
  });
84
100
  afterAll(async () => {
85
101
  await (0, _workspaceTesting().destroyWorkspace)(workspaceData);
@@ -89,9 +105,7 @@ describe('SchemaAspect', function () {
89
105
  beforeAll(async () => {
90
106
  const {
91
107
  workspacePath
92
- } = workspaceData; // eslint-disable-next-line no-console
93
-
94
- console.log('workspace created at ', workspacePath);
108
+ } = workspaceData;
95
109
 
96
110
  const compDir = _path().default.join(workspacePath, 'button');
97
111
 
@@ -100,7 +114,8 @@ describe('SchemaAspect', function () {
100
114
  await _fsExtra().default.copy(src, compDir);
101
115
  workspace = await (0, _harmonyTesting().loadAspect)(_workspace().default, workspacePath);
102
116
  await workspace.track({
103
- rootDir: compDir
117
+ rootDir: compDir,
118
+ defaultScope: 'org.scope'
104
119
  });
105
120
  await workspace.bitMap.write();
106
121
  schema = await (0, _harmonyTesting().loadAspect)(_().SchemaAspect, workspacePath);
@@ -128,7 +143,8 @@ describe('SchemaAspect', function () {
128
143
  const json = _fsExtra().default.readJsonSync(jsonPath);
129
144
 
130
145
  const apiSchema = schema.getSchemaFromObject(json);
131
- expect(apiSchema instanceof _semanticsEntities().APISchema).toBeTruthy(); // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.
146
+ expect(apiSchema instanceof _semanticsEntities().APISchema).toBeTruthy();
147
+ expect(apiSchema.componentId instanceof _componentId().ComponentID).toBeTruthy(); // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.
132
148
 
133
149
  expect(apiSchema.toObject()).toMatchObject(json);
134
150
  });
@@ -1 +1 @@
1
- {"version":3,"names":["describe","schema","workspace","workspaceData","beforeAll","mockWorkspace","afterAll","destroyWorkspace","apiSchema","workspacePath","console","log","compDir","path","join","src","getMockDir","fs","copy","loadAspect","WorkspaceAspect","track","rootDir","bitMap","write","SchemaAspect","compId","resolveComponentId","comp","get","getSchema","it","results","toObject","expectedJsonPath","expectedJson","readJsonSync","expect","toMatchObject","jsonPath","json","getSchemaFromObject","APISchema","toBeTruthy","getCurrentDir","currentDir","__dirname","endsWith","sep","slice"],"sources":["schema.spec.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { APISchema } from '@teambit/semantics.entities.semantic-schema';\nimport { loadAspect } from '@teambit/harmony.testing.load-aspect';\nimport { mockWorkspace, destroyWorkspace, WorkspaceData } from '@teambit/workspace.testing.mock-workspace';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { SchemaMain } from './schema.main.runtime';\nimport { SchemaAspect } from '.';\n\ndescribe('SchemaAspect', function () {\n let schema: SchemaMain;\n let workspace: Workspace;\n let workspaceData: WorkspaceData;\n beforeAll(async () => {\n workspaceData = mockWorkspace();\n });\n afterAll(async () => {\n await destroyWorkspace(workspaceData);\n });\n describe('getSchema()', () => {\n let apiSchema: APISchema;\n beforeAll(async () => {\n const { workspacePath } = workspaceData;\n // eslint-disable-next-line no-console\n console.log('workspace created at ', workspacePath);\n const compDir = path.join(workspacePath, 'button');\n const src = path.join(getMockDir(), 'button');\n await fs.copy(src, compDir);\n workspace = await loadAspect(WorkspaceAspect, workspacePath);\n await workspace.track({ rootDir: compDir });\n await workspace.bitMap.write();\n schema = await loadAspect(SchemaAspect, workspacePath);\n const compId = await workspace.resolveComponentId('button');\n const comp = await workspace.get(compId);\n apiSchema = await schema.getSchema(comp);\n });\n it('should be able to generate JSON object with all schemas', async () => {\n const results = apiSchema.toObject();\n const expectedJsonPath = path.join(getMockDir(), 'button-schemas.json');\n // uncomment the next line temporarily to sync the expected json with new schema changes\n // fs.outputFileSync(expectedJsonPath, JSON.stringify(results, undefined, 2));\n const expectedJson = fs.readJsonSync(expectedJsonPath);\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(results).toMatchObject(expectedJson);\n });\n });\n describe('getSchemaFromObject', () => {\n it('should be able to deserialize an JSON object to SchemaNode instances', () => {\n const jsonPath = path.join(getMockDir(), 'button-schemas.json');\n const json = fs.readJsonSync(jsonPath);\n const apiSchema = schema.getSchemaFromObject(json);\n expect(apiSchema instanceof APISchema).toBeTruthy();\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(apiSchema.toObject()).toMatchObject(json);\n });\n });\n});\n\nfunction getCurrentDir() {\n const currentDir = __dirname;\n if (currentDir.endsWith(`${path.sep}dist`)) return currentDir.slice(0, -5);\n return currentDir;\n}\n\nfunction getMockDir() {\n return path.join(getCurrentDir(), 'mock');\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["describe","schema","workspace","workspaceData","beforeAll","mockWorkspace","workspacePath","console","log","loadAspect","SchemaAspect","afterAll","destroyWorkspace","apiSchema","compDir","path","join","src","getMockDir","fs","copy","WorkspaceAspect","track","rootDir","defaultScope","bitMap","write","compId","resolveComponentId","comp","get","getSchema","it","results","toObject","expectedJsonPath","expectedJson","readJsonSync","expect","toMatchObject","jsonPath","json","getSchemaFromObject","APISchema","toBeTruthy","componentId","ComponentID","getCurrentDir","currentDir","__dirname","endsWith","sep","slice"],"sources":["schema.spec.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { APISchema } from '@teambit/semantics.entities.semantic-schema';\nimport { loadAspect } from '@teambit/harmony.testing.load-aspect';\nimport { mockWorkspace, destroyWorkspace, WorkspaceData } from '@teambit/workspace.testing.mock-workspace';\nimport { ComponentID } from '@teambit/component-id';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { SchemaMain } from './schema.main.runtime';\nimport { SchemaAspect } from '.';\n\ndescribe('SchemaAspect', function () {\n let schema: SchemaMain;\n let workspace: Workspace;\n let workspaceData: WorkspaceData;\n beforeAll(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n // eslint-disable-next-line no-console\n console.log('workspace created at ', workspacePath);\n schema = await loadAspect(SchemaAspect, workspacePath);\n });\n afterAll(async () => {\n await destroyWorkspace(workspaceData);\n });\n describe('getSchema()', () => {\n let apiSchema: APISchema;\n beforeAll(async () => {\n const { workspacePath } = workspaceData;\n const compDir = path.join(workspacePath, 'button');\n const src = path.join(getMockDir(), 'button');\n await fs.copy(src, compDir);\n workspace = await loadAspect(WorkspaceAspect, workspacePath);\n await workspace.track({ rootDir: compDir, defaultScope: 'org.scope' });\n await workspace.bitMap.write();\n schema = await loadAspect(SchemaAspect, workspacePath);\n const compId = await workspace.resolveComponentId('button');\n const comp = await workspace.get(compId);\n apiSchema = await schema.getSchema(comp);\n });\n it('should be able to generate JSON object with all schemas', async () => {\n const results = apiSchema.toObject();\n const expectedJsonPath = path.join(getMockDir(), 'button-schemas.json');\n // uncomment the next line temporarily to sync the expected json with new schema changes\n // fs.outputFileSync(expectedJsonPath, JSON.stringify(results, undefined, 2));\n const expectedJson = fs.readJsonSync(expectedJsonPath);\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(results).toMatchObject(expectedJson);\n });\n });\n describe('getSchemaFromObject', () => {\n it('should be able to deserialize an JSON object to SchemaNode instances', () => {\n const jsonPath = path.join(getMockDir(), 'button-schemas.json');\n const json = fs.readJsonSync(jsonPath);\n const apiSchema = schema.getSchemaFromObject(json);\n expect(apiSchema instanceof APISchema).toBeTruthy();\n expect(apiSchema.componentId instanceof ComponentID).toBeTruthy();\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(apiSchema.toObject()).toMatchObject(json);\n });\n });\n});\n\nfunction getCurrentDir() {\n const currentDir = __dirname;\n if (currentDir.endsWith(`${path.sep}dist`)) return currentDir.slice(0, -5);\n return currentDir;\n}\n\nfunction getMockDir() {\n return path.join(getCurrentDir(), 'mock');\n}\n"],"mappings":"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"}
@@ -1434,5 +1434,9 @@
1434
1434
  }
1435
1435
  }
1436
1436
  ]
1437
+ },
1438
+ "componentId": {
1439
+ "name": "button",
1440
+ "scope": "org.scope"
1437
1441
  }
1438
1442
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/schema",
3
- "version": "0.0.742",
3
+ "version": "0.0.743",
4
4
  "homepage": "https://bit.dev/teambit/semantics/schema",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.semantics",
8
8
  "name": "schema",
9
- "version": "0.0.742"
9
+ "version": "0.0.743"
10
10
  },
11
11
  "dependencies": {
12
12
  "p-map-series": "2.1.0",
@@ -16,12 +16,13 @@
16
16
  "core-js": "^3.0.0",
17
17
  "@teambit/harmony": "0.3.3",
18
18
  "@teambit/base-react.navigation.link": "1.23.0",
19
- "@teambit/semantics.entities.semantic-schema": "0.0.15",
20
- "@teambit/builder": "0.0.742",
21
- "@teambit/component": "0.0.742",
22
- "@teambit/cli": "0.0.492",
23
- "@teambit/envs": "0.0.742",
24
- "@teambit/graphql": "0.0.742"
19
+ "@teambit/semantics.entities.semantic-schema": "0.0.16",
20
+ "@teambit/builder": "0.0.743",
21
+ "@teambit/component": "0.0.743",
22
+ "@teambit/cli": "0.0.493",
23
+ "@teambit/logger": "0.0.585",
24
+ "@teambit/envs": "0.0.743",
25
+ "@teambit/graphql": "0.0.743"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@types/react": "^17.0.8",
@@ -32,12 +33,13 @@
32
33
  "@types/jest": "^26.0.0",
33
34
  "@types/react-dom": "^17.0.5",
34
35
  "@types/node": "12.20.4",
36
+ "@teambit/component-id": "0.0.402",
35
37
  "@teambit/harmony.testing.load-aspect": "0.0.6",
36
38
  "@teambit/workspace.testing.mock-workspace": "0.0.5",
37
- "@teambit/workspace": "0.0.742"
39
+ "@teambit/workspace": "0.0.743"
38
40
  },
39
41
  "peerDependencies": {
40
- "@teambit/legacy": "1.0.272",
42
+ "@teambit/legacy": "1.0.273",
41
43
  "react-dom": "^16.8.0 || ^17.0.0",
42
44
  "react": "^16.8.0 || ^17.0.0"
43
45
  },
@@ -65,7 +67,7 @@
65
67
  "react": "-"
66
68
  },
67
69
  "peerDependencies": {
68
- "@teambit/legacy": "1.0.272",
70
+ "@teambit/legacy": "1.0.273",
69
71
  "react-dom": "^16.8.0 || ^17.0.0",
70
72
  "react": "^16.8.0 || ^17.0.0"
71
73
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.742/dist/schema.composition.js'), require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.742/dist/mock/button/button.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.742/dist/schema.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.743/dist/schema.composition.js'), require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.743/dist/mock/button/button.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.743/dist/schema.docs.mdx')]