mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-21 00:52:55 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca7626db17 | ||
|
|
e8d492a18a | ||
|
|
aa294c4e29 | ||
|
|
369bb906c1 |
@@ -1,3 +1,12 @@
|
|||||||
|
# [0.51.0](https://gitlab.com/openstapps/core/compare/v0.50.0...v0.51.0) (2021-09-10)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* add physicalobject to book categories ([ded8e7d](https://gitlab.com/openstapps/core/commit/ded8e7dfd51094c02a86e1383a4e94c069c10e64))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [0.50.0](https://gitlab.com/openstapps/core/compare/v0.49.5...v0.50.0) (2021-09-01)
|
# [0.50.0](https://gitlab.com/openstapps/core/compare/v0.49.5...v0.50.0) (2021-09-01)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@openstapps/core",
|
"name": "@openstapps/core",
|
||||||
"version": "0.51.0",
|
"version": "0.52.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@openstapps/core",
|
"name": "@openstapps/core",
|
||||||
"version": "0.51.0",
|
"version": "0.52.0",
|
||||||
"description": "StAppsCore - Generalized model of data",
|
"description": "StAppsCore - Generalized model of data",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"Model",
|
"Model",
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
// tslint:disable-next-line:no-implicit-dependencies
|
// tslint:disable-next-line:no-implicit-dependencies
|
||||||
import {Polygon} from 'geojson';
|
import {Polygon} from 'geojson';
|
||||||
import {SCTranslations} from '../general/i18n';
|
import {SCTranslations} from '../general/i18n';
|
||||||
|
import {SCMap} from '../general/map';
|
||||||
import {SCLanguageSetting, SCSetting, SCUserGroupSetting} from '../things/setting';
|
import {SCLanguageSetting, SCSetting, SCUserGroupSetting} from '../things/setting';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -80,6 +81,13 @@ export interface SCAppConfigurationMenuCategory {
|
|||||||
* An app configuration
|
* An app configuration
|
||||||
*/
|
*/
|
||||||
export interface SCAppConfiguration {
|
export interface SCAppConfiguration {
|
||||||
|
/**
|
||||||
|
* The about page
|
||||||
|
*
|
||||||
|
* Mapping route -> page config
|
||||||
|
*/
|
||||||
|
aboutPages: SCMap<SCAboutPage>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Polygon that encapsulates the main campus
|
* Polygon that encapsulates the main campus
|
||||||
*/
|
*/
|
||||||
@@ -174,3 +182,147 @@ export interface SCAppConfigurationMenuCategoryTranslationName {
|
|||||||
*/
|
*/
|
||||||
name: string;
|
name: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum SCAboutPageContentType {
|
||||||
|
SECTION = 'section',
|
||||||
|
ROUTER_LINK = 'router link',
|
||||||
|
TABLE = 'table',
|
||||||
|
MARKDOWN = 'markdown',
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SCAboutPageTranslationTitle {
|
||||||
|
/**
|
||||||
|
* Translation of the title
|
||||||
|
*/
|
||||||
|
title: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SCAboutPageTranslationValue {
|
||||||
|
/**
|
||||||
|
* Translation of the value
|
||||||
|
*/
|
||||||
|
value: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A (mostly) self-contained section, akin to markdown `# Title`
|
||||||
|
*/
|
||||||
|
export interface SCAboutPageSection {
|
||||||
|
/**
|
||||||
|
* If the section should be contained in a card
|
||||||
|
*/
|
||||||
|
card?: true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The content of the section
|
||||||
|
*/
|
||||||
|
content: SCAboutPageContent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The title of the section
|
||||||
|
*/
|
||||||
|
title: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translations
|
||||||
|
*/
|
||||||
|
translations: SCTranslations<SCAboutPageTranslationTitle>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type
|
||||||
|
*/
|
||||||
|
type: SCAboutPageContentType.SECTION;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A router link that can lead to a new page
|
||||||
|
*
|
||||||
|
* For external links, prefer markdown `[destination](link)`
|
||||||
|
*/
|
||||||
|
export interface SCAboutPageRouterLink {
|
||||||
|
/**
|
||||||
|
* Icon of the destination
|
||||||
|
*/
|
||||||
|
icon?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Router link
|
||||||
|
*/
|
||||||
|
link: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Title of the destination
|
||||||
|
*/
|
||||||
|
title: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translations
|
||||||
|
*/
|
||||||
|
translations: SCTranslations<SCAboutPageTranslationTitle>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type
|
||||||
|
*/
|
||||||
|
type: SCAboutPageContentType.ROUTER_LINK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple table element
|
||||||
|
*/
|
||||||
|
export interface SCAboutPageTable {
|
||||||
|
/**
|
||||||
|
* Rows of the table
|
||||||
|
*/
|
||||||
|
rows: SCAboutPageContent[][];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type
|
||||||
|
*/
|
||||||
|
type: SCAboutPageContentType.TABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A markdown element
|
||||||
|
*/
|
||||||
|
export interface SCAboutPageMarkdown {
|
||||||
|
/**
|
||||||
|
* Translations
|
||||||
|
*/
|
||||||
|
translations: SCTranslations<SCAboutPageTranslationValue>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type
|
||||||
|
*/
|
||||||
|
type: SCAboutPageContentType.MARKDOWN;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Value (Markdown)
|
||||||
|
*/
|
||||||
|
value: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type SCAboutPageContent =
|
||||||
|
| SCAboutPageMarkdown
|
||||||
|
| SCAboutPageTable
|
||||||
|
| SCAboutPageSection
|
||||||
|
| SCAboutPageRouterLink;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Root of the about page
|
||||||
|
*/
|
||||||
|
export interface SCAboutPage {
|
||||||
|
/**
|
||||||
|
* Content of the page
|
||||||
|
*/
|
||||||
|
content: SCAboutPageContent[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Header (title) of the page
|
||||||
|
*/
|
||||||
|
title: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translations
|
||||||
|
*/
|
||||||
|
translations: SCTranslations<SCAboutPageTranslationTitle>;
|
||||||
|
}
|
||||||
|
|||||||
44
test/compat.spec.ts
Normal file
44
test/compat.spec.ts
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 StApps
|
||||||
|
* This program is free software: you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the Free
|
||||||
|
* Software Foundation, version 3.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with
|
||||||
|
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {lightweightProjectFromPath} from '@openstapps/core-tools/lib/easy-ast/easy-ast';
|
||||||
|
import {LightweightProject} from '@openstapps/core-tools/lib/easy-ast/types/lightweight-project';
|
||||||
|
import {expect} from 'chai';
|
||||||
|
import {reduce} from 'lodash';
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (err) => {
|
||||||
|
throw err;
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Mapping Compatibility', () => {
|
||||||
|
let project: LightweightProject;
|
||||||
|
|
||||||
|
before(function () {
|
||||||
|
this.timeout(15000);
|
||||||
|
this.slow(10000);
|
||||||
|
|
||||||
|
project = lightweightProjectFromPath('src');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('non-exported definitions should not have duplicate names across files', () => {
|
||||||
|
reduce(project, (result, file) => reduce(file, (result2, _, key) => {
|
||||||
|
expect(result2[key]).to.be.undefined;
|
||||||
|
return {
|
||||||
|
[key]: true,
|
||||||
|
...result2,
|
||||||
|
};
|
||||||
|
}, result), {} as Record<string, boolean>);
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user