brighterscript 1.0.0-alpha.48 → 1.0.0-alpha.49
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/README.md +7 -10
- package/bsconfig.schema.json +34 -7
- package/dist/AstValidationSegmenter.js +12 -0
- package/dist/AstValidationSegmenter.js.map +1 -1
- package/dist/BsConfig.d.ts +6 -35
- package/dist/CrossScopeValidator.d.ts +1 -0
- package/dist/CrossScopeValidator.js +28 -4
- package/dist/CrossScopeValidator.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +1 -1
- package/dist/DiagnosticMessages.js +20 -6
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/LanguageServer.d.ts +3 -1
- package/dist/LanguageServer.js +32 -19
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Program.d.ts +9 -3
- package/dist/Program.js +111 -74
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +0 -2
- package/dist/ProgramBuilder.js +10 -28
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/SymbolTable.js +3 -2
- package/dist/SymbolTable.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +14 -2
- package/dist/astUtils/reflection.js +70 -18
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +2 -1
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.js +9 -3
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +3 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +34 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +31 -0
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +3 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +5 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +71 -3
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +7 -7
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.js +10 -2
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +99 -0
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +19 -4
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +334 -0
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
- package/dist/cli.js +11 -18
- package/dist/cli.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +336 -200
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.spec.js +61 -10
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +7 -0
- package/dist/files/XmlFile.js +36 -0
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +7 -9
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +3 -3
- package/dist/files/tests/imports.spec.js.map +1 -1
- package/dist/files/tests/optionalChaning.spec.js +1 -1
- package/dist/files/tests/optionalChaning.spec.js.map +1 -1
- package/dist/interfaces.d.ts +12 -4
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +12 -2
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/TokenKind.js +6 -3
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/lsp/Project.js +1 -3
- package/dist/lsp/Project.js.map +1 -1
- package/dist/lsp/Project.spec.js +1 -1
- package/dist/lsp/Project.spec.js.map +1 -1
- package/dist/lsp/ProjectManager.d.ts +8 -0
- package/dist/lsp/ProjectManager.js +7 -5
- package/dist/lsp/ProjectManager.js.map +1 -1
- package/dist/lsp/ProjectManager.spec.js +128 -0
- package/dist/lsp/ProjectManager.spec.js.map +1 -1
- package/dist/lsp/worker/WorkerThreadProject.js +21 -16
- package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
- package/dist/lsp/worker/run.d.ts +1 -0
- package/dist/lsp/worker/run.js +14 -0
- package/dist/lsp/worker/run.js.map +1 -0
- package/dist/parser/AstNode.d.ts +8 -1
- package/dist/parser/AstNode.js +9 -0
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/AstNode.spec.js +1 -1
- package/dist/parser/AstNode.spec.js.map +1 -1
- package/dist/parser/Expression.d.ts +43 -0
- package/dist/parser/Expression.js +120 -7
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +25 -0
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +4 -0
- package/dist/parser/Parser.js +117 -7
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +200 -1
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/Statement.d.ts +32 -1
- package/dist/parser/Statement.js +126 -62
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +238 -0
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/roku-types/data.json +422 -64
- package/dist/roku-types/index.d.ts +50 -0
- package/dist/types/ArrayType.js +3 -0
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/BscType.d.ts +4 -3
- package/dist/types/BscType.js +2 -4
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BscTypeKind.d.ts +2 -0
- package/dist/types/BscTypeKind.js +2 -0
- package/dist/types/BscTypeKind.js.map +1 -1
- package/dist/types/CallFuncableType.d.ts +24 -0
- package/dist/types/CallFuncableType.js +91 -0
- package/dist/types/CallFuncableType.js.map +1 -0
- package/dist/types/ComponentType.d.ts +3 -15
- package/dist/types/ComponentType.js +2 -56
- package/dist/types/ComponentType.js.map +1 -1
- package/dist/types/DoubleType.js +1 -1
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/FloatType.js +1 -1
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/InlineInterfaceType.d.ts +5 -0
- package/dist/types/InlineInterfaceType.js +17 -0
- package/dist/types/InlineInterfaceType.js.map +1 -0
- package/dist/types/IntegerType.js +1 -1
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +2 -2
- package/dist/types/InterfaceType.js +5 -4
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/LongIntegerType.js +1 -1
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/ObjectType.d.ts +1 -0
- package/dist/types/ObjectType.js +3 -0
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +3 -1
- package/dist/types/ReferenceType.js +41 -2
- package/dist/types/ReferenceType.js.map +1 -1
- package/dist/types/TypeStatementType.d.ts +18 -0
- package/dist/types/TypeStatementType.js +45 -0
- package/dist/types/TypeStatementType.js.map +1 -0
- package/dist/types/roFunctionType.d.ts +11 -0
- package/dist/types/roFunctionType.js +37 -0
- package/dist/types/roFunctionType.js.map +1 -0
- package/dist/types/roFunctionType.spec.d.ts +1 -0
- package/dist/types/roFunctionType.spec.js +20 -0
- package/dist/types/roFunctionType.spec.js.map +1 -0
- package/dist/util.d.ts +3 -94
- package/dist/util.js +53 -303
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.js +1 -1
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +3 -3
package/dist/Program.js
CHANGED
|
@@ -43,11 +43,13 @@ const CrossScopeValidator_1 = require("./CrossScopeValidator");
|
|
|
43
43
|
const DiagnosticManager_1 = require("./DiagnosticManager");
|
|
44
44
|
const ProgramValidator_1 = require("./bscPlugin/validation/ProgramValidator");
|
|
45
45
|
const SymbolTable_1 = require("./SymbolTable");
|
|
46
|
-
const
|
|
46
|
+
const ReferenceType_1 = require("./types/ReferenceType");
|
|
47
|
+
const helpers_1 = require("./types/helpers");
|
|
47
48
|
const CallExpressionInfo_1 = require("./bscPlugin/CallExpressionInfo");
|
|
48
49
|
const SignatureHelpUtil_1 = require("./bscPlugin/SignatureHelpUtil");
|
|
49
50
|
const Sequencer_1 = require("./common/Sequencer");
|
|
50
51
|
const deferred_1 = require("./deferred");
|
|
52
|
+
const roFunctionType_1 = require("./types/roFunctionType");
|
|
51
53
|
const bslibNonAliasedRokuModulesPkgPath = (0, util_1.standardizePath) `source/roku_modules/rokucommunity_bslib/bslib.brs`;
|
|
52
54
|
const bslibAliasedRokuModulesPkgPath = (0, util_1.standardizePath) `source/roku_modules/bslib/bslib.brs`;
|
|
53
55
|
class Program {
|
|
@@ -121,6 +123,12 @@ class Program {
|
|
|
121
123
|
scopesToValidate: [],
|
|
122
124
|
filesToBeValidatedInScopeContext: new Set()
|
|
123
125
|
};
|
|
126
|
+
this.lastValidationInfo = {
|
|
127
|
+
brsFilesSrcPath: new Set(),
|
|
128
|
+
xmlFilesSrcPath: new Set(),
|
|
129
|
+
scopeNames: new Set(),
|
|
130
|
+
componentsRebuilt: new Set()
|
|
131
|
+
};
|
|
124
132
|
/**
|
|
125
133
|
* Counter used to track which validation run is being logged
|
|
126
134
|
*/
|
|
@@ -237,28 +245,36 @@ class Program {
|
|
|
237
245
|
this.globalScope.symbolTable.addSymbol(callable.name, Object.assign(Object.assign({}, builtInSymbolData), { description: callable.shortDescription }), callable.type, 1 /* SymbolTypeFlag.runtime */);
|
|
238
246
|
}
|
|
239
247
|
for (const ifaceData of Object.values(roku_types_1.interfaces)) {
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
this.globalScope.symbolTable.addSymbol(ifaceData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: ifaceData.description }),
|
|
248
|
+
const ifaceType = new InterfaceType_1.InterfaceType(ifaceData.name);
|
|
249
|
+
ifaceType.addBuiltInInterfaces();
|
|
250
|
+
ifaceType.isBuiltIn = true;
|
|
251
|
+
this.globalScope.symbolTable.addSymbol(ifaceData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: ifaceData.description }), ifaceType, 2 /* SymbolTypeFlag.typetime */);
|
|
244
252
|
}
|
|
245
253
|
for (const componentData of Object.values(roku_types_1.components)) {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
if (componentData.name !== 'roSGNode') {
|
|
254
|
+
let roComponentType;
|
|
255
|
+
const lowerComponentName = componentData.name.toLowerCase();
|
|
256
|
+
if (lowerComponentName === 'rosgnode') {
|
|
250
257
|
// we will add `roSGNode` as shorthand for `roSGNodeNode`, since all roSgNode components are SceneGraph nodes
|
|
251
|
-
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
if (lowerComponentName === 'rofunction') {
|
|
261
|
+
roComponentType = new roFunctionType_1.roFunctionType();
|
|
252
262
|
}
|
|
263
|
+
else {
|
|
264
|
+
roComponentType = new InterfaceType_1.InterfaceType(componentData.name);
|
|
265
|
+
}
|
|
266
|
+
roComponentType.addBuiltInInterfaces();
|
|
267
|
+
roComponentType.isBuiltIn = true;
|
|
268
|
+
this.globalScope.symbolTable.addSymbol(componentData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: componentData.description }), roComponentType, 2 /* SymbolTypeFlag.typetime */);
|
|
253
269
|
}
|
|
254
270
|
for (const nodeData of Object.values(roku_types_1.nodes)) {
|
|
255
271
|
this.recursivelyAddNodeToSymbolTable(nodeData);
|
|
256
272
|
}
|
|
257
273
|
for (const eventData of Object.values(roku_types_1.events)) {
|
|
258
|
-
const
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
this.globalScope.symbolTable.addSymbol(eventData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: eventData.description }),
|
|
274
|
+
const eventType = new InterfaceType_1.InterfaceType(eventData.name);
|
|
275
|
+
eventType.addBuiltInInterfaces();
|
|
276
|
+
eventType.isBuiltIn = true;
|
|
277
|
+
this.globalScope.symbolTable.addSymbol(eventData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: eventData.description }), eventType, 2 /* SymbolTypeFlag.typetime */);
|
|
262
278
|
}
|
|
263
279
|
}
|
|
264
280
|
addFileSymbolInfo(file) {
|
|
@@ -442,7 +458,7 @@ class Program {
|
|
|
442
458
|
// There is a component that can be added,
|
|
443
459
|
if (!this.componentsTable.hasSymbol(symbolName, 2 /* SymbolTypeFlag.typetime */)) {
|
|
444
460
|
// it doesn't already exist in the table
|
|
445
|
-
const componentRefType = new
|
|
461
|
+
const componentRefType = new ReferenceType_1.ReferenceType(symbolName, symbolName, 2 /* SymbolTypeFlag.typetime */, () => this.componentsTable);
|
|
446
462
|
if (componentRefType) {
|
|
447
463
|
this.componentsTable.addSymbol(symbolName, {}, componentRefType, 2 /* SymbolTypeFlag.typetime */);
|
|
448
464
|
}
|
|
@@ -838,28 +854,13 @@ class Program {
|
|
|
838
854
|
program: this
|
|
839
855
|
});
|
|
840
856
|
})
|
|
841
|
-
|
|
842
|
-
.forEach('addDeferredComponentTypeSymbolCreation', () => {
|
|
857
|
+
.once('get files to be validated', () => {
|
|
843
858
|
filesToProcess = Object.values(this.files).sort((0, thenby_1.firstBy)(x => x.srcPath)).filter(x => !x.isValidated);
|
|
844
859
|
for (const file of filesToProcess) {
|
|
845
860
|
filesToBeValidatedInScopeContext.add(file);
|
|
846
861
|
}
|
|
847
|
-
//return the list of files that need to be processed
|
|
848
|
-
return filesToProcess;
|
|
849
|
-
}, (file) => {
|
|
850
|
-
// cast a wide net for potential changes in components
|
|
851
|
-
if ((0, reflection_1.isXmlFile)(file)) {
|
|
852
|
-
this.addDeferredComponentTypeSymbolCreation(file);
|
|
853
|
-
}
|
|
854
|
-
else if ((0, reflection_1.isBrsFile)(file)) {
|
|
855
|
-
for (const scope of this.getScopesForFile(file)) {
|
|
856
|
-
if ((0, reflection_1.isXmlScope)(scope)) {
|
|
857
|
-
this.addDeferredComponentTypeSymbolCreation(scope.xmlFile);
|
|
858
|
-
}
|
|
859
|
-
}
|
|
860
|
-
}
|
|
861
862
|
})
|
|
862
|
-
.once('
|
|
863
|
+
.once('add component reference types', () => {
|
|
863
864
|
// Create reference component types for any component that changes
|
|
864
865
|
for (let [componentKey, componentName] of this.componentSymbolsToUpdate.entries()) {
|
|
865
866
|
this.addComponentReferenceType(componentKey, componentName);
|
|
@@ -893,9 +894,27 @@ class Program {
|
|
|
893
894
|
file: file
|
|
894
895
|
});
|
|
895
896
|
})
|
|
896
|
-
.
|
|
897
|
+
.forEach('do deferred component creation', () => [...brsFilesValidated, ...xmlFilesValidated], (file) => {
|
|
898
|
+
if ((0, reflection_1.isXmlFile)(file)) {
|
|
899
|
+
this.addDeferredComponentTypeSymbolCreation(file);
|
|
900
|
+
}
|
|
901
|
+
else if ((0, reflection_1.isBrsFile)(file)) {
|
|
902
|
+
const fileHasChanges = file.providedSymbols.changes.get(1 /* SymbolTypeFlag.runtime */).size > 0 || file.providedSymbols.changes.get(2 /* SymbolTypeFlag.typetime */).size > 0;
|
|
903
|
+
if (fileHasChanges) {
|
|
904
|
+
for (const scope of this.getScopesForFile(file)) {
|
|
905
|
+
if ((0, reflection_1.isXmlScope)(scope) && this.doesXmlFileRequireProvidedSymbols(scope.xmlFile, file.providedSymbols.changes)) {
|
|
906
|
+
this.addDeferredComponentTypeSymbolCreation(scope.xmlFile);
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
})
|
|
912
|
+
.once('build component types for any component that changes', () => {
|
|
897
913
|
this.logger.time(logging_1.LogLevel.info, ['Build component types'], () => {
|
|
914
|
+
this.logger.debug(`Component Symbols to update:`, [...this.componentSymbolsToUpdate.entries()].sort());
|
|
915
|
+
this.lastValidationInfo.componentsRebuilt = new Set();
|
|
898
916
|
for (let [componentKey, componentName] of this.componentSymbolsToUpdate.entries()) {
|
|
917
|
+
this.lastValidationInfo.componentsRebuilt.add(componentName === null || componentName === void 0 ? void 0 : componentName.toLowerCase());
|
|
899
918
|
if (this.updateComponentSymbolInGlobalScope(componentKey, componentName)) {
|
|
900
919
|
changedComponentTypes.push(util_1.util.getSgNodeTypeName(componentName).toLowerCase());
|
|
901
920
|
}
|
|
@@ -967,20 +986,26 @@ class Program {
|
|
|
967
986
|
}
|
|
968
987
|
} while (foundDependentTypes);
|
|
969
988
|
changedSymbols.set(2 /* SymbolTypeFlag.typetime */, new Set([...changedSymbols.get(2 /* SymbolTypeFlag.typetime */), ...changedTypeSymbols, ...dependentTypesChanged]));
|
|
989
|
+
this.lastValidationInfo.brsFilesSrcPath = new Set(this.validationDetails.brsFilesValidated.map(f => { var _a, _b; return (_b = (_a = f.srcPath) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : ''; }));
|
|
990
|
+
this.lastValidationInfo.xmlFilesSrcPath = new Set(this.validationDetails.xmlFilesValidated.map(f => { var _a, _b; return (_b = (_a = f.srcPath) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : ''; }));
|
|
970
991
|
// can reset filesValidatedList, because they are no longer needed
|
|
971
992
|
this.validationDetails.brsFilesValidated = [];
|
|
972
993
|
this.validationDetails.xmlFilesValidated = [];
|
|
973
994
|
})
|
|
974
|
-
.once('tracks changed symbols and prepares files and scopes for validation
|
|
995
|
+
.once('tracks changed symbols and prepares files and scopes for validation', () => {
|
|
975
996
|
if (this.options.logLevel === logging_1.LogLevel.debug) {
|
|
976
997
|
const changedRuntime = Array.from(changedSymbols.get(1 /* SymbolTypeFlag.runtime */)).sort();
|
|
977
998
|
this.logger.debug('Changed Symbols (runTime):', changedRuntime.join(', '));
|
|
978
999
|
const changedTypetime = Array.from(changedSymbols.get(2 /* SymbolTypeFlag.typetime */)).sort();
|
|
979
1000
|
this.logger.debug('Changed Symbols (typeTime):', changedTypetime.join(', '));
|
|
980
1001
|
}
|
|
981
|
-
const
|
|
1002
|
+
const didComponentChange = changedComponentTypes.length > 0;
|
|
1003
|
+
const didProvidedSymbolChange = changedSymbols.get(1 /* SymbolTypeFlag.runtime */).size > 0 || changedSymbols.get(2 /* SymbolTypeFlag.typetime */).size > 0;
|
|
1004
|
+
const scopesToCheck = this.getScopesForCrossScopeValidation(didComponentChange, didProvidedSymbolChange);
|
|
982
1005
|
this.crossScopeValidation.buildComponentsMap();
|
|
983
|
-
this.
|
|
1006
|
+
this.logger.time(logging_1.LogLevel.info, ['addDiagnosticsForScopes'], () => {
|
|
1007
|
+
this.crossScopeValidation.addDiagnosticsForScopes(scopesToCheck);
|
|
1008
|
+
});
|
|
984
1009
|
const filesToRevalidate = this.crossScopeValidation.getFilesRequiringChangedSymbol(scopesToCheck, changedSymbols);
|
|
985
1010
|
for (const file of filesToRevalidate) {
|
|
986
1011
|
filesToBeValidatedInScopeContext.add(file);
|
|
@@ -1002,20 +1027,23 @@ class Program {
|
|
|
1002
1027
|
}
|
|
1003
1028
|
}
|
|
1004
1029
|
})
|
|
1005
|
-
.
|
|
1030
|
+
.once('checking scopes to validate', () => {
|
|
1006
1031
|
//sort the scope names so we get consistent results
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
scope: scope
|
|
1013
|
-
});
|
|
1032
|
+
for (const scopeName of this.getSortedScopeNames()) {
|
|
1033
|
+
let scope = this.scopes[scopeName];
|
|
1034
|
+
if (scope.shouldValidate(this.currentScopeValidationOptions)) {
|
|
1035
|
+
scopesToValidate.push(scope);
|
|
1036
|
+
}
|
|
1014
1037
|
}
|
|
1038
|
+
this.lastValidationInfo.scopeNames = new Set(scopesToValidate.map(s => { var _a, _b; return (_b = (_a = s.name) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : ''; }));
|
|
1015
1039
|
})
|
|
1016
|
-
.forEach('
|
|
1017
|
-
|
|
1018
|
-
|
|
1040
|
+
.forEach('beforeScopeValidate', () => scopesToValidate, (scope) => {
|
|
1041
|
+
this.plugins.emit('beforeScopeValidate', {
|
|
1042
|
+
program: this,
|
|
1043
|
+
scope: scope
|
|
1044
|
+
});
|
|
1045
|
+
})
|
|
1046
|
+
.forEach('validate scope', () => scopesToValidate, (scope) => {
|
|
1019
1047
|
scope.validate(this.currentScopeValidationOptions);
|
|
1020
1048
|
})
|
|
1021
1049
|
.forEach('afterScopeValidate', () => scopesToValidate, (scope) => {
|
|
@@ -1068,23 +1096,32 @@ class Program {
|
|
|
1068
1096
|
return sequencer.runSync();
|
|
1069
1097
|
}
|
|
1070
1098
|
}
|
|
1071
|
-
|
|
1072
|
-
let logs = [];
|
|
1073
|
-
for (const key in metrics) {
|
|
1074
|
-
logs.push(`${key}=${chalk_1.default.yellow(metrics[key].toString())}`);
|
|
1075
|
-
}
|
|
1076
|
-
this.logger.info(`Validation Metrics: ${logs.join(', ')}`);
|
|
1077
|
-
}
|
|
1078
|
-
getScopesForCrossScopeValidation(someComponentTypeChanged = false) {
|
|
1099
|
+
getScopesForCrossScopeValidation(someComponentTypeChanged, didProvidedSymbolChange) {
|
|
1079
1100
|
const scopesForCrossScopeValidation = [];
|
|
1080
1101
|
for (let scopeName of this.getSortedScopeNames()) {
|
|
1081
1102
|
let scope = this.scopes[scopeName];
|
|
1082
|
-
if (this.globalScope
|
|
1103
|
+
if (this.globalScope === scope) {
|
|
1104
|
+
continue;
|
|
1105
|
+
}
|
|
1106
|
+
if (someComponentTypeChanged) {
|
|
1107
|
+
scopesForCrossScopeValidation.push(scope);
|
|
1108
|
+
}
|
|
1109
|
+
if (didProvidedSymbolChange && !scope.isValidated) {
|
|
1083
1110
|
scopesForCrossScopeValidation.push(scope);
|
|
1084
1111
|
}
|
|
1085
1112
|
}
|
|
1086
1113
|
return scopesForCrossScopeValidation;
|
|
1087
1114
|
}
|
|
1115
|
+
doesXmlFileRequireProvidedSymbols(file, providedSymbolsByFlag) {
|
|
1116
|
+
for (const required of file.requiredSymbols) {
|
|
1117
|
+
const symbolNameLower = required.name.toLowerCase();
|
|
1118
|
+
const requiredSymbolIsProvided = providedSymbolsByFlag.get(required.flags).has(symbolNameLower);
|
|
1119
|
+
if (requiredSymbolIsProvided) {
|
|
1120
|
+
return true;
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
return false;
|
|
1124
|
+
}
|
|
1088
1125
|
/**
|
|
1089
1126
|
* Flag all duplicate component names
|
|
1090
1127
|
*/
|
|
@@ -1515,14 +1552,14 @@ class Program {
|
|
|
1515
1552
|
/**
|
|
1516
1553
|
* Get the absolute output path for a file
|
|
1517
1554
|
*/
|
|
1518
|
-
getOutputPath(file,
|
|
1519
|
-
return (0, util_1.standardizePath) `${
|
|
1555
|
+
getOutputPath(file, outDir = this.getOutDir()) {
|
|
1556
|
+
return (0, util_1.standardizePath) `${outDir}/${file.pkgPath}`;
|
|
1520
1557
|
}
|
|
1521
|
-
|
|
1558
|
+
getOutDir(outDir) {
|
|
1522
1559
|
var _a, _b;
|
|
1523
|
-
let result = (_a =
|
|
1560
|
+
let result = (_a = outDir !== null && outDir !== void 0 ? outDir : this.options.outDir) !== null && _a !== void 0 ? _a : this.options.outDir;
|
|
1524
1561
|
if (!result) {
|
|
1525
|
-
result = roku_deploy_1.rokuDeploy.getOptions(this.options).
|
|
1562
|
+
result = roku_deploy_1.rokuDeploy.getOptions(this.options).outDir;
|
|
1526
1563
|
}
|
|
1527
1564
|
result = (0, util_1.standardizePath) `${path.resolve((_b = this.options.cwd) !== null && _b !== void 0 ? _b : process.cwd(), result !== null && result !== void 0 ? result : '/')}`;
|
|
1528
1565
|
return result;
|
|
@@ -1558,7 +1595,7 @@ class Program {
|
|
|
1558
1595
|
});
|
|
1559
1596
|
await this.plugins.emitAsync('beforePrepareProgram', programEvent);
|
|
1560
1597
|
await this.plugins.emitAsync('prepareProgram', programEvent);
|
|
1561
|
-
const
|
|
1598
|
+
const outDir = this.getOutDir();
|
|
1562
1599
|
const entries = [];
|
|
1563
1600
|
for (const file of files) {
|
|
1564
1601
|
const scope = this.getFirstScopeForFile(file);
|
|
@@ -1573,7 +1610,7 @@ class Program {
|
|
|
1573
1610
|
file: file,
|
|
1574
1611
|
editor: file.editor,
|
|
1575
1612
|
scope: scope,
|
|
1576
|
-
outputPath: this.getOutputPath(file,
|
|
1613
|
+
outputPath: this.getOutputPath(file, outDir)
|
|
1577
1614
|
};
|
|
1578
1615
|
await this.plugins.emitAsync('beforePrepareFile', event);
|
|
1579
1616
|
await this.plugins.emitAsync('prepareFile', event);
|
|
@@ -1630,14 +1667,14 @@ class Program {
|
|
|
1630
1667
|
/**
|
|
1631
1668
|
* Write the entire project to disk
|
|
1632
1669
|
*/
|
|
1633
|
-
async write(
|
|
1670
|
+
async write(outDir, files) {
|
|
1634
1671
|
const programEvent = await this.plugins.emitAsync('beforeWriteProgram', {
|
|
1635
1672
|
program: this,
|
|
1636
1673
|
files: files,
|
|
1637
|
-
|
|
1674
|
+
outDir: outDir
|
|
1638
1675
|
});
|
|
1639
|
-
//empty the
|
|
1640
|
-
await fsExtra.emptyDir(
|
|
1676
|
+
//empty the out directory
|
|
1677
|
+
await fsExtra.emptyDir(outDir);
|
|
1641
1678
|
const serializedFiles = [...files]
|
|
1642
1679
|
.map(([, serializedFiles]) => serializedFiles)
|
|
1643
1680
|
.flat();
|
|
@@ -1646,7 +1683,7 @@ class Program {
|
|
|
1646
1683
|
const event = await this.plugins.emitAsync('beforeWriteFile', {
|
|
1647
1684
|
program: this,
|
|
1648
1685
|
file: file,
|
|
1649
|
-
outputPath: this.getOutputPath(file,
|
|
1686
|
+
outputPath: this.getOutputPath(file, outDir),
|
|
1650
1687
|
processedFiles: new Set()
|
|
1651
1688
|
});
|
|
1652
1689
|
await this.plugins.emitAsync('writeFile', event);
|
|
@@ -1662,7 +1699,7 @@ class Program {
|
|
|
1662
1699
|
//run a single build at a time
|
|
1663
1700
|
await this.buildPipeline.run(async () => {
|
|
1664
1701
|
var _a;
|
|
1665
|
-
const
|
|
1702
|
+
const outDir = this.getOutDir(options === null || options === void 0 ? void 0 : options.outDir);
|
|
1666
1703
|
const event = await this.plugins.emitAsync('beforeBuildProgram', {
|
|
1667
1704
|
program: this,
|
|
1668
1705
|
editor: this.editor,
|
|
@@ -1672,7 +1709,7 @@ class Program {
|
|
|
1672
1709
|
event.files = await this.prepare(event.files);
|
|
1673
1710
|
//stage the entire program
|
|
1674
1711
|
const serializedFilesByFile = await this.serialize(event.files);
|
|
1675
|
-
await this.write(
|
|
1712
|
+
await this.write(outDir, serializedFilesByFile);
|
|
1676
1713
|
await this.plugins.emitAsync('afterBuildProgram', event);
|
|
1677
1714
|
//undo all edits for the program
|
|
1678
1715
|
this.editor.undoAll();
|
|
@@ -1681,11 +1718,11 @@ class Program {
|
|
|
1681
1718
|
file.editor.undoAll();
|
|
1682
1719
|
}
|
|
1683
1720
|
});
|
|
1684
|
-
this.logger.debug('Types Created',
|
|
1721
|
+
this.logger.debug('Types Created', helpers_1.TypesCreated);
|
|
1685
1722
|
let totalTypesCreated = 0;
|
|
1686
|
-
for (const key in
|
|
1687
|
-
if (
|
|
1688
|
-
totalTypesCreated +=
|
|
1723
|
+
for (const key in helpers_1.TypesCreated) {
|
|
1724
|
+
if (helpers_1.TypesCreated.hasOwnProperty(key)) {
|
|
1725
|
+
totalTypesCreated += helpers_1.TypesCreated[key];
|
|
1689
1726
|
}
|
|
1690
1727
|
}
|
|
1691
1728
|
this.logger.info('Total Types Created', totalTypesCreated);
|
package/dist/Program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Program.js","sourceRoot":"","sources":["../src/Program.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Program.js","sourceRoot":"","sources":["../src/Program.ts"],"names":[],"mappings":"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"}
|