Skip to content

Commit

Permalink
docs: add demo/project-stake-pools.js
Browse files Browse the repository at this point in the history
  • Loading branch information
mkazlauskas committed Mar 21, 2023
1 parent 02d2465 commit 350b5dd
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions demo/project-stake-pools.js
@@ -0,0 +1,65 @@
// Runtime dependency: `yarn preprod:up cardano-node-ogmios postgres` (can be any network)
/* eslint-disable import/no-extraneous-dependencies */
const { Projections, projectIntoSink } = require('@cardano-sdk/projection');
const { createDataSource, createSinks } = require('@cardano-sdk/projection-typeorm');
const { OgmiosObservableCardanoNode } = require('@cardano-sdk/ogmios');
const { from, of } = require('rxjs');
const { createDatabase } = require('typeorm-extension');

const logger = {
...console,
debug: () => void 0
};

const projections = {
stakePools: Projections.stakePools
};

const connectionConfig = {
database: 'projection',
host: 'localhost',
password: 'doNoUseThisSecret!',
username: 'postgres'
};

const dataSource = createDataSource({
connectionConfig,
devOptions: {
dropSchema: true,
synchronize: true
},
logger,
projections
});

const cardanoNode = new OgmiosObservableCardanoNode(
{
connectionConfig$: of({
port: 1339
})
},
{ logger }
);

projectIntoSink({
cardanoNode,
logger,
projections,
sinksFactory: () =>
createSinks({
dataSource$: from(
(async () => {
await createDatabase({
options: {
type: 'postgres',
...connectionConfig,
installExtensions: true
}
});
await dataSource.initialize();
return dataSource;
})()
),
logger
})
}).subscribe();

0 comments on commit 350b5dd

Please sign in to comment.