Skip to content

Commit

Permalink
Merge pull request #12 from betagouv/refactor-packaging
Browse files Browse the repository at this point in the history
Refactor packaging
  • Loading branch information
EmileRolley authored Nov 13, 2024
2 parents 7fd0164 + f2cf77f commit 5d03f7d
Show file tree
Hide file tree
Showing 9 changed files with 35 additions and 38 deletions.
5 changes: 5 additions & 0 deletions .changeset/little-squids-hide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@betagouv/aides-velo": minor
---

Split the package in differents submodules (/rules and /data)
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,12 @@ engine
### Avec les règles Publicodes

Il est également possible d'utiliser les règles Publicodes directement.
Il est également possible d'utiliser les règles Publicodes directement avec
`@betagouv/aides-velo/rules`.

```typescript
import Engine, { formatValue } from "publicodes";
import { rules } from "@betagouv/aides-velo";
import rules from "@betagouv/aides-velo/rules";

const engine = new Engine(rules);

Expand Down Expand Up @@ -131,5 +132,3 @@ yarn run compile
// Run the documentation server
yarn run doc
```

##
10 changes: 10 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@
"types": "./dist/src/index.d.ts",
"require": "./dist/src/index.cjs",
"import": "./dist/src/index.js"
},
"./rules": {
"types": "./dist/publicodes-build/index.d.ts",
"require": "./dist/publicodes-build/index.cjs",
"import": "./dist/publicodes-build/index.js"
},
"./data": {
"types": "./dist/src/data/index.d.ts",
"require": "./dist/src/data/index.cjs",
"import": "./dist/src/data/index.js"
}
},
"files": [
Expand Down
2 changes: 1 addition & 1 deletion scripts/data-fetch/miniatures/aides-jeunes
Submodule aides-jeunes updated 70 files
+26 −33 backend/controllers/followups.ts
+2 −1 backend/lib/messaging/email/email-service.ts
+23 −6 backend/lib/messaging/sms/sms-service.ts
+6 −2 cypress/utils/results.js
+1 −6 data/benefits/dynamic/fsl.ts
+500 −116 data/benefits/dynamic/incitations-covoiturage.json
+6 −5 data/benefits/javascript/caf-nord-aide-achat-equipement.yml
+15 −1 data/benefits/javascript/hauts-de-france-en-route-pour-lemploi-parc-auto-1euro.yml
+21 −10 data/benefits/javascript/region-corse-depenses-rentree.yml
+23 −0 data/benefits/javascript/region-ile-de-france-aide-image-r-lyceens-labaz.yml
+2 −2 data/benefits/javascript/region-ile-de-france-carte-imagine-r-scolaire.yml
+5 −3 data/benefits/javascript/region-occitanie-frequencio-jeunes.yml
+1 −1 data/benefits/openfisca/garantie_pret_etudiant_eligibilite.yml
+5 −0 data/institutions/ca_cannes_pays_de_lerins.yml
+5 −0 data/institutions/ca_ecla__espace_communautaire_lons_agglomeration.yml
+5 −0 data/institutions/ca_seine_eure.yml
+5 −0 data/institutions/cc_arc_sud_bretagne.yml
+5 −0 data/institutions/cc_de_gevrey_chambertin_et_de_nuits_saint_georges.yml
+5 −0 data/institutions/cc_de_semur_en_brionnais.yml
+5 −0 data/institutions/cc_des_coevrons.yml
+5 −0 data/institutions/cc_des_terres_du_val_de_loire.yml
+5 −0 data/institutions/cc_du_grand_chateaudun.yml
+5 −0 data/institutions/cc_du_saulnois.yml
+5 −0 data/institutions/cc_haute_correze_communaute.yml
+5 −0 data/institutions/cc_leff_armor_communaute.yml
+5 −0 data/institutions/cc_loir_luce_berce.yml
+5 −0 data/institutions/cc_lyons_andelle.yml
+5 −0 data/institutions/cc_normandie_cabourg_pays_dauge.yml
+5 −0 data/institutions/cc_porte_de_dromardeche.yml
+5 −0 data/institutions/cc_serein_et_armance.yml
+5 −0 data/institutions/cc_thelloise.yml
+5 −0 data/institutions/cc_touraine_vallee_de_lindre.yml
+5 −0 data/institutions/ville_noirmoutier_en_l_ile.yml
+20 −0 lib/enums/error.ts
+0 −2 lib/enums/event.ts
+5 −1 lib/state/blocks.ts
+9 −0 lib/utils.ts
+1 −1 package.json
+ public/img/institutions/logo_ca_cannes_pays_de_lerins.png
+ public/img/institutions/logo_ca_ecla__espace_communautaire_lons_agglomeration.png
+ public/img/institutions/logo_ca_seine_eure.png
+ public/img/institutions/logo_cc_arc_sud_bretagne.png
+ public/img/institutions/logo_cc_de_gevrey_chambertin_et_de_nuits_saint_georges.png
+ public/img/institutions/logo_cc_de_semur_en_brionnais.png
+ public/img/institutions/logo_cc_des_coevrons.png
+ public/img/institutions/logo_cc_des_terres_du_val_de_loire.png
+ public/img/institutions/logo_cc_du_grand_chateaudun.png
+ public/img/institutions/logo_cc_du_saulnois.png
+ public/img/institutions/logo_cc_haute_correze_communaute.png
+ public/img/institutions/logo_cc_leff_armor_communaute.png
+ public/img/institutions/logo_cc_loir_luce_berce.png
+ public/img/institutions/logo_cc_lyons_andelle.png
+ public/img/institutions/logo_cc_normandie_cabourg_pays_dauge.png
+ public/img/institutions/logo_cc_porte_de_dromardeche.png
+ public/img/institutions/logo_cc_serein_et_armance.png
+ public/img/institutions/logo_cc_thelloise.png
+ public/img/institutions/logo_cc_touraine_vallee_de_l_indre.png
+ public/img/institutions/logo_ville_noirmoutier.png
+16 −5 src/components/buttons/back-button.vue
+10 −0 src/components/modals/errors-email-and-sms-modal.vue
+1 −3 src/components/modals/recap-email-and-sms-modal.vue
+8 −36 src/components/recap-email-and-sms-form.vue
+1 −5 src/components/titre-chapitre.vue
+1 −6 src/main.ts
+0 −13 src/plugins/ab-testing-service.ts
+0 −2 src/router.ts
+6 −9 src/views/aide.vue
+116 −35 src/views/liste-aides.vue
+1 −1 src/views/simulation/enfants.vue
+4 −1 tools/views/index.html
18 changes: 1 addition & 17 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,9 @@
* wrapper functions, and the types.
*/

// Export the compiled rules and the types.

import compiledRules from "../publicodes-build";
export type { Localisation, AideRuleNames } from "./data";
export type { Questions, RuleName, Situation } from "../publicodes-build";
/**
* Publicodes rules compiled in a single JSON object.
*/
export const rules = compiledRules;

// Export generated data

export * as data from "./data";
export type { AideRuleNames, Localisation } from "./data";

// Export the utils functions.

export { slugify } from "./lib/utils";

// Export the AidesVeloEngine class and the Aide type.

export { AidesVeloEngine } from "./lib/AidesVeloEngine";
export type { Aide } from "./lib/AidesVeloEngine";
16 changes: 7 additions & 9 deletions src/lib/AidesVeloEngine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@ import Engine, {
formatValue,
Situation as PublicodesSituation,
} from "publicodes";
import rules, { Questions, RuleName, Situation } from "../../publicodes-build";
import {
AideRuleNames,
data,
aidesAvecLocalisation,
Localisation,
Questions,
RuleName,
Situation,
rules,
} from "..";
miniatures,
} from "../data";
import { extractOptions } from "./utils";

/**
Expand Down Expand Up @@ -45,7 +43,7 @@ export type Aide = {
};

const aidesAvecLocalisationEntries = Object.entries(
data.aidesAvecLocalisation
aidesAvecLocalisation
) as readonly [AideRuleNames, Localisation][];

/**
Expand Down Expand Up @@ -128,15 +126,15 @@ export class AidesVeloEngine {
// the AST instead of the data object. And removing Luxembourg and
// Monaco to avoid needing to import the whole
// aides-collectivities.json file?
const collectivity = data.aidesAvecLocalisation[ruleName].collectivity;
const collectivity = aidesAvecLocalisation[ruleName].collectivity;

return {
id: ruleName,
title: rule.title,
description: rule.rawNode.description,
url: (rule.rawNode as any).lien,
collectivity,
logo: data.miniatures[ruleName],
logo: miniatures[ruleName],
};
});
}
Expand Down
11 changes: 6 additions & 5 deletions test/rules.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import Engine, { Rule } from "publicodes";
import assert from "assert";

import { AideRuleNames, RuleName, data, rules } from "../src";
import { AideRuleNames, RuleName } from "../src";
import rules from "../publicodes-build";
import { aidesAvecLocalisation, miniatures } from "../src/data";

describe("Aides Vélo", () => {
const engine = new Engine(rules);
Expand Down Expand Up @@ -34,7 +35,7 @@ describe("Aides Vélo", () => {
!noNeedToAssociatesLoc.includes(key)
) {
expect(
data.aidesAvecLocalisation[key as AideRuleNames]
aidesAvecLocalisation[key as AideRuleNames]
).not.toBeUndefined();
}
});
Expand All @@ -49,10 +50,10 @@ describe("Aides Vélo", () => {
key.split(" . ").length === 2 &&
!rulesToIgnore.includes(key)
) {
if (!data.miniatures[key as AideRuleNames]) {
if (!miniatures[key as AideRuleNames]) {
console.log(key);
}
expect(data.miniatures[key as AideRuleNames]).not.toBeUndefined();
expect(miniatures[key as AideRuleNames]).not.toBeUndefined();
}
});
});
Expand Down
3 changes: 1 addition & 2 deletions tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
"strict": true
},
"include": [
"src/**/*.ts",
"build/*.js"
"src/**/*.ts"
],
"exclude": [
"node_modules"
Expand Down
1 change: 1 addition & 0 deletions tsup.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export default defineConfig((options) => {
clean: true,
cjsInterop: true,
splitting: true,
treeshake: true,
minify: options.watch ? false : "terser",
};
});

0 comments on commit 5d03f7d

Please sign in to comment.